无法连接到remoteJMX,但可以在设置Dcom.sun.management.jmxremote环境variables后在同一端口上Telnet?

在这一点上我感到困惑,因为我们需要通过remotejxm连接来通过监视应用程序来监视服务器上的JDK,但是在尝试连接时却一再被告知它没有运行。 我们已经检查了端口和8999端口是开放的,但它不让我通过remotejxm连接,但我可以通过在同一端口上的telnet进行连接,我有Java选项设置如下(我们在Windows Server 2003上运行Tomcat) 。 任何意见,我可以看看什么,将不胜感激

-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0 -javaagent:C:\Program Files\Apache Software Foundation\Tomcat 6.0\AppManager\WebTransactionAgent.jar -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:C:\Program Files\Apache Software Foundation\Tomcat 6.0\logs\heap.log -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:NewSize=1024m -Dfile.encoding=UTF-8 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

我们遇到了一个类似的问题,最终导致与防火墙相关,因为JMX RMI实际上使用了两个端口,一个是您指定的端口,另一个是服务器随机绑定的端口。 从:

http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx

由于您可能已经知道您是否遇到了这个问题,因此JMX RMI连接器会打开两个端口:一个用于RMIregistry,它是您通常提供的端口-Dcom.sun.management.jmxremote.port =属性。 另一个端口用于导出JMX RMI连接对象。 第二个端口通常是随机dynamic分配的。 事实上,您不需要知道此端口号就可以连接到JMX代理:您需要知道连接的唯一端口号是从中获取连接对象的RMIregistry端口号。

这可能会导致问题,如果你有一个限制性的防火墙的地方。