子在川上曰

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

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

          文/陳剛  from www.chengang.com.cn at 2005-12-26
           
            前面所有看效果都是通過Html網(wǎng)頁來看的。JDK5.0自帶了一個jmx客戶端,叫jconsole,位于c:\jdk\bin\jconsole.exe。我們來用用這個客戶端來連接Mbean Server。
           
          一、vm參數(shù)方式
           
          1、還是用第一篇的那個HelloAgent,修改HelloAgent,將第一句:
          MBeanServer server = MBeanServerFactory.createMBeanServer();
          改為:MBeanServer server = ManagementFactory.getPlatformMBeanServer();
          注:ManagementFactory的全路徑為:java.lang.management.ManagementFactory
           
          2、修改Eclipse的run選項,把-Dcom.sun.management.jmxremote=HelloAgent”這一句加入到run選項中,修改如下圖:
          1135579391260_7463.gif
           
          3、運行HelloAgent,然后在Dos窗口輸入“jconsole”來啟到JConsole,得到如下界面。1135579573812_8685.gif 
          4、單擊“連接”,進(jìn)入以下界面:
          1135579720638_3644.gif
           
          二、RMI方式
           
            還是用jconsole,但方式變了。這里不需要象上面那樣修改Eclipse run的vm選項。
           
          1、還是用第一篇的HelloAgent,加上一段代碼,啟動一個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運行一個命令:rmiregistry 9999
           
          3、運行HelloAgent,然后再在dos下運行命令jconsole,得到如下界面,輸入service:jmx:rmi:///jndi/rmi://localhost:9999/server
           1135580892339_8412.gif
          三、總結(jié)
            連接MBeanServer的方式除了Html、JConsole,還有一些第三方的客戶端,比較有名的是MC4j,通過這些客戶端我們可以很容易去訪問MBean。這也就是我們?yōu)槭裁匆肑MX的其中一個原因:試想如果我自己搞一套標(biāo)準(zhǔn),勢必要自己開發(fā)一個客戶端,那會是一個不小的工作量。

          作者簡介

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

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

          評論

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

          沒圖 真的很難看懂啊 能把圖加上嗎
          2012-04-12 10:22 | 徐鵬鴻
          主站蜘蛛池模板: 玉环县| 滕州市| 漳浦县| 惠来县| 西城区| 贡觉县| 泗阳县| 郸城县| 天峨县| 理塘县| 同德县| 镇康县| 文安县| 邯郸市| 卢龙县| 宣武区| 牟定县| 盐津县| 珠海市| 白城市| 沈阳市| 冕宁县| 芦溪县| 平泉县| 武鸣县| 新巴尔虎右旗| 宝鸡市| 县级市| 佳木斯市| 子洲县| 东平县| 昌都县| 新绛县| 福安市| 乐山市| 肃南| 阿拉善盟| 屏南县| 罗山县| 民勤县| 台中市|