1.構成ファイルconfの下のactivemq.xmlを変更します
2.依存関係:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-broker</artifactId>
<version>5.15.3</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.15.4</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.15.7</version>
</dependency>
3.コード
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import java.io.IOException;
import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.broker.jmx.QueueViewMBean;
public class TestHlt {
public static void main(String[] args) throws IOException, MalformedObjectNameException {
String jmx = "service:jmx:rmi:///jndi/rmi://192.168.0.21:11099/jmxrmi"; //固定格式,更换ip和配置到conf中的端口,一般建议端口使用11099
JMXServiceURL url = new JMXServiceURL(jmx);
JMXConnector connector = JMXConnectorFactory.connect(url, null);
connector.connect();
MBeanServerConnection connection = connector.getMBeanServerConnection();
ObjectName name = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker");//brokerName=localhost 与配置文件对应
BrokerViewMBean mbean = (BrokerViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, name,
BrokerViewMBean.class, true);
for (ObjectName queueName : mbean.getQueues()) {
QueueViewMBean queueMbean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, queueName, QueueViewMBean.class, true);
System.out.println("队列名称:"+queueMbean.getName());
System.out.println("队列中剩余的消息数量:"+queueMbean.getQueueSize());
System.out.println("消费者数量:"+queueMbean.getConsumerCount());
System.out.println("出队列数量:"+queueMbean.getDequeueCount());
System.out.println("*********************************************");
}
connector.close();
}
}
4.効果
キュー名:A50698DE296849AEB8F5A019687DDF62キューに
残っているメッセージの数:1
コンシューマーの
数:0発信キューの数:0
キュー名:async_queue
キューに残っているメッセージの数:0
コンシューマーの
数:1発信キューの数:707