[解決済み] JMXのURLについて
質問
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'に設定します。
注意してください。
-
は
RMI レジストリ
がどこにあるかを JMX クライアントに伝えます。
JMX RMI サーバーポート
情報は、キー
jmxrmi
. - は RMI レジストリポート は、JVM 起動時にシステムプロパティを通じて設定されるため、一般に知られています。
- は 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
さらに良いことに、これも有効です
参考文献
- http://download.oracle.com/javase/6/docs/api/javax/management/remote/rmi/package-summary.html
- http://download.oracle.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html
- http://mx4j.sourceforge.net/docs/ch03s04.html
- http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevg
- http://www.rfc-editor.org/rfc/rfc2609.txt
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
javaの非静的メソッドを静的に参照することができない
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
javaの非静的メソッドを静的に参照することができない
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Uncaught ReferenceError: は定義されていません。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
java send https request prompt java.security.cert.について。
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ