Any easy way to get ActiveMQ queue length?

How to get the queue length (number of unoccupied messages sent to the queue) in ActiveMQ using Java?

+8
java jms activemq
source share
2 answers

You should use JMX since the Queue interface does not provide such information.

An example of getting the size of a specific queue:

// 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(); 

Link: ActiveMQ JMX , Required MBeans

Example: Managing ActiveMQ Using the JMX API

+9
source share

Like this:

 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()); 
+5
source share

All Articles