2013-07-30 31 views
1

即使在消息隊列配額達到後,我仍然注意到「發送」方法沒有給客戶端任何信號。客戶端如何知道MSMQ MaximumQueueSize配額已達到?

_messagequeue.MaximumQueueSize = 5; (消息); _messagequeue.Send(message);

在上面的例子中,我期待_messagequeue.Send(message);在達到隊列配額時拋出「資源不足異常」或其他信號。然而,「發送」方法將執行沒有任何錯誤,但消息不會進入隊列..所以客戶端將如何知道何時停止推送消息?

回答

1

正如我記得你需要使用MSMQ中的交易來確保消息到達目的地。

1

看到http://technet.microsoft.com/en-us/library/cc754101(v=ws.10).aspx: ......你可以從計算機請求一個NACK(否定確認),以您發送的郵件。如果此確認已返回給您的應用程序,並且表明已達到此隊列或計算機的配額,則您的應用程序可以停止發送消息或將消息卸載到另一個目標位置...

以及有關使用該消息的更多信息: http://msdn.microsoft.com/en-us/library/ms978430.aspx#bdadotnetasync2_topic4

+0

喜英戈非常感謝您的幫助..我檢查了所有的AcknowledgeType的,但他們都不幫我在這裏.. 我的要求很簡單,當隊列達到一定限度,我想阻止我送料器?任何樣品將不勝感激.. – NANDAKISHOR

相關問題