您好我是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中的第一个问题,这个问题可能是基本问题,但我在这个问题上花了很多时间。
答案 0 :(得分:0)
查看How can I monitor ActiveMQ,有很多种可能性。
Advisory Messages可能最适合您的要求。
答案 1 :(得分:0)
ActiveMQ 5.8中存在导致此问题的错误。如果要可靠地使用QueueBrowser尝试执行此操作,则需要转到版本5.9.0。但是,如果Queue要深入,您仍可能遇到问题,因为无法保证浏览器将返回所有消息,因为它必须在配置的内存限制内工作,这可能导致它停止在来自商店的消息中进行分页。