ActiveMQ开发实例4 查看队列消息
2014-02-19 17:30
363 查看
查看JMS消息的总数,队列的总数,没有消费的消息数量、消息内容
package com.yang.activemq; import java.io.IOException; import javax.management.InstanceNotFoundException; import javax.management.MBeanException; import javax.management.MBeanServerConnection; import javax.management.MBeanServerInvocationHandler; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.ReflectionException; import javax.management.openmbean.CompositeData; import javax.management.openmbean.OpenDataException; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import org.apache.activemq.broker.jmx.BrokerViewMBean; import org.apache.activemq.broker.jmx.QueueViewMBean; public class QueryTest { public static void main(String[] args) throws IOException, MalformedObjectNameException, NullPointerException, InstanceNotFoundException, MBeanException, ReflectionException, OpenDataException { // TODO Auto-generated method stub JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"); JMXConnector connector = JMXConnectorFactory.connect(url, null); connector.connect(); MBeanServerConnection connection = connector.getMBeanServerConnection(); ObjectName name = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Broker"); BrokerViewMBean mbean =(BrokerViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, name, BrokerViewMBean.class, true); System.out.println("Statistics for broker " + mbean.getBrokerId()+ " - " + mbean.getBrokerName()); System.out.println(); System.out.println("Number of unacknowledged messages on the broker: " + mbean.getTotalMessageCount()); System.out.println("Number of messages that have been acknowledged on the broker: " + mbean.getTotalDequeueCount()); System.out.println("Number of messages that have been sent to the broker: " + mbean.getTotalEnqueueCount()); System.out.println("Number of message consumers subscribed to destinations on the broker: " + mbean.getTotalConsumerCount()); System.out.println("Total number of Queues: " + mbean.getQueues().length); for (ObjectName queueName : mbean.getQueues()) { QueueViewMBean queueMbean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection, queueName, QueueViewMBean.class,true); System.out.println(); System.out.println("Statistics for queue " + queueMbean.getName()); System.out.println("number of messages which are yet to be consumed: " + queueMbean.getQueueSize()); System.out.println("Number of consumers subscribed this destination: " + queueMbean.getConsumerCount()); CompositeData[] messages = queueMbean.browse(); System.out.println(); System.out.println("----------------------"); for (int i = 0; i < messages.length; i++) { CompositeData data = messages[i]; String value = ""; if(data.containsKey("Text")) { value = (String) data.get("Text"); } else if(data.containsKey("ContentMap")) { value = (String) data.get("ContentMap"); } System.out.println(value); } } } }
相关文章推荐
- 消息队列入门(三)ActiveMQ的应用实例
- ActiveMQ消息队列和spring进行整合实例
- java通过ActiveMQ实现JMS的消息队列实例
- Apache ActiveMQ 5.9.0发送消息成功后,在WEB界面点击队列中的Message ID 查看消息提示提示Error!
- RabbitMQ消息队列安装及在Myeclipse下的开发实例
- Java消息队列--ActiveMq简单实例
- 消息队列入门(四)ActiveMQ的应用实例
- ActiveMQ消息中间件简明笔记(2)——队列模式和主题模式应用开发(JMS API)
- 消息队列开发记录笔记-ActiveMQ
- 【消息队列】ActiveMQ的简单实例 - 生产者消费者模式
- ActiveMQ消息队列和SignalR之日志实时监控及警报小实例
- 第十一章 企业项目开发--消息队列activemq
- JAVA消息中间件-ActiveMQ队列模式简单实例(笔记1)
- ipcs命令查看管道,消息队列,共享内存
- activemq的java开发实例
- ActiveMQ:点对点队列消费者接收不到消息
- Java消息队列-Spring整合ActiveMq
- JMS消息队列ActiveMQ(点对点模式)
- 详解Java消息队列-Spring整合ActiveMq
- Discuz!开发之消息提示函数showmessage()分析及用法实例