ActiveMQ_7JMX
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的更多相关文章
随机推荐
- processjs Documentation
Documentation Paul Nieuwelaar edited this page on 20 Sep 2017 · 4 revisions Installation & Usa ...
- java面试多线程问题
Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环 ...
- qrcode生成二维码
代码: <!DOCTYPE html> <html lang="en" style="height: 99%"> <head> ...
- 第三方jar上传到Maven私服(Nexus)
mvn deploy:deploy-file -DgroupId=taobao-sdk -DartifactId=taobao-sdk-java -Dversion=1.0 -Dpackaging=j ...
- Java 原子语义同步的底层实现
原子语义同步的底层实现 volatile volatile只能保证变量对各个线程的可见性,但不能保证原子性.关于 Java语言 volatile 的使用方法就不多说了,我的建议是 除了 配合packa ...
- leetcode20
public class Solution { Stack<char> S = new Stack<char>(); public bool IsValid(string s) ...
- 0429---每日习题 菲薄纳西数列 正则ip匹配
#8.打印斐波拉契数列前n项 def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) for i in range(1,9): p ...
- java List<Map<String,Object>
xml <select id="selectShopList" resultType="java.util.HashMap"> SELECT p.P ...
- tcp中delay_ack的理解
内核版本,3.10. 首先,我们需要知道,在一个sock中,维护ack的就有很多变量,多种状态: struct inet_connection_sock { .... __u8 icsk_ca_sta ...
- 数字三角形/数塔问题(DP入门题)
有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大. 样例输入: 5 13 11 8 12 7 26 6 14 15 8 12 7 ...