Соединение 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, который вы можете установить на работающий сервер.