使用JMXMP的JMX连接挂起

时间:2016-04-21 12:44:55

标签: jmx jmxmp

我尝试使用以下代码从java客户端建立与tomcat实例的JMX连接。

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

哪里

  

host =运行我的tomcat实例的远程机器

     

port = 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 bean。

所以,如果我使用JMXMP协议,我就无法连接。如果我使用RMI协议,我能够连接。使用JMXMP时可能出现什么问题?

谢谢, NKS

1 个答案:

答案 0 :(得分:3)

要使用JMXMP客户端,您需要运行JMXMP Connector Server。它无法连接到[默认] RMI连接器服务器。

另请参阅此question以获取可安装到正在运行的服务器中的JMXMP代理。