activemq配置jmx

配置activemq中的jmx可以用于监控activemq信息。

activemq.xml配置

修改broker属性

添加节点managementContext

<managementContext>

            <managementContext createConnector="true" connectorPort="1099" connectorPath="/jmxrmi" jmxDomainName="myDomain"/>

        </managementContext>

activemq启动项配置

ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false \

    -Dcom.sun.management.jmxremote.rmi.port=1099 \

    -Dcom.sun.management.jmxremote.authenticate=false \

    -Djava.rmi.server.hostname=192.168.114.129"

jconsole连接测试

java连接测试

public class QueueList {

private static String connectorPort="1099";

private static String connectorPath="/jmxrmi";

private static String jmxDomain="myDomain";

@Test

public void getQueueInfoList() throws Exception{

LocateRegistry.createRegistry(1099);

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://192.168.114.129:"+connectorPort+connectorPath);

JMXConnector connector = JMXConnectorFactory.connect(url);

connector.connect();

MBeanServerConnection connection = connector.getMBeanServerConnection();

ObjectName name = new ObjectName(jmxDomain+":type=Broker,brokerName=broker1");

BrokerViewMBean mBean = MBeanServerInvocationHandler.newProxyInstance(connection, name, BrokerViewMBean.class, true);

System.out.println("-----queue数:"+mBean.getQueues().length);

if(mBean != null){

for(ObjectName na: mBean.getQueues()){

QueueViewMBean qBean = MBeanServerInvocationHandler.newProxyInstance(connection, na, QueueViewMBean.class, true);

System.out.println("--------------->");

System.out.println("消息队列名称:"+qBean.getName());

System.out.println("队列中剩余的消息数:"+qBean.getQueueSize());

System.out.println("消费者数:"+qBean.getConsumerCount());

System.out.println("出队数:"+qBean.getDequeueCount());

System.out.println("入队列数:"+qBean.getEnqueueCount());

}

}

System.out.println("-----topic数:"+mBean.getTopics().length);

if(mBean != null){

for(ObjectName na: mBean.getTopics()){

QueueViewMBean qBean = MBeanServerInvocationHandler.newProxyInstance(connection, na, QueueViewMBean.class, true);

System.out.println("--------------->");

System.out.println("消息队列名称:"+qBean.getName());

System.out.println("队列中剩余的消息数:"+qBean.getQueueSize());

System.out.println("消费者数:"+qBean.getConsumerCount());

System.out.println("出队数:"+qBean.getDequeueCount());

}

}

}

}

最新文章

  1. hdu-2444-二分图判定+最大分配
  2. Ruby字符串
  3. PyCharm/IntelliJ IDEA Golang开发环境搭建(最方便快捷的GO语言开发环境)
  4. (C#)算法题
  5. 【转】Kettle集群
  6. php文件以二进制形式上传并放入到数据库中
  7. [BS-14] 打印NSArray和NSDictionary的3种方法
  8. randperm函数
  9. 【每日scrum】NO.6
  10. eBay 开发流程
  11. CoreData 基本操作方法封装
  12. nil、Nil、NULL与NSNull的区别--备用
  13. javascript中构造StringBuffer实例
  14. SICP-2.2-数据的抽象
  15. expect 批量自动部署ssh 免密登陆 之 三
  16. css定位的各属性占位问题
  17. Visual Studio Installer 设置属性简介
  18. HR算法具体过程
  19. javascript 自动填充功能
  20. 转换类型 totypeString

热门文章

  1. [UE4]Scroll Box带滚动条的容器
  2. MyEclipse 10 + OsChina GIt项目托管
  3. doris 0.9.0版本docker镜像制作与使用
  4. orcal 程序自动和手动项
  5. Tesseract-OCR的简单使用与训练
  6. leetcode283
  7. 第四篇、Python文件处理
  8. JMeter处理返回结果unicode转码为中文
  9. LevelDB源码分析-MemTable
  10. Sql Server数据库之约束