情况: 我们有一个带有实例化应用程序的VM,运行Java jre 1.6.37 所有实例在该linux VM上都有一个虚拟IP和一个自己的主机名,我可以看作是eth0:1 eth0:2等。 主机中的所有实例也有条目
现在,我为其中一个实例添加了JMX监控参数到wrapper.conf:
wrapper.java.additional.7=-Dcom.sun.management.jmxremote
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.port=6423
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Dcom.sun.management.jmxremote.authenticate=false
(我们还尝试了另外添加:-Djava.rmi.server.hostname = YOUR_IP YOUR_APP)
问题:
我重新启动了应用程序,并尝试使用带有JDK的Windows PC通过JConsole连接到该应用程序。 连接是不可能的。 当我在机器上telnet和端口6423我可以连接。
分析尝试。
我们还将JDK复制到该linux机器并在那里尝试了相同的结果。 所以我拿了另一个VM,其中同样的应用程序运行实例化虚拟IP等。 在那里可以建立联系。
对于第一个VM,没有防火墙阻止连接或类似的东西。
netstat -an |grep 6423
也告诉我它是LISTEN
我不知道为什么它在一台虚拟机上工作但在另一台虚拟机上没有工作也没有在本地调用jconsole到虚拟IP和端口6423