[英]Retrieve the information of a registered JMX mbean
我正在使用Eclipse編寫兩個簡單的Java程序。 第一個程序創建一個簡單的mbean並將其注冊在Mbean服務器中。 第二個程序檢索已注冊的mbean的信息。 要注冊和檢索mbean,我使用下面的代碼為這兩個程序創建了服務器:
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
當我運行第二個程序時,它不會列出創建的Mbean,並且下面的兩行返回false。
ObjectName mbeanName = new ObjectName("HelloAgent:name=helloWorld1");
mbs.isRegistered(mbeanName);
但是,我可以使用JConsole看到並訪問它。 我錯過了什么嗎? 謝謝! jconsole快照1 jconsole快照2
正如您提到的,您正在運行兩個不同的Java程序,這意味着它們都具有不同的MBean Server ,並且在不同的JVM中運行。
mbs.isRegistered(mbeanName);
上面的方法將檢查MBean是否已在當前Java進程的MBean服務器中注冊。 它不能查詢另一個Java程序的MBean服務器。
要從另一個Java程序訪問MBean,您需要創建一個客戶端,該客戶端將使用RMI查詢您的第一個Java程序(包含要管理的MBean)。
您可能會發現本教程對實際了解使用MBenas進行JMX監視的工作很有幫助 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.