死信队列中的JMSXDeliveryCount

时间:2017-11-03 11:26:23

标签: java-ee jboss jms wildfly activemq-artemis

知道如何在邮件到达死信队列后获得实际的重新传递计数。出现,Artemis将此视为新的交付,并将计数器重置为1。

见下图: 1.消息由MDB使用。 2.发生了一些不好的事情,我在上下文中调用setRollbackOnly,直到达到3次最大重试次数。 3. Artemis向配置的DLQ发送消息。 4. DLQ Mdb使用消息,但消息上的JMSXDeliveryCount读取1而不是 3

任何想法,如何从DLQ中检索重试计数3?

1 个答案:

答案 0 :(得分:0)

我不相信在这一点上你可以轻松地做你想做的事。要推断原始邮件的递送计数,您可以获取" _AMQ_ORIG_ADDRESS"消息中的属性,并使用它来使用ActiveMQServerControl#getAddressSettingsAsJSON管理方法查询代理。该方法的输出将包含" maxDeliveryAttempts"为该地址配置,该地址应与邮件发送到死信地址时的JMSXDeliveryCount相对应。