cha*_*nce 48 java profiling jmx jvisualvm
我正在远程Windows XP上的Java 6 VM上运行Java应用程序,我可以在其上运行jvisualvm.exe以自动连接到正在运行的应用程序.
现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的JMX端口号.我在哪里可以找到它?或者,我是否必须使用某些VM参数重新启动该应用程序以指定端口号?
在阅读了如何在服务器中找到JMX端口的问题后,我在远程计算机上执行了该命令
netstat -apn
Run Code Online (Sandbox Code Playgroud)
但一无所获.
Gra*_*ray 59
现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的JMX端口号.我在哪里可以找到它?或者,我是否必须使用某些VM参数重新启动该应用程序以指定端口号?
默认情况下,除非您从此页面指定参数,否则JMX不会在端口上发布:如何激活JMX ...
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)
如果您正在运行,您应该能够访问任何这些系统属性以查看它们是否已设置:
if (System.getProperty("com.sun.management.jmxremote") == null) {
System.out.println("JMX remote is disabled");
} else [
String portString = System.getProperty("com.sun.management.jmxremote.port");
if (portString != null) {
System.out.println("JMX running on port "
+ Integer.parseInt(portString));
}
}
Run Code Online (Sandbox Code Playgroud)
根据服务器的连接方式,您可能还需要指定以下参数.作为初始JMX连接的一部分,jconsole连接到RMI端口以确定运行JMX服务器的端口.当您最初启动启用JMX的应用程序时,它会查找自己的主机名,以确定在该初始RMI事务中返回的地址.如果您的主机名不在/etc/hosts
或者设置为错误的接口地址,则可以使用以下命令覆盖它:
-Djava.rmi.server.hostname=<IP address>
Run Code Online (Sandbox Code Playgroud)
另外,我的SimpleJMX包允许您定义JMX服务器和RMI端口,或者将它们都设置为同一端口.定义的上述端口com.sun.management.jmxremote.port
实际上是RMI端口.这告诉客户端JMX服务器正在运行什么端口.
归档时间: |
|
查看次数: |
170432 次 |
最近记录: |