在工作中,我们有两台装有Windows XP和JDK 1.6.0_07的电脑(暂时不能更新Java),两台都有两个网络接口(NIC),第一台有190.1.XXX.XXX形式的IP (我们称之为IA),第二个是190.2.XXX.XXX(IB)。 " ipconfig / all"为两个NIC带来主机名HOSTNAME,所以" nbtstat / a IA"和" nbtstat / a IB"。从IB到IA不存在ping(我想,从IA到IB都没有,尽管没有检查它)。为了鲁棒性,我们应该确保我们的实际应用程序在两个NIC上使用JMX。这里出现了问题。使用以下内容可以观察到相同的行为:
java -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar <JDK_HOME>/demo/jfc/Java2D/Java2Demo.jar
在第二台PC上带JConsole并使用以下其中一个附加到远程进程:IA:9000或IB:9000或HOSTNAME:9000。他们都工作。但是如果我在第一台PC上运行IA(运行Java2Demo的地方),则根本不可能有附件(既不是IB,也不是HOSTNAME)。 Ping by IB工作,mstsc也是如此(所以IB有连接)。但如果我禁用IB,我会通过IA和HOSTNAME获得附件。
非常感谢。
答案 0 :(得分:0)
您可以使用JMXConnectorServerFactory在同一个jvm上启动多个JMXConnectorServers(在线有很多示例/教程)。您可以公开平台MBeanServer或您自己的自定义MBeanServer。