2011-08-18 117 views
4

我有16個Java進程,它們在同一臺機器上運行相同的主要方法和參數。我希望通過JConsole遠程監視這些事件。JMX端口動態分配

-Dcom.sun.management.jmxremote.port=5000這樣的硬編碼端口號將不起作用,因爲這些進程使用相同的配置,並且它們不能在同一端口上工作。

對於16個進程中的每一個,JVM是否可以動態地選擇不同的端口?

+1

如果JVM選擇他們動態的,你怎麼知道什麼端口連接到? – jtahlborn

+0

JVM可以登錄到標準輸出嗎? – Ros

+0

他們是java 6 jvms嗎? – Nicholas

回答

0

我不要認爲 oracle jvm支持這樣的東西。唯一可能的工作是使用端口「0」,這使得在一些rmi相關的東西中「動態」端口選擇。

1

使用RMI連接器可能是您指定代理的URL的方式。

如果你需要它,你可以創建編程RMI註冊表使用:

java.rmi.registry.LocateRegistry.createRegistry(port); 

您可能會發現下面的不相關的採樣有用:Connecting Through Firewall Using JMX