Active MQ QueueBrowser返回的消息数量比实际消息数量多

时间:2013-12-18 09:28:35

标签: activemq

您好我是ActiveMQ的新手,

我们正在使用Active MQ-5.8.0作为我们系统的消息代理。我的要求是,如果特定队列中的消息数超过某个指定数量(可配置),则会收到警报邮件。所以我发现我们可以使用QueueBrowser来获取消息列表。

以下是代码段:

    enum1 = TestQBrowser.getEnumeration();
        int count = 0;
        while(enum1.hasMoreElements()){
            count++;
            enum1.nextElement();
        }

                    if(count>5)
                 sendMail("Queue has more pending message than threashold 5");//logic to send alert mail.

这是按照预期的方式工作但我在队列中发现了一个奇怪的数字(1113762条消息),但是当我使用ActiveMQ管理控制台检查时,只有100条消息。 能帮到我,为什么我收到这么多的消息。我的方式有什么问题或者QueueBrowser有什么问题吗?

P.S:这是我在StackOverflow中的第一个问题,这个问题可能是基本问题,但我在这个问题上花了很多时间。

2 个答案:

答案 0 :(得分:0)

查看How can I monitor ActiveMQ,有很多种可能性。

Advisory Messages可能最适合您的要求。

答案 1 :(得分:0)

ActiveMQ 5.8中存在导致此问题的错误。如果要可靠地使用QueueBrowser尝试执行此操作,则需要转到版本5.9.0。但是,如果Queue要深入,您仍可能遇到问题,因为无法保证浏览器将返回所有消息,因为它必须在配置的内存限制内工作,这可能导致它停止在来自商店的消息中进行分页。