在單臺計算機上運行多個JVM(單個IP地址)時,將JMX合併到每個JVM中需要單獨的端口。由於原因,我不會進入配置的端口在這個環境中是非常重要的,所以我想在每臺機器上都有一個JMX代理,它能夠訪問每個本地JVM和它們的JMX數據。這與在每個獨立進程中運行代理的本地SNMP守護進程相似。如何爲多個JVM提供單個JMX代理?
然而,短暫的端口是好的,因爲它們超出了我有權訪問的明確配置JMX的端口範圍。
我知道像Oracle Coherence這樣的產品在內部執行此操作,但是有沒有一些通用解決方案可以做到這一點?
是的,這正是我所尋找的。我實際上是獨立發現它的:http://weblogs.java.net/blog/emcmanus/archive/2007/08/combining_casca.html,它似乎運作良好。因爲它使用短暫的和未配置的端口,所以它實際上適用於我。 –
很酷。您還可以使用Attach API查找JVM,激活並連接到您找到的每個JVM中的管理代理(JMX服務器)。這兩個API對你想要做的事情是相當不錯的。警告:如果「搜索者」沒有操作系統權限給另一個JVM發信號,則附加api將不起作用) – Nicholas
是的,附加API非常適合這種情況。另外,它也只適用於Sun JVM。 –