JMX【Java Management Extensions】
概要

管理対象となる情報や操作を「MBean」(Managed Bean)と呼ばれるJavaオブジェクトとして定義する。MBeanはメモリ使用量やスレッド数、接続数といった動的な状態情報を保持し、これらを外部に公開する。キャッシュの消去やサービスの再読み込みなどの操作をMBeanに登録することもできる。
MBeanは「MBeanサーバ」と呼ばれる管理基盤に登録され、外部からはこのサーバを経由してアクセスする。外部の管理ツールはネットワーク経由でMBeanサーバに接続し、登録された情報の参照や設定変更、操作の実行を行う。
実行中のJavaアプリケーションのメモリ消費量やスレッド数の確認、特定機能の設定値の変更など、プログラムを停止せずに内部状態を把握できるため、障害調査や性能分析、運用監視などに利用されている。Javaに付属する「JConsole」や「Java VisualVM」のほか、様々な監視ソフトウェアや運用管理システムからも利用される。
アプリケーション開発者が独自のMBeanを実装し、業務固有の統計情報や制御機能を公開することもできる。これにより、プログラム内部の状態を外部から確認しやすくなり、保守や運用の効率化につながる。アプリケーションサーバの「Apache Tomcat」や「WildFly」など、多くのJava関連製品がJMXによる管理機能を備えている。
JMXは旧サンマイクロシステムズ(Sun Microsystems)社(現Oracle社)が策定し、Java関連仕様の標準化を推進するJCP(Java Community Process)において「JSR-3」および「JSR-160」として標準化された。Java SE 5.0以降は標準ライブラリに組み込まれており、JVM自体の情報もJMXを通じて取得できる。異なるメーカーの管理ツールであってもJMXに対応していれば同じ方法でJavaアプリケーションを管理できる相互運用性が確保されている。