使用ActiveMQ监控代理重新交付

时间:2014-08-01 09:23:39

标签: activemq monitoring jmx

我们使用此配置为我们的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。

1 个答案:

答案 0 :(得分:1)

消息存储在JobSchedulerStore中,JobSchedulerStore是与普通AMQ KahaDB或JDBC存储分开的独立存储。这个商店的可见度较低,但应该有一个MBean。您可以通过JMX获取一些信息,也可以通过发送带有特殊标头集的JMS消息来获取信息。有一篇关于JMS样式管理的文章here