Java SE 6新特性: JMX 与系统管理

豆豆网   技术应用频道   2007年08月11日    社区交流

内容摘要:介绍了 Java 管理扩展(Java Management Extension,JMX) 架构及其框架,以及在 Java SE 5 中新引入的 JMX API -- java.lang.management 包, 最后作者讲述了此 API 在 Java SE 6 中的相关改进和对未来版本的展望

  很明显,和其它 MBean 类似,使用 Model MBean 的过程也是下面几步:

  创建一个 MBServer:mBeanServe

  获得管理资源用的 MBean:serverBean

  给这个 MBean 一个 ObjectName:serverMBeanName

  将 serverBean 以 serverMBeanName 注册到 mBeanServer 上去

  唯一不同的是,ModelMBean 需要额外两步:

1.serverMBean.setModelMBeanInfo(getModelMBeanInfoForServer(serverMBeanName));
2.serverMBean.setManagedResource(server, "ObjectReference");

  第一步用于提供 serverMBean 的元数据,主要包括以下两类

  类似于普通的动态 MBean,需要 MBean 的 Attribute、Invocation、Notification 的类型/反射信息,诸如返回类型、参数类型和相关的 get/set 方法等。这里将不再赘述。

  关于缓存、持久化以及日志等的策略。后面我们将介绍一些这方面的信息。

  第二步指出了 ServerMBean 管理的对象,也就是说,从元数据中得到的 Method 将施加在哪个 Object 上。需要指出的是 setManagedResource(Object o, String type); 中第二个参数是 Object 类型,可以是 "ObjectReference"、"Handle"、"IOR"、"EJBHandle" 或 "RMIReference"。目前 SE 中的实现只支持 "ObjectReference"。笔者认为后面几种类型是为了将来 JMX 管理对象扩展而设定的,可能将来 Model Bean 不仅可以管理 Plain Java Object(POJO),还可能管理 Native Resource, 并给诸如 EJB 和 RMI 对象的管理提供更多的特性。

  Model Bean 与普通动态 Bean 区别在于它的元数据类型 ModelMBeanInfo 扩展了前者的 MBeanInfo,使得 ModelMBeanOperationInfo、ModelMBeanConstructor_Info、ModelMBeanAttributeInfo 和 ModelMBeanNotificationInfo 都有一个额外的元数据:javax.management.Descriptor,它是用来设定 Model Bean 策略的。数据的存储是典型的 "key-value" 键值对。不同的 Model Bean 实现,以及不同的 MBeanFeatureInfo 支持不同的策略特性。下面我们就以 Attribute 为例,看一下 RequiredModelBean 支持的策略。

来源:IBM    作者:吕晶 李夷磊    责编:豆豆技术应用

正在加载评论...