2009年3月3日星期二

VisualVM 监控远程主机

若执行jstatd抛出下面的异常,则是权限不足的问题造成的。

Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses wri
te)
java.security.AccessControlException: access denied (java.util.PropertyPermissio
n java.rmi.server.ignoreSubClasses write)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:323)
at java.security.AccessController.checkPermission(AccessController.java:
546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.System.setProperty(System.java:727)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)

解决办法:在jdk目录/…/security/ java.policy 文件中添加下面的代码

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.AllPermission;

};

保存文件后重新执行jstatd即可。

启动VisualVM后添加 “Remote Host”,输入远程主机的ip地址。

添加成功后,再添加“JMX Connection”,输入远程主机的ip:端口即可。
这里说明一下,JMX Connection的主机端口,指的是被监控的端口,如我监控的是TOMCAT的状况,则端口为TOMCAT的端口。

没有评论:

发表评论