原文地址:http://www.51testing.com/html/87/395287-237033.html


  在测试服务端程序时,有时候需要通过JDK自带的工具Jconsole查看远程JVM及服务程序的状态。

 

  最近在连接某台服务器查看某个服务的状态时,本机JDK环境jdk1.6.0_20,服务器系统为Linux。在Jconsole远程连接输入服务端的IP及jmxremote配置的JMX_PORT。但是确定后,连接失败。通过Baidu找到,原因是因为:

 

  服务器端解释机器名的问题,如果服务器端hostname -i被定向到127.0.0.1则会出现连接失败的问题。修改/etc/hosts文件,使hostname -i指向正确的IP,JConsole终于可以正常连接。

 

  通过Root登陆远程服务器,修改/etc/hosts中,将127.0.0.1改为该服务器对应的IP,再在Jconsole输入IP:MX_PORT。成功登陆远程服务端

 

  该Bug具体描述:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6209663

 

  注:以上方法仅针对所描述情况


====

  该问题已经补充在《Frequently Asked Questions: JConsole and Remote Management》的第5点I am having problem using JConsole to connect to a JVM running on Linux. Connecting to JVM running on Windows and Solaris works fine.

  http://docs.oracle.com/javase/1.5.0/docs/guide/management/faq.html


wKiom1cLVw_B9tddAABHTmV2DoU109.png