Соединение JMX с использованием JMXMP зависает

Я пытаюсь установить JMX-соединение с моим экземпляром tomcat из Java-клиента, используя приведенный ниже код.

JMXServiceURL url = new MXServiceURL("service:jmx:jmxmp://<host>:<port>"); //line 1
JMXConnector jmxc = JMXConnectorFactory.connect(url);  //line 2
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();

куда

хост = удаленный компьютер, на котором работает мой экземпляр tomcat

порт = jmx включен порт. В моем коде это 9840

Мой файл tomcat setenv.sh отредактирован с использованием следующих конфигураций, чтобы включить JMX

export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9840 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

Но когда я запускаю программу, она зависает в строке 2.

Если я изменю строку 1 как JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi") чтобы использовать RMI вместо JMXMP, он выполняется, и я могу получить доступ к различным компонентам MX.

Так что я не могу подключиться, если я использую протокол JMXMP. Я могу подключиться, если я использую протокол RMI. Что могло пойти не так, когда я использую JMXMP?

Спасибо, нкс

1 ответ

Чтобы использовать клиент JMXMP, вам нужно запустить JMXMP Connector Server. Он не может подключиться к серверу соединителя RMI [по умолчанию].

Также посмотрите этот вопрос для агента JMXMP, который вы можете установить на работающий сервер.

Другие вопросы по тегам