Apache Mina 文檔翻譯 - 第十六章 - JMX支持

[size=x-large]第十六章 - JMX支持[/size]

Java Management Extensions (JMX) 是用來管理和監視java應用程序的。在這篇文章裏通過一個例子來說明如何讓你的MINA應用程序可以被JMX管理。

下面的程序演示瞭如何將JMX技術整合進MINA的應用程序,我們把JMX類整合進前面的圖片服務器的例子。

[size=large]添加JMX支持[/size]

要使MINA應用程序變成JMX可管理,我們需要做如下的事情:

創建/取得MBean服務器
實例化需要的MBean(IoAcceptor, IoFilter)
把MBean註冊到MBean服務器

我們下面的代碼都是以\src\main\java\org\apache\mina\example\imagine\step3\server\ImageServer.java爲基礎的來討論的。

[size=medium]創建/取得MBean服務器[/size]


// 創建一個JMX的MBean服務器實例
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();


[size=medium]實例化需要的MBean[/size]

下面我們創建一個IoService的MBean


// 創建一個JMX可管理Bean,這個Bean是對MINA的IoService對象的包裝。
// 在本例中,是一個NioSocketAcceptor
IoServiceMBean acceptorMBean = new IoServiceMBean( acceptor );


上面的代碼創建了一個IoService的MBean。它接受一個acceptor的實例,並把它通過JMX暴露出來。

同樣我們也可以添加一個IoFilterMBean和其他的自定義MBean

[size=medium]把MBean註冊到MBean服務器[/size]


// 創建一個JMX的ObjectName實例,必須按照特定的格式
ObjectName acceptorName = new ObjectName( acceptor.getClass().getPackage().getName() +
":type=acceptor,name=" + acceptor.getClass().getSimpleName());

// 把bean註冊到MBeanServer,如果沒有這一行acceptor就不會進入JMX的管理範圍
mBeanServer.registerMBean( acceptorMBean, acceptorName );


我們創建一個ObjectName,然後通過這個名字把MBean註冊到MBean的服務器。我們的應用程序現在就是JMX可管理的。讓我們來看一下是什麼效果:

[size=medium]啓動一個圖片服務器[/size]

如果我們使用java5及以前的版本:


java -Dcom.sun.management.jmxremote -classpath <CLASSPATH> org.apache.mina.example.imagine.step3.server.ImageServer


如果使用Java6以後的版本:


java -classpath <CLASSPATH> org.apache.mina.example.imagine.step3.server.ImageServer


[size=medium]啓動JConsole[/size]

/bin/jconsole

我們就可以看到通過MBean暴露出來的屬性和操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章