Jean中的MBean嵌套对象名称

问题描述 投票:4回答:2

我注意到有些MBean有嵌套键;如何使查询获取该密钥?

下图显示了一个示例:

enter image description here

通常,MBean查询是这样的:"org.apache.cassandra.metrics:type=CQL,name=RegularStatementsExecuted"

如何将其他文件夹添加到该查询?我尝试过以下方法:

"org.apache.cassandra.metrics:type=Cache,CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache.CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache,type=CounterCache,name=Capacity"

有任何想法吗?

我查看了http://www.oracle.com/us/technologies/java/best-practices-jsp-136021.html,它没有提到嵌套键的任何内容。

java jmx mbeans
2个回答
4
投票

我注意到当我查看jconsole时,我可以在属性列表中添加范围:

所以,我用的是:

"org.apache.cassandra.metrics:type=Cache,scope=CounterCache,name=HitRate"

很高兴知道它没有在任何地方记录......


1
投票

要使用JConsole获取tomcat的所有会话ID,可以在以下位置找到: -

Catalina> Manager> localhost> / ## 07(> Operations> listSessionIds)

要获取MBean对象名称/ ## 07,只需在JConsole上单击它,它将显示名称。(如下所示)

enter image description here

用于获取所有会话ID的Java代码:

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
JMXConnector jmxConn = JMXConnectorFactory.connect(url, null);
// Connecting to the MBeanServer
MBeanServerConnection mbsConn = jmxConn.getMBeanServerConnection();

Object sessionIds = mbsConn.invoke(new ObjectName("Catalina:type=Manager,host=localhost,context=/##07"), "listSessionIds", null, null);

System.out.println(sessionIds.toString());
//close jmx connection
jmxConn.close();
© www.soinside.com 2019 - 2024. All rights reserved.