2010-02-25 16 views
11

मैं jconsole के माध्यम से सुलभ सभी जेएमएक्स डेटा को लॉग इन करने में सक्षम होना चाहता हूं। क्या प्रोग्रामेटिक तरीके से ऐसा करने का कोई तरीका है? मैं सिस्टम के लॉगिंग का एक रूप बना रहा हूं, और मैं jconsole के समान कुछ टूल के साथ अंतराल डेटा देखने योग्य बनाना चाहता हूं।मैं जेएमएक्स डेटा को प्रोग्रामेटिक रूप से डंप कैसे करूं?

मैं यह करने के बारे में कैसे जाउंगा?

उत्तर

20

java.lang.management.ManagementFactory आपको जेएमएक्स डेटा तक पहुंच प्रदान करता है।

i.g.

List<MemoryPoolMXBean> memPoolBeans = ManagementFactory.getMemoryPoolMXBeans(); 
for (MemoryPoolMXBean mpb : memPoolBeans) { 
    System.out.println("Memory Pool: " + mpb.getName()); 
} 

कुछ नमूने अतः क्वेरी पर उपलब्ध हैं: [जावा] managementfactory

एक अच्छा पढ़ा: https://www.ibm.com/developerworks/library/j-jtp09196/index.html

पूर्ण कार्यान्वयन के लिए एक दूरस्थ वीएम से कनेक्ट कर रहा:

Map<String,String[]> env = new HashMap<String, String[]>(); 
env.put(JMXConnector.CREDENTIALS, new String[]{"user","pass"}); 
JMXServiceURL address = new JMXServiceURL("service:rmi:///jndi/rmi://host:port/jmxrmi"); 
JMXConnector connector = JMXConnectorFactory.connect(address,env); 
MBeanServerConnection mbs = connector.getMBeanServerConnection(); 

//get all mbeans 
Set<ObjectInstance> beans = mbs.queryMBeans(null,null); 

for(ObjectInstance instance : beans) 
{ 
    MBeanInfo info = mbs.getMBeanInfo(instance.getObjectName()); 
} 

से जानकारी, आप वांछित के रूप में ऑब्जेक्ट नाम और विशेषताओं से पूछ सकते हैं।

+0

यह काम करता है, लेकिन क्या सभी ऑब्जेक्टनामों से सभी मान प्राप्त करने का कोई आसान तरीका है? अभी, ऐसा लगता है कि मुझे na MBeanServerConnection प्राप्त करना है, फिर mbs.getAttributes (..) के साथ व्यक्तिगत रूप से प्रत्येक मान को क्वेरी करें। क्या कोई बेहतर तरीका है? –

+0

ठीक है, मैं queryMBeans के साथ सभी ऑब्जेक्ट नाम प्राप्त कर सकता हूं, लेकिन मैं अभी भी सभी विशेषताओं को स्वचालित रूप से प्राप्त करने में असमर्थ हूं। –

+0

: पी। अब, मैं सभी विशेषताओं से पूछताछ कर सकता हूं, लेकिन जिस तरह से आप इसे करते हैं वह असाधारण सर्किट होता है। मैं आपका जवाब संपादित करने जा रहा हूं और इसे थोड़ा और पूरा कर दूंगा, फिर इसे स्वीकार करूँगा। –

5

मैंने इस command line JMX client को शुरुआती बिंदु के रूप में उपयोग किया जब मैं वही काम करना चाहता था।

+0

ऐसा लगता है कि मैं वास्तव में "गुण" कमांड के लिए 10.4 चाहता हूं, लेकिन वह पृष्ठ पर लिंक टूटा हुआ है। कोई विचार जहां मुझे दर्पण मिल सकता है? –

+0

मुझे लगता है कि मेरे पास यह संस्करण है। आप इसे यहां प्राप्त कर सकते हैं: http://drop.io/jmxclient – Mark

संबंधित मुद्दे

 संबंधित मुद्दे