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());

}

}

}

}

ActiveMQ_7JMX的更多相关文章

随机推荐

  1. ThinkPHP5.*版本发布安全更新

    2018 年 12 月 9 日 发布 本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版 ...

  2. AtomicInteger类和int原生类型自增鲜明的对比

      AtomicInteger这个类的存在是为了满足在高并发的情况下,原生的整形数值自增线程不安全的问题.比如说 int i = 0 ; i++; 上面的写法是线程不安全的. 有的人可能会说了,可以使 ...

  3. issue_hana

    2019-01-11T14:35:01.910187+08:00 SHADEVDB01 cron[57062]: PAM unable to dlopen(/lib64/security/pam_sy ...

  4. 为什么SQL用UPDATE语句更新时更新行数会多3行有触发器有触发器有触发器有触发器有触发器有触发器

    update明显更新就一行,但是结果显示更新多行. 原因是有触发器有触发器有触发器有触发器有触发器有触发器有触发器有触发器有触发器

  5. Python 进行查询日志查询条件分析

    任务:crm日志的查询条件  每次是哪几个字段查,有几种组合 ,统计每种组合查询的量 日志样例: -- ::] -- ::] 查询条件:query查询条件可以多个,用|and|分割. 步骤: 1.正则 ...

  6. <记录> curl 封装函数

    1. POST请求 参数1 : 请求地址 参数2 : 数组形式的参数 /** * @param string $url post请求地址 * @param array $params * @retur ...

  7. 一次sendmsg的改造过程

    比较蛋疼的一个改造过程,简单记录一下. 场景:用户态使用sendmsg发包,tcp报文,由于内核实现过程中存在一次kernel_read,也就是存在将pagecache中的内容拷贝一次的问题. 为了减 ...

  8. SQL(ORACLE)

    查询数据库编码: select * from sys.nls_database_parameters;select * from sys.nls_session_parameters; replace ...

  9. mysql,utf8,utf8mb4

    参考文章 https://www.cnblogs.com/beyang/p/7580814.html https://blog.csdn.net/testcs_dn/article/details/7 ...

  10. Java框架spring Boot学习笔记(一):开始第一个项目

    新建一个项目,选择Spring initializr 修改group和项目名 添加依赖包Web,MongoDB 设置保存位置和工程名 新建一个test的文件 输入代码: package com.xxx ...