我正在从事务中的MSMQ检索消息。如果应用程序因任何原因无法处理它们,那么它将中止该事务。
一旦事务中止,消息就会返回队列。如果再次检索到该消息,是否有办法知道该消息是否先前已中止?
通过MMC(MSMQ UI),您可以查看邮件的属性,以查看邮件被中止的次数。
有没有办法以编程方式获取此值?
答案 0 :(得分:1)
来自MSDN网站:
跟踪次数a 尝试读取消息,Windows Vista保持了持久的信息 计算数量的财产 中止和移动计数属性 计算消息的次数 在应用程序队列之间移动 和子队列。 WCF频道使用 这些来计算接收重试 计数和重试周期计数。上 Windows Server 2003和Windows XP, 中止计数保持在 WCF通道的内存并被重置 如果申请失败。而且, WCF通道可以保存中止计数 在内存中最多256条消息 随时。如果读取第257条消息, 然后是最早的消息的中止计数 重置。
中止计数和移动计数 属性可用于 通过服务运营 运作环境。以下代码 示例显示了如何访问它们。
包含示例的页面为here。