JMX/RMI 的连接端口问题

JMX/RMI 的连接端口问题

问题

有个在某个特殊网络区域的tomcat的jmx链接不通, 用vistualvm链接不上。该区域防火墙限定了端口范围。
于是按照tomcat的文档增加了jdk jmx port的配置。

如下:

    -Dcom.sun.management.jmxremote.port=6061
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access

然后仍然不通。

这时可以看到

解决:

JMX/RMI

有些调用实际上是rmi调用,因此两个端口都要打通

配置修改为

    -Dcom.sun.management.jmxremote.port=6061
-Dcom.sun.management.jmxremote.rmi.port=6061
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access

通过netstat 可以看到

     tcp6       0      0 :::6061                 :::*                    LISTEN      
tcp6 0 0 xxxxx:6061 xxxx:59838 ESTABLISHED
tcp6 0 0 xxxxx:6061 xxxx:58744 ESTABLISHED

参考:
http://stackoverflow.com/questions/20884353/why-java-opens-3-ports-when-jmx-is-configured