标签(空格分隔): jdk visualvm
refer:
http://blog.markshead.com/1129/connecting-visual-vm-to-tomcat-7
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstatd.html
其实配置主要包含两个方面:
1. jstatd 的启动
2. Tomcat的配置
1. tomcat 配置:
在 /bin/catalina.sh 中配置:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.158.204"
jmx 的参数具体如下
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=8090 // 端口
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.158.204
一般连接的时候,会遇到以下问题:
造成以上问题的原因会两个:
1.tomcat中的catalina.sh的配置不对,即少赔了以下参数
-Djava.rmi.server.hostname=192.168.158.204
2.jstatd在 remote machine上没有启动.
如何启动 jstatd
jstatd的端口是默认是 1099,可以检查该端口是否已经有进程在使用.
1.创建一个 policy文件:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
2.使用命令启动 ( jstatd 在java_home的bin下面)
./jstatd -J-Djava.security.policy=../security/jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.158.204 &
注意:
-J-Djava.rmi.server.hostname: 该IP是 jstatd 所在的机器的IP,即remote machine的IP;
如果没有这个IP,同样也是会报" Cannot connect to xxxx:port using ..." 的错误的
启动好之后,再次连接,就会自动连接上了.