2011-04-07 61 views
0

我有一個具有專用隊列的遠程機器,服務器將這些消息發送到遠程隊列。這工作正常。問題在於當遠程計算機未連接到網絡或關閉時,消息被保存在服務器的傳出隊列中,並在遠程計算機聯機時稍後傳送。現在我的要求是,如果消息沒有傳遞,服務器應該知道。而在目前的情況下,它不會拋出異常,因爲它保存在傳出隊列中。如何在遠程機器未連接時將消息保存在傳出隊列中而不將消息發送到遠程隊列?

現在我有三件事情在腦海中。

  1. 傳出隊列不應該保存消息。
  2. 一些確認應該從遠程機器返回。
  3. 我應該通過隊列url直接發佈消息,因爲它承載在IIS下。

我想解決方案3,但沒有找到任何資源的話題。

+0

任何未傳遞的消息將始終停留在傳出隊列中。這是mq應該如何工作的默認機制。如果你想通知服務器 - 可能是你可以檢查消息ID或一些唯一的ID,並檢查其在傳出隊列... – sajoshi 2011-04-07 08:29:29

+0

可以請你提供一些關於如何看待傳出隊列。 – 2011-04-07 09:23:15

回答

0

看看您的消息設置接收超時並使用死信隊列。當遠程服務器在指定的超時時間內未讀取消息時,消息將被移至死信隊列。您可以監視死信隊列,以瞭解遠程服務器未收到消息的時間。