activemq.xml設置 第一個配置: 在你下載activemq文件夾下的config中,找到activemq.xml,在broker節點增長useJmx="true" useJmx表示開啓jmx監控 apache
2.在managementContext節點更改url
3.修改bin/文件夾中的啓動腳本activemqcode
1,Windowsorm
SUNJMX=-Dcom.sun.management.jmxremote.port=11099-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password \
-Dcom.sun.management.jmxremote.access.file=%ACTIVEMQ_BASE%/conf/jmx.accessxml
Java查詢ActiveMQ隊列信息隊列
public static void main(String[] args) throws IOException, MalformedObjectNameException { String url = "service:jmx:rmi:///jndi/rmi://localhost:11099/jmxrmi"; JMXServiceURL urls = new JMXServiceURL(url); JMXConnector connector = JMXConnectorFactory.connect(urls,null); connector.connect(); MBeanServerConnection conn = connector.getMBeanServerConnection(); //這裏brokerName的b要小些,大寫會報錯 ObjectName name = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker"); BrokerViewMBean mBean = (BrokerViewMBean)MBeanServerInvocationHandler.newProxyInstance(conn, name, BrokerViewMBean.class, true); for(ObjectName na : mBean.getQueues()){//獲取點對點的隊列 mBean.getTopics() 獲取訂閱模式的隊列 QueueViewMBean queueBean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(conn, na, QueueViewMBean.class, true); System.out.println("******************************"); System.out.println("隊列的名稱:"+queueBean.getName()); System.out.println("隊列中剩餘的消息數:"+queueBean.getQueueSize()); System.out.println("消費者數:"+queueBean.getConsumerCount()); System.out.println("出隊列的數量:"+queueBean.getDequeueCount()); } }