我想在页面上显示JMS队列统计信息,我可以在其中显示队列中有多少消息
有没有办法以通用的方式(不使用任何提供者特定的API),而不是遍历所有消息?
我知道我可能会使用QueueBrowser.getEnumeration(),但是为了简单的计数功能而迭代所有消息的成本太高。
答案 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