【问题标题】:How can I retrieve the AbortCount of a MSMQ message?如何检索 MSMQ 消息的 AbortCount?
【发布时间】:2011-06-22 03:07:33
【问题描述】:

我正在从事务中的 MSMQ 检索消息。如果应用程序由于某种原因无法处理它们,那么它将中止事务。

一旦事务中止,消息将返回队列。如果再次检索到消息,有没有办法知道该消息之前是否被中止?

通过 MMC (MSMQ UI),您可以查看消息的属性以了解消息被中止的次数。

有没有办法以编程方式获取这个值?

【问题讨论】:

    标签: msmq


    【解决方案1】:

    来自 MSDN 网站:

    要跟踪 a 的次数 尝试读取消息,Windows Vista 保持着持久的信息 计算数量的属性 中止和移动计数属性 计算消息的次数 在应用程序队列之间移动 和子队列。 WCF 通道使用 这些来计算接收重试 计数和重试周期计数。在 Windows Server 2003 和 Windows XP, 中止计数保持在 WCF 通道的内存并被重置 如果申请失败。此外,该 WCF 通道可以保存中止计数 内存中最多 256 条消息 随时。如果阅读第 257 条消息, 然后是最旧消息的中止计数 已重置。

    中止计数和移动计数 属性可用于 通过服务运营 操作上下文。以下代码 示例展示了如何访问它们。

    包含示例的页面是here

    【讨论】:

    • 这是通过 WCF 获得的。不使用 WCF 时有没有办法获取 AbortCount?
    • 我不知道。不使用 WCF 时的传统观点是使用消息中的中止计数来增加用户定义的字段并将其重新排队。如果您只是回滚它,您将无法更改它。但是,您可以将更新后的消息和原始消息放在同一个工作单元中,这样您就不会冒丢失消息的风险。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2011-07-27
    相关资源
    最近更新 更多