JMS消息计数器

时间:2011-04-05 13:22:56

标签: java jms

我想在页面上显示JMS队列统计信息,我可以在其中显示队列中有多少消息

有没有办法以通用的方式(不使用任何提供者特定的API),而不是遍历所有消息?

我知道我可能会使用QueueBrowser.getEnumeration(),但是为了简单的计数功能而迭代所有消息的成本太高。

4 个答案:

答案 0 :(得分:4)

我在JMS 1.1 spec中看不到对统计信息的引用。

我的统计数据是,它们可以通过特定于供应商的界面获得。

答案 1 :(得分:2)

我不相信你所寻求的方式是可能的。

虽然您的问题专门询问非提供者特定的方法,但我会提供:

ActiveMQ can be monitored via JMX允许您查询包括队列大小在内的许多内容。您始终可以创建一个接口,然后可以基于每个提供程序进行扩展(例如,您将通过JMX从ActiveMQ提供程序实现中检索队列大小)。

答案 2 :(得分:0)

QueueBrowser是在队列中浏览邮件而不使用它们的唯一标准方式。

很抱歉。

答案 3 :(得分:0)

此解决方案特定于WebLogic,它使用JMSDestinationRuntimeMBean,但每个Application Server都应该允许您执行等效的操作:

http://www.javamonamour.org/2012/01/counting-jms-messages-present-in-jms.html