Tôi đang thử truy vấn JVM từ xa bằng jps bằng cách sử dụng jstatd, để cuối cùng theo dõi nó bằng VisualVM.jps không thể kết nối với một jstatd từ xa
tôi đã jstatd chạy với chính sách bảo mật sau:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jstatd đang chạy trên một phiên bản 64-bit Linux hộp với một phiên bản 1.6.0_10 HotSpot vm. Lệnh jstatd là:
jstatd -J-Djava.security.policy=jstatd.tools.policy -J-Djava.rmi.server.logCalls=true
Tôi đang cố chạy jps từ máy tính Windows 7. Do hạn chế tường lửa, tôi đường hầm dữ liệu RMI qua một đường hầm SSH để máy tính Windows của tôi như vậy mà các dòng JPS lệnh là:
.\jps.exe -m -l rmi://localhost
Khi tôi chạy JPS, tôi thấy các nỗ lực kết nối lại trong nhật ký jstatd, mà trông như thế này:
Feb 1, 2011 11:50:34 AM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(ja va.lang.String)]
nhưng trên JPS bên tôi nhận được lỗi sau:
Error communicating with remote host: Connection refused to host: 192.168.1.137; nested exception is:
java.net.ConnectException: Connection refused: connect
Dựa trên những nỗ lực kết nối được liệt kê trong bản ghi jstatd, tôi nghĩ JPS thực sự là tái đau máy chủ, nhưng vì một số lý do là bị chặn. Có một số chính sách an ninh tôi đã thiết lập hoặc một số thiết lập khác ở đâu đó tôi có thể thay đổi để tôi có thể nhận được jps để kéo số liệu thống kê từ jstatd từ xa?
Có thể là tôi chưa đặt thuộc tính jmxremote trong ứng dụng tôi muốn theo dõi, như được mô tả ở đây: http://stackoverflow.com/questions/726643/get-heap-dump-từ-một-xa-ứng dụng-in-java-sử dụng-jvisualvm – afrosteve