2011-04-24 24 views
3

剛剛寫了一個小應用程序來讀取我們的MSMQ死信隊列,並重新發送消息。但是,我注意到,當TimeToBeReceived到期時,消息將從遠程服務器上的目標隊列中刪除,並放回發件人的死信隊列中,這些消息在重新發送之前來自它。 這是正常的,預期的行爲?我預計它會在到期時進入目標DLQ。MSMQ TimeToBeReceived

在此先感謝。

Frank

回答

3

是的,這是正常的。該行爲可確保所有可能的故障將轉到發送箱上的應用程序能夠檢查的一個死信隊列。 請注意,事務性和非事務性消息之間存在不同:對於非事務性消息,接收方將在超時過期後將消息發送回發送方。對於事務處理來說,消息實際上會留在發送方(在傳出隊列中標記爲「未被處理」),直到接收方收到或者直到被移至死信隊列。這樣MSMQ可以確保消息不會丟失。

+0

感謝您的信息。是的,應該提到,有問題的隊列是事務性的。再次感謝! – TheITGuy 2011-04-24 07:59:37