2010-01-22 44 views
4

MSMQ維護一種稱爲「傳出隊列」的隊列。 MSMQ服務使用這些隊列來保存發往生成消息時無法聯繫的服務器的消息。這些是與正常公共和私人隊列分開的特殊臨時隊列。什麼會導致MSMQ將發往本地系統隊列的消息放入「傳出隊列」?

我最近遇到一些情況,其中發往本地系統(即生成該消息的同一臺計算機)的一些消息最終出現在「傳出隊列」之一中。使用管理控制檯鑽取出站隊列時,可以看到目標具有本地系統和隊列的正確路徑信息。在這種特定的情況下,保留在這些「傳出隊列」中的消息永遠不會傳送到正確的隊列。留在那裏,實際上失去了。

發送給本地系統上的隊列的一些消息,包括「外出隊列」中列出的同一隊列的消息,都可以正常傳輸。當消息在「傳出隊列」中結束時似​​乎是隨機的。那就是:有些工作正常,有些則不行。

似乎受此影響的隊列都是非事務性的。事務隊列似乎總是接收消息。至少,發送消息的應用程序沒有捕獲到事務隊列的異常。

什麼會導致MSMQ將發往本地系統上的隊列的消息放入「傳出隊列」? MSMQ服務是否無法聯繫自己發送消息?系統非常繁忙(80%以上的CPU使用率)。當它這樣做時,MSMQ是否會因資源匱乏?

回答

0

我在過去曾見過與MSMQ有關的問題。嘗試在C:\ Windows \ System32 \ Drivers \ etc \ HOSTS文件中添加完全限定的DNS條目以查看是否有幫助。

不知道你爲什麼會在這裏遇到DNS問題,但它可能有幫助。

+0

我不認爲DNS是問題。我們通常使用FQDN創建隊列實例作爲連接字符串的一部分。當物品卡在「外出隊列」中時,通過名稱進行Ping操作。所以看起來MSMQ似乎應該拾取並開始發送,但事實並非如此。 –