Я пытаюсь удаленно профилировать Java-приложение, которое работает на сервере приложений JBoss 4.2.2.GA, которое использует 32-битную версию Java 1.7.0_03 и, кроме того, упаковано в оболочку службы Tanuki, так что он может быть развернут как служба Windows. Это приложение работает на сервере с 64-разрядной версией Windows Server 2012 R2.
Прежде чем пытаться добавить соединение JMX к этим приложениям, я сделал следующие действия:
- Гарантировал, что порт 1098 не используется другой программой, выдав
netstat
.
- Создано правило для входящего порта 1098 на FW удаленного сервера, применимое ко всем типам сетей.
- Установите следующие параметры в файле wrapper.conf оболочки Tanuki на удаленном сервере:
wrapper.java.additional.3=-Dcom.sun.management.jmxremote
wrapper.java.additional.4=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.5=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.6=-Dcom.sun.management.jmxremote.port=1098
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.rmi.port=1098
wrapper.java.additional.8=-Djava.rmi.server.hostname=xx.yyy.zzz.www
Оболочка Tanuki запускает JVM с указанными выше параметрами.
- Создал исходящее правило для visualVM в ПО моего персонального компьютера (Windows 7 Professional, 64-разрядная версия). Я сомневаюсь в необходимости этого шага, но связь не устанавливается даже без этого правила.
Затем я безуспешно пытался добавить JMX-соединение к xxx.yyy.zzz.www:1098
(я также поставил галочку в опции «Не требовать SSL-соединения»). РЕДАКТИРОВАТЬ: Я жду установления соединения в течение нескольких часов, но кажется, что он зависает во время процесса.
Что здесь можно сделать не так?