簡體   English   中英

如何找到默認的 JMX 端口號?

[英]How to find the default JMX port number?

我在遠程 Windows XP 上的 Java 6 VM 上運行 Java 應用程序,我可以在其上運行 jvisualvm.exe 以自動連接到正在運行的應用程序。

現在我需要從本地計算機連接該應用程序,但我不知道遠程計算機的 JMX 端口號。 我在哪里可以找到它? 或者,我是否必須使用一些 VM 參數重新啟動該應用程序以指定端口號?

在閱讀了如何在服務器中查找 JMX 端口的問題后,我在遠程計算機上執行了命令

netstat -apn

但一無所獲。

現在我需要從本地計算機連接該應用程序,但我不知道遠程計算機的 JMX 端口號。 我在哪里可以找到它? 或者,我是否必須使用一些 VM 參數重新啟動該應用程序以指定端口號?

默認情況下,JMX 不會在端口上發布,除非您從此頁面指定參數: 如何激活 JMX...

-Dcom.sun.management.jmxremote # no longer required for JDK6
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false # careful with security implications
-Dcom.sun.management.jmxremote.authenticate=false # careful with security implications

如果您正在運行,您應該能夠訪問任何這些系統屬性以查看它們是否已設置:

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 包允許您定義JMX 服務器RMI 端口或將它們設置為相同的端口。 上面用com.sun.management.jmxremote.port定義的端口其實就是RMI端口。 這告訴客戶端 JMX 服務器正在運行的端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM