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. [UE4]Native Widget Host

    一.Native Widget Host是一个容器,它可以包含一个Slate UI 二.Native Widget Host应该用在当你需要把一个Slate UI 放到UMG中的时候,只有这个时候才需 ...

  2. 转wave 文件解析

    转 1 WAVE 文件格式分析 WAVE 文件作为多媒体中使用的声音波形文件格式之一,它是以RIFF(Resource Interchange File Format)格式为标准的.每个WAVE文件的 ...

  3. 深度森林DeepForest

    级联森林(Cascade Forest) 级联森林结构的图示.级联的每个级别包括两个随机森林(蓝色字体标出)和两个完全随机树木森林(黑色). 假设有三个类要预测,因此,每个森林将输出三维类向量,然后将 ...

  4. Linux背背背(2)

    目录: 1.简单命令 2.目录切换命令 3.扩展命令 简单命令 ls 语法1:#ls [路径]            表示列出指定路径下的文件夹和文件的名字,如果路径没有指定则列出当前路径下的 语法2 ...

  5. 未预期的符号 `$'{\r'' 附近有语法错误

    ../runcmake: 行 2: $'\r': 未找到命令 ../runcmake: 行 3: 未预期的符号 `$'{\r'' 附近有语法错误 考虑到代码是从windows下一直过来的,脚本可能在格 ...

  6. 回滚的意义---JDBC事务回滚探究

    JDBC手动事务提交回滚的常见写法一直是rollback写在commit的catch之后: try{ conn.setAutoCommit(false); ps.executeUpdate(); ps ...

  7. 移动端使用mint-ui loadmore实现下拉刷新上拉显示更多

    前序:在使用vue做一个h5项目的时候,需要上拉分页加载,实践中总结一下: 首先要安装mint-ui npm i mint-ui -S 然后引入,一般在main.js里面 import Vue fro ...

  8. 李清华201772020113《面向对象程序设计(Java)》第六周学习总结

    第一部分 理论知识 1.继承 用已有类来构建新类的一种机制.新类可以继承父类的方法和域,同时可以在新类中添加新的方法和域. 已有类称为:超类.基类或父类.新类称作:子类.派生类或孩子类. 子类的构造器 ...

  9. JAVA 类的三大特性,封装,继承,多态 的一些发现总结

    < 一 > 封装 < 二 > 继承 1,关于父类中的私有属性和方法,子类能不能访问的问题 1.1,子类不能通过继承拥有父类的私有属性和方法 1.2,子类可以从父类继承下来的 方 ...

  10. Ado.net之对数据库的增删改查

    一.了解Command对象 1.Command对象:封装了所有对外部数据源的操作,包括增删改查和执行存储过程,并在执行完成后返回合适的结果,同Connection一样,对于不同的数据源,Ado.net ...