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