一、JMX簡介
JMX是一種JAVA的正式規范,它主要目的是讓程序且有被管理的功能,那么怎么理解所謂的“被管理”呢?試想你開發了一個軟件(如WEB網
站),它是在24小時不簡斷運行的,那么你可能會想要“監控”這個軟件的運行情況,比如收到了多少數據,有多少人登錄等等?;蛘吣阌窒搿芭渲谩边@個軟件,
比如現在訪問人數比較多,你想把數據連接池設置得大一些。
當然,你也許會專門為這些管理來開發軟件,但如果你借助JMX,則會發現創建這樣的管理程序是如此簡單。因為你無需為管理程序來開發界面,已經
有通用的JMX管理軟件,如MC4J,或者是用一般都附帶提供的HTML網頁來管理,你要做的僅僅是將自己要被管理和監控類的按照JMX規范修改一下即
可。
中間件軟件WebLogic的管理頁面就是基于JMX開發的,而JBoss則整個系統都基于JMX構架。下面將JMX的一些概念,從JMX規范轉帖如下:
二、JMX構架中的各層及相關的組件
-
工具層(Instrumentation Level)
????(a) MBeans(標準的,動態的,開放的和模型MBeans)
????(b) 通知模型:Notification、NotificationListener等類
????(c) MBean元數據類:Attribute、Opreator等類
-
代理層(Agent Level)
????(a) MBean Server
????(b) 代理服務。如前一篇的HtmlAdaptorServer等。
MBean中有getter和setter的就是屬性,如前一篇的Hello類中Name。如果只有getter則表示該屬性只讀。一共有四種MBean,如下:
-
標準MBeans(Standard MBeans)設計和實現是最簡單的,這類MBean使用自己的方法名作為管理接口;
-
動態MBeans(Dynamic MBeans)必須實現一個指定的接口,由于動態MBeans在運行期間暴露它們的管理接口,因此更為靈活;
-
開放MBeans(Open MBeans)屬于動態MBeans,這類MBean依靠基礎數據類型來實現通用管理,并為友情用戶進行自我聲明;
-
模型MBeans(Model MBeans)同樣也是動態MBeans,這類MBeans是完全可配置的,在運行期間進行自我聲明;它們為資源動態工具提供一個一般性的,有默認行為的MBeans類。
在前一篇中的Hello、HelloMBean就是一個標準MBeans(Standard MBeans)。后面接下來的幾篇,我們會繼續介紹其他幾種MBean。