如何使用Java在ActiveMQ中获取队列长度(发送到队列的未使用消息的数量)?获取ActiveMQ队列长度的简单方法是什么?
回答
您必须使用JMX,因为队列接口不提供此类信息。
检索特定队列的大小的实施例:
// connection
String url = "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi";
JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(url));
MBeanServerConnection connection = connector.getMBeanServerConnection();
// get queue size
ObjectName nameConsumers = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=myqueue");
DestinationViewMBean mbView = MBeanServerInvocationHandler.newProxyInstance(connection, nameConsumers, DestinationViewMBean.class, true);
long queueSize = mbView.getQueueSize();
感谢提示,但我使用了下一个ObjectName:“org.apache.activemq:BrokerName = localhost,Type = Queue,Destination = queueName“和QueueViewMBean类来获取queueViewMBean。一般 - 方法是一样的 –
筛选;
QueueBrowser browser = session.createBrowser(queue);
Enumeration enu = browser.getEnumeration();
List list = new ArrayList();
while (enu.hasMoreElements()) {
TextMessage message = (TextMessage) enu.nextElement();
list.add(message.getText());
}
System.out.println("Size " + list.size());
注意,除非你增加maxPageSize和memoryLimit它将只浏览你最多400条消息:http://betterlogic.com/roger/2012/06/activemq-browse-all-messages – rogerdpack
你会读消费者的所有经纪人消息只是简单地计算它,真的? – deFreitas
- 1. 获取经纬度的最简单方法是什么?
- 2. ActiveMQ中队列名称的长度?
- 3. 什么是队列长度峰值
- 4. 简单的方法来获取角度
- 5. 获取XmlElement顶级文本的最简单方法是什么?
- 6. 从HSQLDB获取ddl sql-script的最简单方法是什么?
- 7. 从网址获取号码的最简单方法是什么?
- 8. 获取域名IP地址的最简单方法是什么?
- 9. 获取子元素ID最简单的方法是什么?
- 10. 在C#中获取OutOfMemoryException的最简单方法是什么?
- 11. 获取iPhone当前位置的最简单方法是什么?
- 12. 从ResultSet获取列宽/长度的最简单方法 - 我必须迭代吗?
- 13. 获取字符串中关键字列表的最简单方法是什么?
- 14. 的ActiveMQ获取入队/出队计数
- 15. 什么是pythonic方法根据长度生成一个新的列表清单?
- 16. 简单队列算法
- 17. 获得前x个字符的最简单方法是什么?
- 18. 用'<br>'取代'\ n'最简单的方法是什么?
- 19. 什么是制作自我提取PE的最简单方法?
- 20. 什么是从gfortran读取.dbf文件的最简单方法
- 21. 在C中抓取网页的最简单方法是什么?
- 22. 复制列的最简单方法是什么?
- 23. 什么是浏览图像列表最简单的方法?
- 24. Python - 什么是更新列表中元素的简单方法?
- 25. 获取整数的二进制表示的最简单方法是什么?
- 26. 什么是使用python提取网页上的URL列表的简单方法?
- 27. 在VB.NET中获取字典功能的最简单方法是什么?
- 28. 获取本月开始和结束日期的最简单方法是什么?
- 29. 什么是从位图数据获取jpg的最简单方法
- 30. 从StreamInsight获取输出到ASP.NET网页的简单方法是什么?
您必须使用JMX,因为Queue接口不提供此类信息。参考:[ActiveMQ JMX](http://activemq.apache.org/jmx.html),[必需的MBeans](http://activemq.apache.org/jmx-support.html)示例:[使用JMX管理ActiveMQ APIs](http://www.consulting-notes.com/2010/08/monitoring-and-managing-activemq-with.html) – Dag