JMX
jmx architecture
instrumentation level 設備層
agent level 代理層
distributed level 分發層
圖:1
instrumentation level:
jmx定義了instrumentation level如何去定義資源以被管理。
實現了instrumentation的接口稱為managed bean 或MBean.
定義MBean:
1.實現MBean interface
2.實現DynamicMBean
實現自己MBean接口的類稱為標準MBean(standard MBean)
Standard MBean可以通過屬性、方法修改其內容。
屬性通過get,set方法。
MBean interface:
Mbean interafce為 類名+MBean,如MyClass,其MBean定義為MyClassMBean
DynamicMBean interface:
getMBeanInfo(): MBeanInfo
getAttribute( attribute:String ): Object
getAttributes( attributes:String[] ): AttributeList
setAttribute( attribute:Attribute ): void
setAttributes( attributes:AttributeList ): AttributeList
invoke( actionName:String,params:Object[],signature:String[] ): Object
Standard MBean 繼承模式:
B類無MBean,通過繼承A類得到AMBean的接口。
B類有MBean接口,則通過繼承A,也無法得到AMBean的接口
(以下待測試,B既實現了BMbean接口,又繼承A類)
AMBean <- BMBean
A <- B
則B只繼承BMBean的內容,對AMBean無關系
DynamicMBean 繼承模式類似Standard MBean,通過繼承A類得到getters/setters接口。
實踐:
1.下載demo,javac編譯后運行
2.打開jconsole,打開MBean窗口,可以進行參數調用,屬性修改。
notification:
javax.management.AttributeChangeNotification[source=com.example.mbeans:type=Hello][type=jmx.attribute.change][message=CacheSize changed]
資料:
1.JMX_1_4_specification.pdf
2.jmx doc tutorial
3. Java Dynamic Management Kit 5.1 Tutorial:http://docs.sun.com/app/docs/doc/816-7609