`

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);
	}
}
分享到:
评论

相关推荐

    activeMQ JMS 3种创建方式

    JMX允许管理员远程管理和监控Java应用程序,包括ActiveMQ。通过JMX,可以创建和管理QUEUE和TOPIC。 1. 连接JMX:使用JConsole或JMX Console等工具连接到运行中的ActiveMQ服务器。 2. 查找MBean:在MBean浏览器中...

    ActiveMQ在JMS中的运用-深入浅出JMS

    在压缩包文件“wsheng-jms”中,可能包含了使用ActiveMQ和JMS的示例代码或教程,通过学习这些资源,你可以更深入地了解如何在实际项目中使用这些技术。 总结来说,JMS和ActiveMQ为分布式系统提供了一种健壮的消息...

    tomcat activemq jms所需包

    6. **编写应用程序代码**:在你的Web应用程序中,使用JMS API创建生产者和消费者,与ActiveMQ服务器进行交互。例如,使用`ConnectionFactory`创建连接,然后创建会话、目的地(队列或主题)、生产者和消费者。 7. *...

    JMS.rar_activemq_jms_jms activemq

    总的来说,本示例旨在演示如何利用ActiveMQ作为JMS实现,通过编写Java代码发送消息。理解JMS和ActiveMQ的工作原理及其API的使用,对于构建高效、可靠的分布式应用程序至关重要。通过实践和探索"JMS.txt"中的代码,你...

    activemq jms

    7. **ActiveMQ管理**:介绍使用控制台或命令行工具监控和管理ActiveMQ实例。 8. **syslog集成**:讲解如何配置ActiveMQ以接收和处理syslog日志,以及如何解析和转发这些日志。 9. **问题排查与优化**:分享在使用...

    activeMq in action 使用activeMq开发JMS的简单讲述

    2. **创建连接工厂**:在Java代码中,我们需要创建一个JMS连接工厂,通常使用`ActiveMQConnectionFactory`类。 3. **建立连接和会话**:通过连接工厂创建JMS连接,然后创建会话。会话是操作消息的上下文,支持事务和...

    ActiveMQ代码用例

    ActiveMQ提供了Java API供开发者直接在代码中使用,主要包括`javax.jms`包下的接口和类。 1. **创建ConnectionFactory**:连接工厂是创建到ActiveMQ服务器连接的工厂类,例如`ActiveMQConnectionFactory`。 2. **...

    activemq +jms(原生和集成spring-jms)

    2. **ActiveMQ的安装与配置**:讲解如何下载ActiveMQ,配置其配置文件(如`activemq.xml`),启动和关闭Broker,并通过Web管理控制台进行监控。 3. **JMS API的使用**:介绍JMS接口,如ConnectionFactory、...

    ActiveMq-JMS好用实例详解

    ### ActiveMQ-JMS好用实例详解 #### 一、ActiveMQ简介及特点 **ActiveMQ** 是一个非常流行的开源消息中间件,它基于 **Java消息服务(JMS)** 规范,能够提供高度可靠的消息传递机制。ActiveMQ 以其丰富的功能集、...

    JMS ActiveMQ

    【JMS ActiveMQ】知识点详解 一、MQ简介 消息队列(MQ)是一种用于分布式系统之间交换信息的技术。它允许应用程序将消息存储在内存或磁盘上,直到被其他应用程序消费。MQ使得应用程序可以独立运行,无需关心彼此的...

    activemq生产者和消费者案例代码.zip

    Apache ActiveMQ是开源的Java消息服务(JMS)提供商,它是Apache软件基金会的一部分,用于处理消息中间件。在分布式系统中,消息队列如ActiveMQ起着至关重要的作用,它们作为应用程序之间的通信桥梁,实现解耦和异步...

    JMS-ActiveMQ入门实例

    此外,ActiveMQ还提供了丰富的管理工具和监控功能,确保了消息传递的稳定性和高效性。 本实例将带领初学者了解如何使用JMS和ActiveMQ构建一个简单的消息传递系统。首先,我们需要安装以下软件包: 1. **...

    activemq中间件视频 jms规范

    在视频教程中,你将看到如何在Java项目中集成ActiveMQ客户端,以及如何编写代码来发送和接收消息。 除了基本的JMS操作,你还将接触到高级功能,比如消息的事务处理、消息选择器(用于过滤接收到的消息)、消息组...

    JMS ACTIVEMQ 教程文档

    Apache ActiveMQ 是一个开源的JMS提供商,它是Apache软件基金会的一部分,也是最广泛使用的JMS实现之一。ActiveMQ提供了多种协议支持,包括开放消息传递协议(STOMP)、AMQP、MQTT等,使得它能够与各种不同类型的...

    activemq入门实例,有源代码

    3. **启动与管理**:通过命令行或管理界面启动ActiveMQ服务,你可以使用内置的Web控制台来监控和管理消息队列,包括查看队列状态、创建和删除队列等操作。 4. **JMS编程模型**:在`activemq.doc`文档中,你将了解到...

    Spring+ActiveMQ整合实例代码工程

    本实例代码工程"Spring+ActiveMQ整合实例代码工程"正是结合两者,展示了如何在Spring环境中配置并使用ActiveMQ进行消息传递。 首先,我们需要了解Spring与ActiveMQ整合的基本概念。Spring框架提供了对多种消息...

    activemq 5.7 官方源代码

    Apache ActiveMQ是业界广泛使用的开源消息中间件,它基于Java平台并遵循JMS(Java Message Service)标准。ActiveMQ 5.7版本是其历史上的一个重要版本,提供了稳定且高效的消息传递服务。在这个版本中,我们可以深入...

    activemqactivemq

    Apache ActiveMQ是业界广泛使用的开源消息中间件,它遵循Java Message Service (JMS) 规范,提供高效、可靠的异步消息传递服务。在“activemqactivemq”这个主题下,我们主要关注如何使用ActiveMQ进行消息的接收和...

    jms Spring+ActiveMQ 5.4.2

    在"jmsSend"这个文件名中,我们可以推测这可能是演示如何使用Spring发送JMS消息的示例代码或配置。通常,这样的示例会展示如何设置`JmsTemplate`,配置目的地(如队列或主题),以及如何编写消息监听器来接收消息。 ...

    spring整合JMS-居于ActiveMQ实现

    ActiveMQ是Apache软件基金会的一个项目,它是一个开源的JMS提供者,支持多种协议,如TCP/IP、SSL、NIO、HTTP、HTTPS等,同时还提供了Web控制台以方便管理和监控。ActiveMQ以其稳定性和高性能著称,是许多企业的首选...

Global site tag (gtag.js) - Google Analytics