我需要实现在IBM支持的环境中部署的应用程序中重新传递JMS消息的处理,因此JMS提供程序是独立的MQ V6.0。
你知道它是否正确设置JMSXDeliveryCount属性,我可以依赖这个属性的值吗?
答案 0 :(得分:4)
我刚刚找到了我的问题的答案:)
IBM WebSphere MQ设置以下JMSX *标头属性:
发送消息时,WMQ JMS将设置JMSXUserId - 它看着 运行应用程序的用户标识并相应地设置JMSXUserId。
当您发送消息时,WMQ JMS也将设置JMSXAppId - 像“ WebSphere MQ Client for Java ”之类的东西。有一些争论 如何在这个上解释JMS规范 - 一些JMS提供者允许 设置它的应用程序,其他人没有。目前,WebSphere MQ 实施没有。
当消息发送到a时,WMQ JMS将设置JMSXDeliveryCount 接收应用程序 - 它告诉接收应用程序多少次 WebSphere MQ已尝试将消息传递给该应用程序或其他应用程序。 通常情况下,消息只应传送一次,但在情况下 交易计数失败或显式回滚等 获得更高,应用程序或JMS提供程序可以使用该信息 当事情出错时,可能会做出不同的事情 将邮件移至死信队列,甚至丢弃邮件, 取决于消息的性质,应用程序和上下文。