使用visualvm远程jmx连接失败问题

本文介绍了解决VisualVM通过JMX连接线上Tomcat失败的问题。通过对比测试环境和线上环境的配置差异,发现缺少-Djava.rmi.server.hostname参数设置导致连接失败。添加该参数并指定正确的IP地址后,成功实现VisualVM对Tomcat的远程监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用visualvm jmx方式连接线上tomcat查看线程使用情况,发现无法连接,但是连接测试环境的tomcat是没有问题的。

jmx配置如下:

JAVA_OPTS="$JAVA_OPTS  -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=20002 -Dcom.sun.management.jmxremote"

而线上环境jstatd能够使用jmx的方式连接,检查jvm参数发现,jstatd的参数中多了

-Djava.rmi.server.hostname=ip地址

将tomcat启动参数改为

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=ip地址 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=20002 -Dcom.sun.management.jmxremote"

使用jmx连接成功。

##测试hostname命令

在测试环境中,使用hostname -i命令,成功显示在当前环境中ip。

而在线上环境中,使用hostname -i命令,显示为127.0.0.1。

查看oracle文档中描述

java.rmi.server.hostname

The value of this property represents the host name string that should be associated with remote stubs for locally created remote objects, in order to allow clients to invoke methods on the remote object. The default value of this property is the IP address of the local host, in "dotted-quad" format.

http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/javarmiproperties.html

转载于:https://my.oschina.net/superwen/blog/834028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值