簡體   English   中英

JMX和兩個網絡接口

[英]JMX and two network interfaces

在工作中,我們有兩台裝有Windows XP和JDK 1.6.0_07(目前無法進行Java更新)的PC,它們都具有兩個網絡接口(NIC),第一個具有IP的形式為190.1.XXX.XXX(請致電IA),第二個為190.2.XXX.XXX(IB)。 “ ipconfig / all”為兩個NIC都帶來主機名HOSTNAME,“ nbtstat / a IA”和“ nbtstat / a IB”也是如此。 從IB到IA不存在ping(我想,從IA到IB不存在,盡管沒有檢查)。 為了健壯起見,我們應確保我們的實際應用程序可在兩個NIC上均與JMX一起使用。 問題就從這里開始。 在以下情況下可能會觀察到相同的行為:

java -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar <JDK_HOME>/demo/jfc/Java2D/Java2Demo.jar

在第二台PC上,帶上JConsole並使用以下之一連接到遠程進程:IA:9000或IB:9000或HOSTNAME:9000。 他們都工作。 但是,如果我在第一台PC(運行Java2Demo的計算機)上禁用了IA,則根本無法進行任何附件(IB或HOSTNAME都不能)。 IB可以Ping,mstsc也可以(因此IB可以建立連接)。 但是,如果我禁用了IB,則可以同時通過IA和HOSTNAME獲得附件。

  1. 我只是不知道怎么可能,在這種情況下JConsole不會附加在IB上。 AFAIK,如果我們未定義java.rmi.server.hostname,則JMX使用0.0.0.0並在兩個NIC上進行監聽。 如果這與網絡本身有關,請提出建議,咨詢IT部門。
  2. 我們的實際應用程序有一種解決方法:在第一台PC上,它啟動2個獨立的進程,每個進程僅在一個NIC上具有JMX,然后在第三進程中,將來自客戶端的數據與第三個JMX合並。 這三個過程分別從.bat文件開始。 我真的很想改變這一點,在兩個NIC上使用一個JMX進行一個進程。 或者至少可以使用兩個JMX啟動一個進程,如果可能的話,每個NIC一個。 是嗎?

非常感謝你。

您可以使用JMXConnectorServerFactory在同一個jvm上啟動多個JMXConnectorServer(在線上有很多示例/教程)。 您可以公開平台MBeanServer或您自己的自定義MBeanServer。

暫無
暫無

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

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