您必须使用JMX,因为Queue接口不提供此类信息。
检索特定队列大小的示例:
// connectionString url = "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi";JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(url));MBeanServerConnection connection = connector.getMBeanServerConnection();// get queue sizeObjectName 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();参考:ActiveMQ
JMX,必需的MBean
示例:使用JMX API管理ActiveMQ



