鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > java > >

Jconsole 不能连接远程服务的问题

来源:互联网 作者:佚名 时间:2012-11-22 14:56
使用JCONSOLE监控远程LINUX运行的JAVA进程,总是在报连接失败的错误。 1)被监控的服务器端增加启动参数 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 2)本机上使

使用JCONSOLE监控远程LINUX运行的JAVA进程,总是在报连接失败的错误。
1)被监控的服务器端增加启动参数
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
2)本机上使用jconsole连接远程的8999端口
报连接失败,检查网络情况,8999端口有在监听等待,本地机器能够连接上对端机器的8999端口。切换了一台linux机器,情况依旧。

3)去网上找了一把,发现一个网友一年多前也在为此苦恼,所不同的是网友用的是JDK1.5,我用的是JDK 1.6。该网文链接如下:

4)尝试抓包分析,发现是RMI的二进制协议,网站空间,无法解读,报文中有127.0.0.1等字眼,从关键字判断是RMI下载的STUB文件。

5)继续查找,发现了一篇有价值的文章谈到这个问题,是服务器端解释机器名的问题,如果服务器端hostname -i被定向到127.0.0.1则会出现连接失败的问题。修改/etc/hosts文件,服务器空间,使hostname -i 指向正确的IP,香港服务器租用,JConsole终于可以正常连接。
这篇文章链接如下:

?bug_id=6209663

6)可能的问题原因分析:JCONSOLE连接上监控的进程,从监控进程下载了RMI远程调用的STUB文件?该STUB访问服务器的进程,
服务器端的地址可能是通过hostname -i类似机制获得。

网友评论
<