2015-11-12 63 views
3

我注意到一些MBean具有嵌套的鍵;我如何使查詢獲得該密鑰?MBean JMX中的嵌套對象名稱

下圖顯示了一個例子:

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,它沒有提到關於嵌套鍵的任何事情。

回答

3

我注意到,我可以範圍添加到屬性列表當我看着jconsole

所以,我使用的是:

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

很高興知道,這不是記錄在任何地方...

0

要獲取所有會議的tomcat使用JConsole可以在以下位置找到:

卡塔利娜>管理>本地主機>/## 07(>運行> listSessionIds)

爲了得到MBean對象名的/ ## 07只要按一下它JConsole的,它會顯示名稱。 (如下所示)

enter image description here

Java代碼來獲取所有會話ID:

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