2011-02-06 96 views
2

我正在從事務中的MSMQ中檢索消息。如果應用程序由於某種原因無法處理它們,則會中止事務。如何檢索MSMQ消息的AbortCount?

一旦事務中止,消息就回到隊列中。如果再次檢索消息,是否有辦法知道消息是否先前被中止?

通過MMC(MSMQ UI),您可以查看消息的屬性以查看消息被中止的次數。

有沒有辦法通過編程獲得這個值?

回答

1

從MSDN網站:

爲了保持 消息讀取嘗試的次數曲目時,Windows Vista中認爲,計算持久消息 財產 數量中止和移動計數屬性 計算消息 在應用程序隊列 和子隊列之間移動的次數。 WCF通道使用 這些來計算接收重試次數 計數和重試周期數。 On Windows Server 2003和Windows XP, WCF通道中的終止計數保存在 內存中,如果應用程序失敗,則重置 。另外,WCF通道可以隨時保存中止計數 ,內存中最多可存儲256條消息,內存號爲 。如果第257條消息被讀取,則 然後重置最舊消息的中止計數 。

中止計數和移動計數 屬性可用於 服務操作通過 操作上下文。以下代碼 示例顯示如何訪問它們。

帶有示例的頁面是here

+0

這是通過WCF獲得的。有沒有辦法在不使用WCF時獲取AbortCount? – legion 2011-02-06 04:14:46