1. ホーム
  2. java

[解決済み] JMXのURLについて

2023-04-19 22:28:20

質問

JMXのサービスURLを理解しようとしています。

service:jmx:rmi://192.168.30.10:1234/jndi/rmi://192.168.30.10:2344/jmxrmi

誰かがこれを理解するのを助けることができれば、それは素晴らしいことです。

ありがとうございます。

どのように解決するのですか?

この質問については、以前書いた回答を再利用します。 Java6でjconsole経由でTomcatのMBeanServerに接続できない。

完全ではありませんが、参考になるかもしれません。

JMXサーバー(別名 'JMX Agent' 別名 '接続したいJVM')が 'TARGET MACHINE' 上で RMI レジストリポート を 'RMI REGISTRY PORT' に、そして JMX RMI サーバーポート を'JMX RMI SERVER PORT'に設定します。

注意してください。

  1. RMI レジストリ がどこにあるかを JMX クライアントに伝えます。 JMX RMI サーバーポート 情報は、キー jmxrmi .
  2. RMI レジストリポート は、JVM 起動時にシステムプロパティを通じて設定されるため、一般に知られています。
  3. JMX RMI サーバーポート は一般に ではない は、JVM がランダムにそれを選択するため、知られています (他の予防措置がとられていない場合)。

次のURIは、接続に成功します(テスト済み)。

service:jmx:rmi://<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

これは厄介そうだ。切り分けてみよう。

このURIはRFC2609 "Service Location Protocol URL"です(まあ、本当はURIなんですけどね)。

で構成されています。

  • service - 定数
  • jmx:rmi - は サービスタイプ から構成される。 抽象型 jmx そして URLスキーム rmi
  • その他 樹液 (サービスアクセスプロトコル仕様)

樹液 は分解されます。

  • //<TARGET_MACHINE>:<JMX_RMI_SERVER_PORT> - ipsite
  • /jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi - URL部分

よく知ったJMXクライアントは、JMX-over-RMI交換を行うために"ipsite"に接続します。我慢してください...。

URL 部分 が分解されます。

  • /jndi/ - これは、JMXクライアントに、次の場所でルックアップ情報を取得できることを伝えているようです。
  • rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi - JMX RMI サーバーに関する情報は、RMI レジストリのルックアップ キーの下にある jmxrmi

これはやや馬車馬のようなものです。 RMI レジストリ で指定された 後者 の部分から与えられる。

頭をひねった後、直感的に、やってみましょう。

service:jmx:rmi://<TARGET_MACHINE>/jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

はい、これでうまくいきました! JMX RMI サーバーポートがレジストリからうまく取得されます。考え直してみると ターゲット マシン もレジストリから取得する必要があります。

service:jmx:rmi:///jndi/rmi://<TARGET_MACHINE>:<RMI_REGISTRY_PORT>/jmxrmi

さらに良いことに、これも有効です

参考文献

  1. http://download.oracle.com/javase/6/docs/api/javax/management/remote/rmi/package-summary.html
  2. http://download.oracle.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html
  3. http://mx4j.sourceforge.net/docs/ch03s04.html
  4. http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevg
  5. http://www.rfc-editor.org/rfc/rfc2609.txt