【发布时间】:2011-06-22 03:07:33
【问题描述】:
我正在从事务中的 MSMQ 检索消息。如果应用程序由于某种原因无法处理它们,那么它将中止事务。
一旦事务中止,消息将返回队列。如果再次检索到消息,有没有办法知道该消息之前是否被中止?
通过 MMC (MSMQ UI),您可以查看消息的属性以了解消息被中止的次数。
有没有办法以编程方式获取这个值?
【问题讨论】:
标签: msmq
我正在从事务中的 MSMQ 检索消息。如果应用程序由于某种原因无法处理它们,那么它将中止事务。
一旦事务中止,消息将返回队列。如果再次检索到消息,有没有办法知道该消息之前是否被中止?
通过 MMC (MSMQ UI),您可以查看消息的属性以了解消息被中止的次数。
有没有办法以编程方式获取这个值?
【问题讨论】:
标签: msmq
来自 MSDN 网站:
要跟踪 a 的次数 尝试读取消息,Windows Vista 保持着持久的信息 计算数量的属性 中止和移动计数属性 计算消息的次数 在应用程序队列之间移动 和子队列。 WCF 通道使用 这些来计算接收重试 计数和重试周期计数。在 Windows Server 2003 和 Windows XP, 中止计数保持在 WCF 通道的内存并被重置 如果申请失败。此外,该 WCF 通道可以保存中止计数 内存中最多 256 条消息 随时。如果阅读第 257 条消息, 然后是最旧消息的中止计数 已重置。
中止计数和移动计数 属性可用于 通过服务运营 操作上下文。以下代码 示例展示了如何访问它们。
包含示例的页面是here。
【讨论】: