如何使用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