Apache mina2 用户指南(十六)JMX集成

来源:互联网 发布:新浪微博发淘宝链接 编辑:程序博客网 时间:2024/05/29 15:46
JMX 支持
        Java 管理扩展 (JMX,Java Management Extensions) 用于管理和监控 Java 应用。本文将提供一个示例,以演示如何对基于 MINA 的应用集成 JMX。
        本文旨在帮你将 JMX 技术集成到你的基于 MINA 的应用。在本文中,我们将把 MINA-JMX 相关类集成进图片服务器示例程序。


        添加 JMX 支持
        MINA 应用启用 JMX,我们需要执行以下步骤:
  • 创建或者获取 MBean 服务器
  • 实例化所需的 MBean 类 (IoAcceptor、IoFilter)
  • 将 MBean 注册到 MBean 服务器
        接下来的讨论中我们将关注 \src\main\java\org\apache\mina\example\imagine\step3\server\ImageServer.java
        创建或者获取 MBean 服务器
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // create a JMX MBean Server server instance  
  2. MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();  

        这段代码获取 MBean 服务器实例。
        MBean 实例化
        我们为 IoService 创建一个 IoService:
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // create a JMX-aware bean that wraps a MINA IoService object.  In this  
  2. // case, a NioSocketAcceptor.   
  3. IoServiceMBean acceptorMBean = new IoServiceMBean( acceptor );  

        这里创建了一个 IoService MBean。它接收到一个将由 JMX 揭示的 acceptor 的实例。
        同理,我们如法将 IoFilterMBean 等其他自定义 MBean 炮制添加。
        将 MBean 注册到 MBean 服务器
[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // create a JMX ObjectName.  This has to be in a specific format.    
  2. ObjectName acceptorName = new ObjectName( acceptor.getClass().getPackage().getName() +  
  3.         ":type=acceptor,name=" + acceptor.getClass().getSimpleName());  
  4.   
  5. // register the bean on the MBeanServer.  Without this line, no JMX will happen for  
  6. // this acceptor.  
  7. mBeanServer.registerMBean( acceptorMBean, acceptorName );  

        我们创建了一个 ObjectName,它需要被用作逻辑名以访问 MBean 并且将 MBean 注册到 MBean 服务器。现在我们的应用启用了 JMX。我们来看看它的实际应用。
        启动图片服务器
        如果你使用的是 Java 5 或者更老的版本:
[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. java -Dcom.sun.management.jmxremote -classpath <CLASSPATH> org.apache.mina.example.imagine.step3.server.ImageServer  

        如果你使用的是 Java 6 以后的版本:
[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. java  -classpath <CLASSPATH> }}{{{}org.apache.mina.example.imagine.step3.server.ImageServer  

        启动 JConsole
        使用以下命令启动 JConsole:
[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. /bin/jconsole  

        我们将会看到由 MBean 揭示的不同的属性和操作。
原文链接:http://mina.apache.org/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html
0 0