Я перепробовала все рецепты из книги, но сегодня ничего не получится ...
Я пытаюсь использовать VisualVM для профилирования моего Java-приложения, работающего на удаленном сервере, поэтому я искал в Google способы сделать это, и в итоге я получил следующее решение:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9199 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar bin/felix.jar
Я думаю, запуск этого заставит меня запустить JMX, поэтому я могу увидеть, как он работает на 9199:
java 21947 root 9u IPv6 1811434 0t0 TCP *:7192 (LISTEN)
java 26376 root 14u IPv6 1844518 0t0 TCP *:9199 (LISTEN)
Более того, я могу проверить, что порт виден в сети:
Теперь, когда я пытаюсь открыть соединение в VisualVM на моем компьютере (который также может пинговать сервер jmx), происходит следующее:
Я, должно быть, такой тупой, что все в этом мире могли запустить эту штуку, кроме меня. Черт...
РЕДАКТИРОВАТЬ: Я установил wirehark, чтобы знать, что происходит под капотом, и увидел это. Как только я добавляю удаленный IP-адрес в VisualVM, wirehark начинает обнаруживать эту повторяющуюся активность:
Однако, если я попытаюсь добавить новое JMX-соединение и попрошу его подключиться, Wireshark не захватит ни одного пакета этой попытки подключения.
Мне кажется, что VisualVM даже не пытается подключиться, несмотря на то, что выдает сообщение об ошибке «Не удается подключиться» ... !! Что, черт возьми, происходит?