示例代码如下
代码不难,主要就是用“jmxmp”协议建一个连接器供客户端连接,在我本机调试的时候一直报错(java.net.MalformedURLException: Unsupported protocol: jmxmp); 不支持jmxmp协议,弄了好几天
其原因是因为jmxmp在jmx体系里本身是作为一个可选的协议,jdk1.5里面没有带基于jmxmp协议的连接器,jmxmp是在JSR 160里面定义的,如果要让自己的jmx支持jmxmp的话,需要去sun网站下载jmxremote_optional.jar这个包,然后将这个包放到jdk的ext中。
官网参考示例:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jmx_remote-1.0.1_03-mr-oth-JPR
以监控服务端weblogic为例:
首先使用ps -ef 确认你要监控的weblgoic,修改setDomain.sh文件 添加如下内容: JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=9999" JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false " JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.pwd.file=/opt/bea/jrockit90_150_06/jre/lib/management/jmxremote.password" # JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false" export JAVA_OPTIONS 关于jconsole的访问密码,可在该实例所使用的$JRE_HOME/lib/management/下配置,很重要的两个文件是 jmxremote.password.template #配置访问用户名与密码 jmxremote.access #增加该用户访问权限, 这样配置就好了