我们运行startup.bat文件,之后开启JConsole,远程登录tomcat

之后即可查看远程Tomcat资源

而Tomcat自身这个容易也有很多模块支持JMX规范,可以通过JConsole进行一些MBean的管理

6. 监控JavaEE容器
说完Tomcat这种Web容器,不得不说说JavaEE容器,就将开源的JBoss拉出来看看,其实JBoss自身因为是一个JavaEE容器,而JMX是属于JavaEE5范畴内的规范,所以JBoss自身就拥有很多JMX的特性,比如咱们动态添加一个DataSource资源时候,后台的JBoss控制台console的界面就会自动更新运行时的状态,数据源的连接状态也能一览无余的显示给后台使用者。这些实际上都是JMX的特性。只不过结合了Web页面的UI罢了。其实基于Web页面,大家就能看到JBoss自身的运行状况了

如果需要JConsole连上远端的JBoss,和Tomcat一样,需改一下配置文件run.bat,linux的就不赘述了,将以下代码段
Java代码
if "x%JAVA_OPTS%" == "x" (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME%"
) else (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS%"
)
替换成
Java代码
if "x%JAVA_OPTS%" == "x" (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME% -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
) else (
set "JAVA_OPTS=-Dprogram.name=%PROGNAME% -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false %JAVA_OPTS%"
)
之后启动JConsole即可远程连接JBoss,地址:192.168.1.100:9999

可以看出Tomcat与JBoss的消耗资源真的不是一个数量级的。
7. 总结
这次是介绍了JMX的使用场景和一些分布式系统中常用的配置和监控情形,对于JMX规范本身,尤其是重要的MBean并没有做过多的介绍,其实MBean有很多种情况,这一篇文章并不能尽述。知道他是干什么,遇到那些晦涩难懂的理论就不再惧怕了,有时间打算下次再详细说说JMX MBean的各种使用情况。
作者“自我否定的勇气,兼收并蓄的气度”