Java操做 ActiveMQ 遠程監控JMX設置

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

這裏寫圖片描述

相關文章
相關標籤/搜索