2011-06-14 113 views
1

如果我通過網絡使用MSMQ,如果網絡連接在客戶端和服務器之間丟失會發生什麼情況?當網絡連接丟失時,MSMQ會發生什麼

那麼你還可以添加消息到隊列,如果是的話他們存儲在哪裏?在客戶端應用程序中,還是在客戶端操作系統等?

例如,如果我有一個Windows服務,將項目添加到不同國家的隊列。如果網絡連接丟失,並且Windows服務重新啓動,該怎麼辦?信息會永遠丟失嗎?

問題的另一部分涉及消息需要的路由,是直接發送到接收隊列,還是寫入客戶端的隊列?這是否需要將MSMQ安裝在發送服務器上,以及如何對此進行許可?

是否有任何好的文檔來解釋所需的設置?

+1

不,MSMQ的意義在於這不會導致數據丟失。它們存儲在磁盤上。 – 2011-06-14 05:10:47

+1

注 - 只有可恢復和事務性消息存儲在磁盤上;另一方面,表達消息將不會在重新啓動後存活。消息存儲是可配置的;默認是system32 \ msmq \ storage。 – 2011-06-14 20:46:22

回答

1

更新:關於您的後續問題。是的,你必須在發送服務器上安裝msmq。沒有任何許可成本,因爲MSMQ是Windows的一部分,而不是一個單獨的軟件(就像IIS一樣)。這裏是Windwos 2003上的「Setting Up a Message Queue」的文檔。

更新前:傳出消息存儲在發送服務器的傳出隊列中。如果發送服務重新啓動,它們不會丟失。他們將在傳出隊列中等待(可以使用msmq管理器進行檢查),因爲我不知道多久。

如果msmq服務或發送服務器重新啓動。那麼「表達」信息將會丟失。表達或可恢復的是非轉錄消息的性質。

+0

好的,這是否意味着你必須在發送服務器上安裝MSMQ?這是否有許可費用?有沒有什麼好的文檔來解釋這個設置? – peter 2011-06-20 21:37:22

+0

這對解釋傳出隊列很有用http://bit.ly/lCrOIY – peter 2011-06-23 23:49:54

+0

這個演示很好http://bit.ly/iPJTrq。我將它安裝在兩臺機器上,都必須安裝MSMQ。消息自動進入傳出隊列,並在接收服務器收到消息時取消。這些傳出隊列根據需要動態創建。所有這些只是無縫地發生在應用程序中。 – peter 2011-06-23 23:51:50

相關問題