通过使用JMX API为远程管理暴露你的Java应用程序是及其简单的,如果使用一个开箱即用的远程管理代理和一个存在的监控管理工具,比如JConsole。
为远程管理公开你的应用,你需要使用正确的属性启动它。这个例子显示了如何为远程管理公开Main JMX代理。
安全考虑“
为简单起见,验证和加密安全机制在这个例子中忽略了。可是,你应该实现这些安全机制,当在现实环境中实现远程管理。What Next?提供了指向其他JMX技术文档,显示了如何激活安全。
这个例子需要Java SE 版本6.为了远程监视Main JMX代理,按照以下步骤:
1 如果之前没有做过,保存jmx_examples.zip到你的工作目录。
2 解压sample classes包,在终端中使用如下命令:
unzip jmx_examples.zip3 在工作目录中下 编译Java classes
javac com/example/*.java
4 启动Main程序,指定属性以使Main为远程管理公开。
java -Dcom.sun.management.jmxremote.port = 9999 \ -Dcom.sun.management.jmxremote.authenticate = false \ -Dcom.sun.management.jmxremote.ssl = false \ com.example.Main
一个Main等待某些发生的配置产生了。
5 在一台不同机器上的终端窗口中开启JConsole
jconsole新连接窗口盒子显示了,显示了一系列运行的JMX代理,可以本地连接
6 选择远程处理,在远程处理字段中输入以下命令:
hostname:9999在这个地址,hostname是远程机器的名字,运行着Main应用,9999是端口号,是开箱即用JMX连接将被连接的。
7 点击连接
Java vm,Main运行,的当前活动的概览显示了。
8 点击MBeans选项
这个面板显示了所有的MBeans,在远程MBeans服务中当前注册的。
9 在左边面板,点击MBean树的com.example节点
你看见了Hello MBean例子,由Main创建和注册。如果点击Hello,看见MBean树中Hello关联的属性和操作,即使它运行在不同的机器上。
10 关闭JConsole,选择连接-->Exit退出