旅行

总是走在漫长的路上...

转载 jmx入门5-模型MBean 收藏

 

模型MBean

一个模型MBean其实就是一个动态MBean,只是更复杂一些.模型MBean和动态MBean的主要的区别就是你不需要编写MBean类,因为任何JMX的实现(我想不同公司的JMX的实现都会稍微有些差异吧)都应提供一个缺省的模型MBean接口的实现,叫RequiredModelMBean.

模型MBean比较动态MBean的优势

  • JMX已经提供了一个缺省的模型 MBean 的实现RequiredModelMBean
  • 当创建一个动态MBean的时候,管理的资源(包含动态MBean实现细节的对象)必须指定.可当是模型MBean时,管理的资源能动态用RequiredModelMBean类中的方法setManagedResource设置.
  • 在动态MBean,所有需要的管理信息必须预先知道.此外的一些单独的信息可以动态显示.在模型MBean,自身的管理信息能用setModelMBeanInfo方法动态配置.
  • 可以用Descriptors指定关于属性和操作的行为的附加数据.可以添加自定义的Descriptors.
  • 可以使用protocolMap描述器转换MBean数据和数据模型到其他管理技术及其模型.
  • 值添加服务,如持久化、缓存、属性变更通知和日志都已经被提供.另外一个重要的特性时这些服务能够为每一个属性和操作定制.
  • 模型MBean的管理信息能够用文件格式如XML指定.这减少了大量的编码工作.

模型MBean元数据类

属性,方法,通知,这些模型MBean的管理信息 ,能够用ModelMBeanInfo接口显示.简单地, ModelMBeanOperationInfo, ModelMBeanConstructorInfo, 和ModelMBeanNotificationInfo描述一个模型MBean的操作,构造器和通知.这些描述模型MBean的管理信息的类称为模型MBean的元数据类.模型MBean的元数据类是

  1. ModelMBeanAttributeInfo -- 描述一个属性
  2. ModelMBeanOperationInfo -- 描述一个操作的符号
  3. ModelMBeanConstructorInfo -- 描述一个构造器的符号
  4. ModelMBeanNotificationInfo -- 描述一个通知
  5. DescriptorSupport -- 提供属性,操作,构造器,通知的附加信息

RequiredModelMBean

JMX提供了一个模型MBean接口的缺省实现,叫RequiredModelMBean.这个模型MBean的实现着意提供方便的使用和这个工具广泛的缺省管理行为.一个模型MBean能够从RequiredModelMBean继承来创建,如果需要也可以覆写(overridden).

RequiredModelMBean能够用没有参数的构造器初始化.这将构造一个带有空的ModelMBeanInfo的RequiredModelMBean.这个RequiredModelMBean的MBeanInfo和Descriptors能够用setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo)方法定制.在定制后,RequiredModelMBean能够注册到MBeanServer.管理资源(如对象的实例处理,它的所有在这个模型MBean管理接口的方法都被执行)能够被设置到RequiredModelMBean,用setManagedResource(java.lang.Object, String)方法,取得实际的已管理对象和类型,如它可能是"ObjectReference", "Handle", "EJBHandle", "IOR" (Interoperable Object Reference), or "RMIReference".

Descriptors

Descriptors类实现Descriptor接口,被用在模型MBean的元数据来添加MBeanInfo中定义的管理接口的行为策略,如缓存,持久化和日志到已管理的bean.

Descriptors是一个名称-值列表(每一个都是字符串名称,对象值)提供关于属性,操作,通知的行为的附加信息.当定义MBean属性的管理接口时,可以添加一个描述器,描述属性的行为策略.模型MBean的实现将试图适配匹配的需求行为.这个行为的描述也能够通过一个管理应用程序改变或者在运行时通过已管理资源改变. 

发表于 @ 2008年02月17日 05:55:00|评论(loading...)

新一篇: jmx 入门7-代理层次 | 旧一篇: jmx入门4-动态MBean

Csdn Blog version 3.1a
Copyright © 张留林