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); } }
activeMQ JMS 代码监控
二、代码监控
猜你喜欢
转载自showlike.iteye.com/blog/2000492
今日推荐
周排行