我有16個Java進程,它們在同一臺機器上運行相同的主要方法和參數。我希望通過JConsole遠程監視這些事件。JMX端口動態分配
像-Dcom.sun.management.jmxremote.port=5000
這樣的硬編碼端口號將不起作用,因爲這些進程使用相同的配置,並且它們不能在同一端口上工作。
對於16個進程中的每一個,JVM是否可以動態地選擇不同的端口?
我有16個Java進程,它們在同一臺機器上運行相同的主要方法和參數。我希望通過JConsole遠程監視這些事件。JMX端口動態分配
像-Dcom.sun.management.jmxremote.port=5000
這樣的硬編碼端口號將不起作用,因爲這些進程使用相同的配置,並且它們不能在同一端口上工作。
對於16個進程中的每一個,JVM是否可以動態地選擇不同的端口?
我不要認爲 oracle jvm支持這樣的東西。唯一可能的工作是使用端口「0」,這使得在一些rmi相關的東西中「動態」端口選擇。
使用RMI連接器可能是您指定代理的URL的方式。
如果你需要它,你可以創建編程RMI註冊表使用:
java.rmi.registry.LocateRegistry.createRegistry(port);
您可能會發現下面的不相關的採樣有用:Connecting Through Firewall Using JMX
如果JVM選擇他們動態的,你怎麼知道什麼端口連接到? – jtahlborn
JVM可以登錄到標準輸出嗎? – Ros
他們是java 6 jvms嗎? – Nicholas