【发布时间】:2010-09-05 10:40:49
【问题描述】:
我需要在部署在 IBM 支持的环境中的应用程序中实现 JMS 消息重新传递的处理,因此 JMS 提供程序是独立的 MQ V6.0。
您知道它是否正确设置了 JMSXDeliveryCount 属性并且我可以依赖这个属性的值吗?
【问题讨论】:
我需要在部署在 IBM 支持的环境中的应用程序中实现 JMS 消息重新传递的处理,因此 JMS 提供程序是独立的 MQ V6.0。
您知道它是否正确设置了 JMSXDeliveryCount 属性并且我可以依赖这个属性的值吗?
【问题讨论】:
我刚刚找到了我的问题的答案:)
IBM WebSphere MQ 设置以下 JMSX* 标头属性:
JMSXUserId 将在您发送消息时由 WMQ JMS 设置 - 它看起来 运行应用程序的用户 ID 并相应地设置 JMSXUserId。
JMSXAppId 也将在您发送消息时由 WMQ JMS 设置 - 到 类似于“WebSphere MQ Client for Java”。有一些争论 如何解释这一方面的 JMS 规范 - 一些 JMS 提供程序允许 应用程序来设置它,其他人没有。目前,WebSphere MQ 实施没有。
JMSXDeliveryCount 将在消息发送到 接收应用程序 - 它告诉接收应用程序多少次 WebSphere MQ 已尝试将消息传递给该应用程序或其他应用程序。 通常,消息应该只传递一次,但在 失败或事务的显式回滚等,交付计数可能 变得更高,应用程序或 JMS 提供者可以使用该信息来 发现什么时候出了问题,也许做一些不同的事情,比如 将消息移动到死信队列,甚至丢弃消息, 取决于消息的性质、应用程序和上下文。
【讨论】: