子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 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、運(yùn)行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運(yùn)行一個命令: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的其中一個原因:試想如果我自己搞一套標(biāo)準(zhǔn),勢必要自己開發(fā)一個客戶端,那會是一個不小的工作量。

          作者簡介

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

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

          評論

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

          沒圖 真的很難看懂啊 能把圖加上嗎
          2012-04-12 10:22 | 徐鵬鴻
          主站蜘蛛池模板: 阳信县| 深水埗区| 长顺县| 侯马市| 克拉玛依市| 临猗县| 六枝特区| 长泰县| 水城县| 织金县| 庆城县| 保定市| 丹阳市| 赤水市| 洪雅县| 马尔康县| 绿春县| 濮阳县| 株洲市| 武城县| 洞头县| 井研县| 廉江市| 长海县| 鄂温| 尉氏县| 青田县| 苍溪县| 凤阳县| 永登县| 德兴市| 离岛区| 葫芦岛市| 苗栗市| 克山县| 惠来县| 巧家县| 贡觉县| 哈巴河县| 曲麻莱县| 珲春市|