Не удается запустить jstatd.exe для удаленного мониторинга приложений?
Всем хорошего дня.
Я хочу использовать jstatd для мониторинга JVM, GC, Heap и некоторых важных метрик некоторых приложений, работающих на удаленных машинах.
Когда я попытался выполнить команду jstatd.exe
Из папки bin пути Java через командную строку я получаю следующую ошибку:
C:\Program Files (x86)\Java\jdk1.6.0_38\bin>jstatd.exe
Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:374)
at java.security.AccessController.checkPermission(AccessController.java:
549)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.System.setProperty(System.java:725)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:122).
Когда мы проверили эту ошибку в Интернете, мы узнали, что нам нужно добавить некоторый файл безопасности, который упоминается в ссылке, не может запустить jstatd из-за ошибки разрешения. Но все равно мы получаем ту же ошибку.
Может ли кто-нибудь помочь нам в этом.
Заранее спасибо.
1 ответ
Проверьте версию Java с помощью "java -version" с помощью cmd. В моем случае моя версия java была 1.7, поэтому она не работала. Если это проблема, обновите файл политики, выбрав нужную версию, как показано ниже:
grant codebase "file:C:/Program Files/Java/jdk1.7.0_51/lib/tools.jar" {
permission java.security.AllPermission;
};
Теперь запустите jstatd как этот ниже
C:\Program Files\Java\jdk1.7.0_51\bin>jstatd -p 1234 J-Djava.security.policy=D:
\jstatd.all.policy
Надеюсь, это сработает!
Обратите внимание: попробуйте подключить удаленный хост VisualVM к этому порту [1234], иначе он не будет работать.
Редактировать:
Для JDK 1,6
файл политики:
grant codebase "file:C:/Program Files/Java/jdk1.6.0_45/lib/tools.jar" {
permission java.security.AllPermission;
};
команда jstatd:
C:\Program Files\Java\jdk1.6.0_45\bin>jstatd J-Djava.security.policy=D:/jstatd.
all.policy -p 1234