JMX用于管理和监控Java应用,这个指南会提供一个例子来说明如何在基于MINA的应用中使用JMX。 这个指南用于说明如果将JMX技术整合到基于MINA的应用中,在这里,将会整合MINA-JMX类到HTTP服务器例程中。 版本:本指南使用的MINA版本在1.0以上。 1 增加一个服务管理MBean example/src/main/java/org/apache/mina/example/httpserver/codec/Server.java 引入如下内容: import java.lang.management.ManagementFactory; 下面还有: IoAcceptor acceptor = new SocketAcceptor(); 然后增加下面代码: IoServiceManager serviceManager = new IoServiceManager( acceptor MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); IoServiceManager类实现IoServiceManagerMBean接口,IoServiceManager类持有一个IoService对象,并且在其执行时监视其工作,每几秒钟推出工作情况,每次呼叫serviceManager.startCollectingStats(1000)方法。 后面三行代码是用于定义JMX的,以使其适合于JMX子系统进行监控。传入的字串参数是对象名称,可以使用你想要的任意名字,主要是用于描述这个MBean。 编译这个JMX增强的HTTP服务器。这里没有什么特别的。 2 启动这个HTTP服务器 注意Java版本:不同版本的命令行参数会有不同。 如果使用Java5或是以前版本: java -Dcom.sun.management.jmxremote -classpath <CLASSPATH> Java6及以上版本: java -classpath <CLASSPATH> 3 启动JConsole 启动JConsole使用如下命令: <JDK_HOME>/bin/jconsole 一旦用JConsole连接到这个支持JMX的HTTP服务器,那么就可以通过点击"MBeans"来展开,然后在树形菜单里展开"mina.example.http.server",下面可以看到MBean的属性,这些列在下面的属性和操作都是包括在org.apache.mina.integration.jmx.IoServiceManagerMBean接口中的方法。定义这些方法的类是org.apache.mina.integration.jmx.IoServiceManager。 下面是属性列表: AverageByteReadThroughput 另外,你可以执行下面所列的操作: closeAllSessions 4 关于MINA和JMX更深入的信息 未完,待续。 参考文档: Apache MINA JMX Integration http://mina.apache.org/jmx-integration.html |