我们使用此配置为我们的ActiveMQ Broker配置了Broker redelivery插件。
<redeliveryPlugin fallbackToDeadLetter="true"
sendToDlqIfMaxRetriesExceeded="true">
<redeliveryPolicyMap>
<redeliveryPolicyMap>
<redeliveryPolicyEntries>
</redeliveryPolicyEntries>
<!-- the fallback policy for all other destinations -->
<defaultEntry>
<redeliveryPolicy
maximumRedeliveries="15"
useExponentialBackOff="true"
initialRedeliveryDelay="5000"
useCollisionAvoidance="true"
backOffMultiplier="5"
maximumRedeliveryDelay="93600000" />
</defaultEntry>
</redeliveryPolicyMap>
</redeliveryPolicyMap>
</redeliveryPlugin>
插件按预期执行,从队列中删除失败的消息,并按指定的时间间隔重试。
我们现在面临的问题是,我们需要监视当前等待为每个队列重试的消息数量,因为它们不会在正常队列监视中显示为等待。我在JMX树中找不到与redeliveryPlugin相关的ActiveMQ。
答案 0 :(得分:1)
消息存储在JobSchedulerStore中,JobSchedulerStore是与普通AMQ KahaDB或JDBC存储分开的独立存储。这个商店的可见度较低,但应该有一个MBean。您可以通过JMX获取一些信息,也可以通过发送带有特殊标头集的JMS消息来获取信息。有一篇关于JMS样式管理的文章here。