トップQs
タイムライン
チャット
視点
Java Management Extensions
Javaプラットフォーム技術の一つ ウィキペディアから
Remove ads
Java Management Extensions(JMX)は、アプリケーションソフトウェア/システムオブジェクト/デバイス(プリンターなど)/サービス指向ネットワークなどの監視・管理のためのツールを提供するJavaプラットフォーム技術の一種。これらのリソースはManaged Bean (MBean) と呼ばれるオブジェクトで表現される。このAPIの面白い特徴として、クラス群を動的にロードしてインスタンス化できる。
![]() |
JMX 1.0、1.1、1.2はJava Community ProcessのJSR 3で定義された。JMX 2.0はJSR 255として開発されてきたが、2016年で中止された[1]。遠隔管理・監視のためのJMX Remote API 1.0はJSR 160で規定された。WebサービスのためのJMX Remote API拡張は JSR 262で開発中である。
当初、Java EE(現・Jakarta EE)に受け入れられたが、JMXはJava SEのバージョン5.0以降にも組み込まれている。なお「JMX」 はオラクルの商標である。
Remove ads
Managed Bean
Managed Bean(しばしば略してMBeanと呼ぶ)はJavaBeansの一種であり、依存性の注入により作られている。MBeanは特にJava Management Extensions技術で用いられている。しかし、Java EE 6仕様ではMBeanにより詳細な意味を与えている。
MBeanはJava Virtual Machine上で走るリソース(アプリケーションやJakarta EE技術サービス(トランザクション・モニタやJDBCドライバなど))との連絡窓口の役割を果たす。MBeanは関心のある統計数値(パフォーマンス、リソース使用量、問題など)を収集すること(プル)、アプリケーションの設定値を取得または設定すること(プッシュ/プル)、および障害や状態変化などのイベントを通知すること(プッシュ)に使える。
Java EE 6仕様では、MBeanはJavaクラスで実装されたBeanであるとしており、Beanクラスと呼ばれる。他の何らかのJakarta EE 技術仕様(たとえばJavaServer Faces技術仕様)でManaged Beanであると定義されたトップレベルJavaクラス、あるいは次の条件をすべて満たすトップレベルJavaクラスであれば、それはManaged Beanである。
- 非staticな内部クラス(inner class)ではないこと
- 具象クラスであるか、または@Decoratorアノーテーションされていること
- EJBコンポーネント定義アノーテーションでアノーテーションされていないか、またはejb-jar.xml内でEJB beanクラスとして宣言されていること
アノーテーションのような特殊な宣言は、Managed Beanを定義するために必須なものではない。
MBeanはその内部的な(属性の)変化をjavax.management.NotificationEmitter
を実装することによりMBeanServerに通知できる。MBeanの変化に関心のあるアプリケーションは、リスナー (javax.management.NotificationListener
) をMBeanServerに登録する。 JMXはリスナー群が全ての通知を受け取れることは保証しないことに留意されたい。
Remove ads
アーキテクチャ
JMXは以下の3階層アーキテクチャに基づいている:
- Probe レベル(Instrumentationレベルとも呼ぶ) : プローブ (MBean) によりリソースの状態を監視・測定する。
- Agent レベル (MBeanServerとも呼ぶ): JMXの中核である。MBeanとアプリケーションの仲介を行う。
- Remote Management レベル : 遠隔のアプリケーションが Connector や Adaptor を通して MBeanServerにアクセスできるようにする。Connector は各種通信フレームワーク(Java RMI、IIOP、JMS、WS-*など)を使ってMBeanServer APIへの完全なリモートアクセスを提供する。AdaptorはそのAPIを他のプロトコル(SNMPなど)に接続したり、WebベースのGUI(HTML/HTTP、WML/HTTPなど)に接続したりする。
アプリケーションとしては、汎用のコンソール(JConsole や MC4J など)でもよいし、ドメイン固有の(監視)アプリケーションでもよい。
Remove ads
サポート
JMX のサポート状況はベンダーによって様々である:
- Java アプリケーションサーバ(JBoss、JOnAS、WebSphere Application Server、BEA WebLogic Server、Sun Java System Application Serverなど)はJMXをサポートしている。
- システム管理ツールとしてJMXをサポートしているものにはHP OpenViewなどがある。
- MX4JはオープンソースのJMX実装である。
- JManageはオープンソースのJMXコンソールであり、Webインタフェースとコマンド行インタフェースがある。
- MC4JはオープンソースのJMXコンソールである。
脚注
関連項目
参考文献
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads