activeMQ JMS 代码监控

二、代码监控

import java.util.Collection;

import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.broker.jmx.QueueViewMBean;
import org.apache.activemq.broker.jmx.TopicViewMBean;
import org.apache.activemq.web.RemoteJMXBrokerFacade;
import org.apache.activemq.web.config.SystemPropertiesConfiguration;

/**
 * JMS监控
 * @author showlike
 * @4:53:41 PM @Jan 6, 2014
 */
public class JmsMonitoring {
	
	public static void main(String[] args) {
		try{
			RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade();  
			//填写链接属性  
			System.setProperty("webconsole.jmx.url","service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi");  
			System.setProperty("webconsole.jmx.user", "controlRole");  
			System.setProperty("webconsole.jmx.password", "abcd1234");  
			//创建配置  
			SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration();  
			//创建链接  
			createConnector.setConfiguration(configuration);
			
			broker(createConnector);
//			topic(createConnector);
			queue(createConnector);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	/**
	 * broker 监控
	 * @author showlike
	 * @param createConnector
	 * @throws Exception
	 * @date Jan 6, 2014 4:54:06 PM
	 */
	public static void broker(RemoteJMXBrokerFacade createConnector) throws Exception{
		BrokerViewMBean brokerAdmin = createConnector.getBrokerAdmin();  
		System.out.println("==========Connection =================");  
		System.out.println("BrokerName =" + brokerAdmin.getBrokerName());  
		System.out.println("TotalMessageCount =" + brokerAdmin.getTotalMessageCount());  
		System.out.println("TotalConsumerCount =" + brokerAdmin.getTotalConsumerCount());  
		System.out.println("TotalDequeueCount =" + brokerAdmin.getTotalDequeueCount());  
		System.out.println("TotalEnqueueCount =" + brokerAdmin.getTotalEnqueueCount()); 
	}
	
	/**
	 * topic 使用情况监控
	 * @author showlike
	 * @param createConnector
	 * @throws Exception
	 * @date Jan 6, 2014 4:54:06 PM
	 */
	public static void topic(RemoteJMXBrokerFacade createConnector) throws Exception{
	    System.out.println("=============Topic =================");  
	    Collection<TopicViewMBean> topicViewList = createConnector.getTopics();  
	    int i = 1;
	    for (TopicViewMBean topicViewMBean : topicViewList) {  
	        System.out.println("beanName =" + topicViewMBean.getName());  
	        System.out.println("ConsumerCount ="+ topicViewMBean.getConsumerCount());  
	        System.out.println("DequeueCount ="+ topicViewMBean.getDequeueCount());  
	        System.out.println("EnqueueCount ="+ topicViewMBean.getEnqueueCount());  
	        System.out.println("DispatchCount ="+ topicViewMBean.getDispatchCount());  
	        System.out.println("ExpiredCount ="+ topicViewMBean.getExpiredCount());  
	        System.out.println("MaxEnqueueTime ="+ topicViewMBean.getMaxEnqueueTime());  
	        System.out.println("ProducerCount ="+ topicViewMBean.getProducerCount());  
	        System.out.println("MemoryPercentUsage ="+ topicViewMBean.getMemoryPercentUsage());  
	        System.out.println("MemoryLimit =" + topicViewMBean.getMemoryLimit());  
	        System.out.println("////////////////// Topic "+i+" //////////////////"); 
	        i++;
	    }  
	}
	
	/**
	 * queue 使用情况监控
	 * @author showlike
	 * @param createConnector
	 * @throws Exception
	 * @date Jan 6, 2014 4:54:53 PM
	 */
	public static void queue(RemoteJMXBrokerFacade createConnector) throws Exception{
	    System.out.println("============Queue===================");  
	    int i = 1;
	    Collection<QueueViewMBean> queueViewList = createConnector.getQueues();  
	    for (QueueViewMBean queueViewMBean : queueViewList) {  
	        System.out.println(" queue beanName =" + queueViewMBean.getName());  
	        System.out.println("ConsumerCount ="+ queueViewMBean.getConsumerCount());  
	        System.out.println("DequeueCount =" + queueViewMBean.getDequeueCount());  
	        System.out.println("EnqueueCount =" + queueViewMBean.getEnqueueCount());  
	        System.out.println("DispatchCount ="    + queueViewMBean.getDispatchCount());  
	        System.out.println("ExpiredCount =" + queueViewMBean.getExpiredCount());  
	        System.out.println("MaxEnqueueTime ="+ queueViewMBean.getMaxEnqueueTime());  
	        System.out.println("ProducerCount ="    + queueViewMBean.getProducerCount());  
	        System.out.println("MemoryPercentUsage ="+ queueViewMBean.getMemoryPercentUsage());  
	        System.out.println("MemoryLimit =" + queueViewMBean.getMemoryLimit());  
	        i++;
	    }  
	    System.out.println("total queue : "+i);
	}
}

猜你喜欢

转载自showlike.iteye.com/blog/2000492
今日推荐