【发布时间】:2015-05-07 14:34:13
【问题描述】:
我已经尝试了书中的每一个食谱,但今天的事情就不行了......
我正在尝试使用 VisualVM 来分析我在远程服务器中运行的 Java 应用程序,因此我搜索了谷歌并搜索了执行此操作的方法,最终得到了这个解决方案:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9199 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar bin/felix.jar
我猜运行这个会让我运行 JMX,所以我可以看到他在 9199 上运行:
java 21947 root 9u IPv6 1811434 0t0 TCP *:7192 (LISTEN)
java 26376 root 14u IPv6 1844518 0t0 TCP *:9199 (LISTEN)
此外,我可以测试该端口在网络上是否可见:
现在,当我尝试在我的机器上的 VisualVM 中打开连接(也可以 ping jmx 服务器)时,会发生这种情况:
我一定是太笨了,这个世界上的每个人都能让这东西运转,除了我。妈的……
编辑:我安装了 wireshark 以了解引擎盖下发生了什么,所以我看到了这个。一旦我在 VisualVM 中添加远程 IP,wireshark 就会开始检测到这种重复活动:
但是,如果我尝试添加一个新的 JMX 连接并要求他进行连接,wireshark 甚至不会抓取该连接尝试的一个数据包。
在我看来,VisualVM 甚至没有尝试连接,尽管给出了错误消息“无法连接”......!!到底是怎么回事?
【问题讨论】:
-
也许这就是问题 - 确保您的主机 IP 配置正确stackoverflow.com/questions/834581/remote-jmx-connection
-
我之前尝试过 :( 尽管端口对网络可见,但似乎没有任何效果。
-
出于好奇,您的桌面和启用 JMX 的进程之间是否有防火墙?我知道你说 9199 端口是开放的;但是,JMX 需要随机分配且不可配置的第二个端口。当尝试通过防火墙使用 JMX 时,这会导致巨大的问题。可能不是你的问题只是把它扔在那里看:blogs.oracle.com/jmxetc/entry/…
-
我不知道存在任何防火墙。负责网络的系统管理员说中间没有防火墙。 JMX 必须与 DCOM 技术密切相关。他们怎么能把这么简单的事情变成过度设计和无效的解决方案......该死......
标签: java rmi jmx visualvm jvisualvm