Можно подключить JConsole удаленно, но не VisualVM

Я пытаюсь профилировать удаленный Tomcat, и я могу подключиться к нему с помощью JConsole, но не с VisualVM. Настроил прокси по ssh:

ssh -luser -D 9898 -Nf example.com

И с этими конфигурациями в tomcat7.conf:

-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=3333 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=example.com

С этими параметрами JConsole работает отлично, а VisualVM - нет. Что мне не хватает?


person borjadp    schedule 16.06.2014    source источник


Ответы (1)


На год позже, но на тот случай, если кому-то это пригодится. Это не было проблемой с Java 7, но я начал замечать это с Java 8. С тех пор, как я использую две следующие команды для успешного подключения как к jconsole, так и к jvisualvm:

jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=<SOCKS_PORT> service:jmx:rmi:///jndi/rmi://<REMOTE_HOST:JMX_PORT>/jmxrmi
jvisualvm -J-DsocksProxyHost=localhost -J-DsocksProxyPort=<SOCKS_PORT> --openjmx <REMOTE_HOST>

В вашем случае SOCKS_PORT будет 9898, а JMX_PORT будет 3333.

person bsravanin    schedule 03.08.2015