Назад | Перейти на главную страницу

Не удается подключиться к remoteJMX, но удается подключиться к Telnet на том же порту после установки переменных среды Dcom.sun.management.jmxremote?

На данный момент я довольно озадачен, поскольку нам необходимо подключиться через remotejxm для мониторинга JDK на сервере через приложение для мониторинга, но при попытке подключения мне постоянно говорят, что он не запущен. Мы проверили порты, и порт 8999 открыт, но он не позволяет мне подключиться через remotejxm, но я могу подключиться через telnet на тот же порт, у меня параметры Java установлены следующим образом (мы запускаем Tomcat на Windows server 2003) . Любые советы о том, что еще я мог бы изучить, были бы очень признательны

-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-javaagent:C:\Program Files\Apache Software Foundation\Tomcat 6.0\AppManager\WebTransactionAgent.jar
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-XX:+PrintTenuringDistribution
-Xloggc:C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\heap.log
-XX:MaxPermSize=512m
-XX:+UseConcMarkSweepGC
-XX:NewSize=1024m
-Dfile.encoding=UTF-8
-Xdebug
-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

Мы столкнулись с аналогичной проблемой, и в итоге она была связана с брандмауэром, потому что JMX RMI фактически использует два порта, один из которых вы указываете, а другой - случайным образом привязанный к серверу. Из:

http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx

Как вы, возможно, уже знаете, если вы столкнулись с этой проблемой, соединитель JMX RMI открывает два порта: один предназначен для реестра RMI, и это порт, который вы обычно указываете с помощью -Dcom.sun.management.jmxremote.port = свойство. Другой порт используется для экспорта объектов подключения JMX RMI. Этот второй порт обычно динамически выделяется случайным образом. На самом деле вам не нужно знать этот номер порта, чтобы подключиться к JMX-агенту: единственный номер порта, который вам нужно знать для подключения, - это номер порта реестра RMI, из которого можно получить объекты подключения.

Это может вызвать проблемы, если у вас где-то установлен ограничительный брандмауэр.