子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評(píng)論 - 915, 引用 - 0
          數(shù)據(jù)加載中……

          [JMX一步步來] 7、用JDK5.0的JConsole來連接MBean

          文/陳剛  from www.chengang.com.cn at 2005-12-26
           
            前面所有看效果都是通過Html網(wǎng)頁來看的。JDK5.0自帶了一個(gè)jmx客戶端,叫jconsole,位于c:\jdk\bin\jconsole.exe。我們來用用這個(gè)客戶端來連接Mbean Server。
           
          一、vm參數(shù)方式
           
          1、還是用第一篇的那個(gè)HelloAgent,修改HelloAgent,將第一句:
          MBeanServer server = MBeanServerFactory.createMBeanServer();
          改為:MBeanServer server = ManagementFactory.getPlatformMBeanServer();
          注:ManagementFactory的全路徑為:java.lang.management.ManagementFactory
           
          2、修改Eclipse的run選項(xiàng),把-Dcom.sun.management.jmxremote=HelloAgent”這一句加入到run選項(xiàng)中,修改如下圖:
          1135579391260_7463.gif
           
          3、運(yùn)行HelloAgent,然后在Dos窗口輸入“jconsole”來啟到JConsole,得到如下界面。1135579573812_8685.gif 
          4、單擊“連接”,進(jìn)入以下界面:
          1135579720638_3644.gif
           
          二、RMI方式
           
            還是用jconsole,但方式變了。這里不需要象上面那樣修改Eclipse run的vm選項(xiàng)。
           
          1、還是用第一篇的HelloAgent,加上一段代碼,啟動(dòng)一個(gè)JMXConnectorServer服務(wù)
          import javax.management.MBeanServer;
          import javax.management.MBeanServerFactory;
          import javax.management.ObjectName;
          import javax.management.remote.JMXConnectorServer;
          import javax.management.remote.JMXConnectorServerFactory;
          import javax.management.remote.JMXServiceURL;
          import com.sun.jdmk.comm.HtmlAdaptorServer;
          public class HelloAgent {
              public static void main(String args[]) throws Exception {
                  MBeanServer server = MBeanServerFactory.createMBeanServer();
                  ObjectName helloName = new ObjectName("chengang:name=HelloWorld");
                  Hello hello = new Hello();
                  server.registerMBean(hello, helloName);
                  ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8082");
                  HtmlAdaptorServer adapter = new HtmlAdaptorServer();
                  server.registerMBean(adapter, adapterName);
                  adapter.start();
                  System.out.println("start.....");
                  // Create an RMI connector and start it
                  JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");
                  JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
                  cs.start();
                  System.out.println("rmi start.....");
              }
          }
            
          2、在Dos運(yùn)行一個(gè)命令:rmiregistry 9999
           
          3、運(yùn)行HelloAgent,然后再在dos下運(yùn)行命令jconsole,得到如下界面,輸入service:jmx:rmi:///jndi/rmi://localhost:9999/server
           1135580892339_8412.gif
          三、總結(jié)
            連接MBeanServer的方式除了Html、JConsole,還有一些第三方的客戶端,比較有名的是MC4j,通過這些客戶端我們可以很容易去訪問MBean。這也就是我們?yōu)槭裁匆肑MX的其中一個(gè)原因:試想如果我自己搞一套標(biāo)準(zhǔn),勢必要自己開發(fā)一個(gè)客戶端,那會(huì)是一個(gè)不小的工作量。

          作者簡介

          陳剛,廣西桂林人,著作有《Eclipse從入門到精通》
          您可以通過其博客了解更多信息和文章:http://www.chenGang.com.cn

          posted on 2006-03-07 15:08 陳剛 閱讀(4880) 評(píng)論(1)  編輯  收藏 所屬分類: JMX

          評(píng)論

          # re: [JMX一步步來] 7、用JDK5.0的JConsole來連接MBean  回復(fù)  更多評(píng)論   

          沒圖 真的很難看懂啊 能把圖加上嗎
          2012-04-12 10:22 | 徐鵬鴻
          主站蜘蛛池模板: 南雄市| 陆丰市| 潮州市| 方正县| 岳阳市| 子洲县| 泗洪县| 南充市| 虎林市| 泸西县| 罗甸县| 桃源县| 胶州市| 天全县| 封开县| 雷州市| 蒙城县| 科尔| 河西区| 克什克腾旗| 宜阳县| 扶沟县| 张家界市| 娄底市| 清水河县| 喀喇| 颍上县| 综艺| 洛隆县| 尚志市| 子长县| 全南县| 江油市| 新晃| 阿拉善右旗| 神农架林区| 保定市| 卢湾区| 闵行区| 旅游| 玛曲县|