【问题标题】:How to find the default JMX port number?如何找到默认的 JMX 端口号?
【发布时间】:2012-05-07 01:17:52
【问题描述】:

我正在远程 Windows XP 上的 Java 6 VM 上运行 Java 应用程序,我可以在其上运行 jvisualvm.exe 以自动连接到正在运行的应用程序。

现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的 JMX 端口号。我在哪里可以找到它?或者,我必须使用一些 VM 参数重新启动该应用程序以指定端口号吗?

看完How to find the JMX port in a server的问题,我在远程电脑上执行了命令

netstat -apn

但一无所获。

【问题讨论】:

标签: java profiling jmx jvisualvm


【解决方案1】:

现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的 JMX 端口号。我在哪里可以找到它?或者,我必须使用一些 VM 参数重新启动该应用程序以指定端口号吗?

默认情况下,JMX 不会在端口上发布,除非您从该页面指定参数:How to activate JMX...

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=localhost

注意:您需要小心上述某些设置的安全后果。

此外,如果您正在运行,您应该能够访问任何这些系统属性以查看它们是否已设置:

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));
    }
}

根据服务器的连接方式,您可能还需要指定以下参数。作为初始 JMX 连接的一部分,jconsole 连接到 RMI 端口以确定 JMX 服务器正在哪个端口上运行。当您最初启动启用 JMX 的应用程序时,它会查看自己的主机名以确定在初始 RMI 事务中返回的地址。如果您的主机名不在/etc/hosts 中,或者如果它设置为不正确的接口地址,那么您可以使用以下内容覆盖它:

-Djava.rmi.server.hostname=<IP address>

顺便说一句,我的SimpleJMX package 允许您同时定义JMX serverRMI port 或将它们都设置为同一个端口。上面用com.sun.management.jmxremote.port定义的端口其实就是RMI端口。这告诉客户端 JMX 服务器正在哪个端口上运行。

【讨论】:

  • 你错过了-Dcom.sun.management.jmxremote.ssl=false-Djava.rmi.server.hostname=&lt;IP address&gt;
  • 这些都不是必需的@Claudio 至少到 Java 7。
  • 根据我的经验没有。我在 Linux CentOS 6 上运行 Java 7 。我找到了你的答案,但它没有用。幸运的是,您还提供了原始答案的链接并添加了它开始工作的那些标志。不知道实际需要哪个以及为什么。
  • 即使在JVM启动后使用jcmd ManagementAgent.start也可以随时启用它,前提是您有权访问该进程
  • 您可能还需要添加这两个附加参数:-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost
猜你喜欢
  • 2012-11-08
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2018-05-05
相关资源
最近更新 更多