从ActiveMQ消息

时间:2017-09-25 06:30:21

标签: jboss jms activemq

根据链接 - http://activemq.apache.org/activemq-message-properties.html 消息应该有“ JMSXDeliveryCount ”用于发送消息的尝试次数

当从jconsole检查消息属性时,虽然其他Jms支持的属性如“ JMSXGroupID ”& “ JMSXGroupSeq ”可用

enter image description here

注意: -

  1. 我使用了标准的activemq-5.14.2设置并从win64
  2. 启动
  3. 使用JBoss服务器

2 个答案:

答案 0 :(得分:2)

JMSXDeliveryCount属性仅在消息传递一次然后重新分派(会话恢复等)时可用。如果消息的传递计数为零,则getPropertyNames()等返回的集合中不会出现JMSXDeliveryCount。

答案 1 :(得分:0)

有一个名为 JMSXDeliveryCount 的消息属性,用于指示消息已传递的次数。 JMS 2.0 规范的第 3.5.11 节对 JMSXDeliveryCount 进行了说明:

当客户端收到消息时,JMS 定义的强制性消息属性 JMSXDeliveryCount 将设置为消息已传递的次数。第一次收到消息时,它将被设置为 1,因此值为 2 或更大的值表示消息已重新发送。

如果设置了 JMSRedelivered 消息头值,则 JMSXDeliveryCount 属性必须始终为 2 或更多。有关 JMSRedelivered 消息头的更多信息,请参见第 3.4.7 节“JMSRedelivered”,

JMSXDeliveryCount 属性的目的是允许使用应用程序识别特定消息是否正在重复重新传递并采取适当的措施。

不能保证 JMSXDeliveryCount 属性的值完全正确。 JMS 提供程序不应保留此值以确保其值在发生故障时不会丢失。