2011-02-06 95 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