正 文

为Web应用建立基于JMX的管理系统


www.7dspace.com  更新日期:2006-1-20 2:14:01  七度空间



  一、创建Web应用的管理系统

  对Web应用构建一个基于JMX的管理系统,我们需要做的事情有哪些呢?

  针对每一个需要管理的资源创建一个MBean的实例,这是JMX框架所要求的,有两种类型的实例可供选择,一种是直接管理资源的MBean,一种通过调用资源实例进行管理的MBean。

  编写一个MBean描述文件,并描述每一个MBean,选择基于XML的MBean描述文件是一个不错的决定。

  通过读MBean描述文件,生成MBeanInfo,从而生成一个个MBean。

  将需要进行管理的MBean注册到MBean Server当中。

  编写客户端代码,选择Web的方式进行客户端的编码比较Web应用的风格,也比较容易实现。

  那么一个基于JMX的Web应用的管理框架已经成形,图3是它的基本结构图,虚线部分为基于JMX的管理系统。接下来我们按照步骤实现整个管理系统。

  二、获得MBeanServer的实例

  有两种方案获得MBeanServer的实例。

  1、通过获得Web服务器的MBeanServer的实例,这样做的好处是通过该MBeanServer对本身,甚至可以实现对Web服务器的自身的一些管理。Tomcat的管理框架也是建立JMX的基础上,它使用的JMX的实现是MX4J,这是一个非常优秀的JMX开源项目,在 tomcat4.1.27中,MBeanServer的实例存放与属性名为"org.apache.catalina.MBeanServer"的 application变量(Web应用中变量的几种范围:page,request,session,application)中,因此servlet 中获得MBeanServer实例的办法:

  server = (MBeanServer)
getServletContext().getAttribute("org.apache.catalina.MBeanServer");

  如果通过这种方式,你获得的server为null,这说明你必须还要完成下面的工作,使你能够有权限获得系统的 MBeanServer,tomcat才会将MBeanServer的实例存放在web应用程序下属性名 "org.apache.catalina.MBeanServer"的系统变量中。

  找到tomcat下conf目录,修改server.xml文件。修改Web应用的context元素,添加上privileged="true"这一项属性即可,例如:

  <Context path="/myapp" docBase="c:/web/" debug="9"
privileged="true" reloadable="true" crossContext="true"/>

  2、通过JMX API中MBeanServerFactory类的createMbeanServer()的方法创建MBeanServer的实例,这样做得好处的使 JMX的实现与Web服务器无关,使代码的移植性更强。在创建完MBeanServer以后,为了让能够在管理系统中很方便的获得该 MBeanServer的引用,可将其置入application变量中(推荐),或者使用singleton设计模式的方法创建和获得。

  使用JMX API创建MBean Server的代码如下:

MBeanServer server = MBeanServerFactory.createMBeanServer();

  究竟采取何种方案获得MBeanServer并不十分重要,可以考虑实现的方便进行选择。
5页,页码:[1] [2] [3] [4] [5] 

上一篇:新春佳节惬意过 让电脑软件全自动操作
下一篇:宽带生活质量提升 安全上网三大利器
标题:为Web应用建立基于JMX的管理系统 作者:xiepan110 来源:blog
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐