我有一个在远程计算机上运行的 Java 进程,该进程设置了一些 mbean。我也有jstatd
以与 Java 进程相同的用户身份在该机器上运行。 (mbean 可以通过编程方式设置或使用-Dcom.sun.management.jmxremote...
等等,这似乎没有什么区别)。
VisualVM 能够制作jstatd
与进程的连接,它会自动发现该进程,但这意味着我无法访问 mbean 或 CPU 历史图表等。或者,我可以创建一个显式 JMX 连接,这为我提供了常用的有用工具,但我希望应用程序在启动时分配一个随机 JMX 端口,此配置不能是静态的。
有什么方法可以让 VisualVM 通过 JMX 自动连接到我的进程吗?这需要它自动发现 JMX 端口,但我想jstatd
可以做到这一点。有谁知道有任何 VisualVM 插件可以自动执行此操作吗?
不幸的是,无法将随机 JMX 端口分配给远程应用程序。您可以使用以下命令启动远程应用程序
-Dcom.sun.management.jmxremote.port=<fixed port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
VisualVM 将能够通过以下方式读取此配置Jvmstat http://www.oracle.com/technetwork/java/jvmstat-142257.html(由 jstatd 提供)并自动打开与远程应用程序的 JMX 连接。因此,您需要为远程应用程序分配固定端口。一旦你拥有它,一切都会正常工作,VisualVM 将通过 JMX 自动连接到你的应用程序(事实上,它将结合来自两者的数据)Jvmstat http://www.oracle.com/technetwork/java/jvmstat-142257.html和 JMX)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)