Tomcat 5.5 Мониторинг с JDK 1.4 в Windows - PullRequest
1 голос
/ 12 августа 2010

В соответствии с этой документацией http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote должна быть возможность удаленного мониторинга сервера Tomcat 5.5, работающего на JDK 1.4, но после поиска по всему Интернету и пробуя несколько ОС, я все равно не дальше, чем в первый день.Мои результаты пока таковы.Настройка Tomcat на стандартный

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=%my.jmx.port% 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost

будет работать без проблем на JDK 1.5 и выше.Отладка в Tomcat дает мне доступ к MBeanServer, но я не могу подключиться к нему извне.Согласно информации из Википедии http://en.wikipedia.org/wiki/Java_Management_Extensions мне просто нужен работающий соединитель, и я не знаю, как заставить это работать.

Попытка настроить HTTP-адаптер в соответствии с

<Connector port="${AJP.PORT}" 
            handler.list="mx" 
            mx.enabled="true" 
            mx.httpHost="${JMX.HOST}"
            mx.httpPort="${JMX.PORT}"
            protocol="AJP/1.3" />

не имеет никакого эффекта вообще.Когда я отлаживал, казалось, что атрибуты handler.list и mx. * Просто игнорируются.Я знаю, что должен просто использовать JDK 1.5, и мои опасения исчезнут, но у нас есть большая база устаревших версий JDK 1.4, и было бы здорово, если бы мы могли использовать мониторинг JMX.В конце концов я хочу использовать JConsole или JVisualVM для подключения к Tomcat, и, насколько я понял, URL-адрес подключения будет выглядеть так:

service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi

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

Ответы [ 3 ]

1 голос
/ 22 ноября 2010

Поддержка JMX была добавлена ​​в Java с версии 1.5 (JDK5). Чтобы использовать его с JDK 1.4, необходимо загрузить расширение и установить http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp. Я не использовал его, но это может быть отправной точкой (от http://java.sun.com/developer/technicalArticles/J2SE/jmx.html)

Внедрение технологии JMX

Платформа Java 2, Standard Edition 5.0 (J2SE 5.0) поддерживает JMX 1.2 и JMX Remote API 1.0, которая теперь является официальной эталонной реализацией JMX (RI). Для разработчиков, использующих J2SE 1.4, JMX RI также доступен от Sun Microsystems и может быть загружен бесплатно.

Для подключения извне попробуйте убрать линию

-Djava.rmi.server.hostname = локальный

Если вы используете Linux, сделайте так, как сказал @vinothkr для решения проблемы localhost при удаленном соединении JMX (файл / etc / hosts, замените 127.0.0.1 на IP-адрес сервера в строке, где указано имя хоста сервера). Я думаю, что для Windows применимо то же самое.

Что касается разъема, это разъем на вашем удаленном порту jmx в документации, которую вы прочитали. Соединитель, который вы настроили на server.xml по протоколу AJP / 1.3, не связан. Это касается связи между Apache HTTPd (или другим веб-сервером / балансировщиком нагрузки) и Tomcat.

0 голосов
/ 22 ноября 2010

Если вам удалось подключиться к JVM, работающему на компьютерах с Windows.Тогда проблема в вашем hosts.conf

Попробуйте hostname -i, если он сообщает 127.0.0.1, тогда есть проблема

Проверьте этот FAQ № 5. http://download.oracle.com/javase/1.5.0/docs/guide/management/faq.html

В качестве JMX используется перенаправление портов.Это вызывает проблему

0 голосов
/ 12 августа 2010

удаленный сервер определен?

-Djava.rmi.server.hostname=localhost"
...