Java Management Extensions

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

Java Management ExtensionsJMX)は、アプリケーションソフトウェア/システムオブジェクト/デバイス(プリンターなど)/サービス指向ネットワークなどの監視・管理のためのツールを提供するJavaプラットフォーム技術の一種。これらのリソースは MBean(Managed Bean)と呼ばれるオブジェクトで表現される。このAPIの面白い特徴として、クラス群を動的にロードしてインスタンス化できる。

JMX 1.0、1.1、1.2 は Java Community ProcessJSR 3 で定義された。JMX 2.0 が JSR 255 として開発されてきたが、2016年で中止された[1]。遠隔管理・監視のための JMX Remote API 1.0 は JSR 160 で規定された。Webサービスのための JMX Remote API 拡張は JSR 262 で開発中である。

当初、J2EE に受け入れられたが、JMX は Java SE のバージョン5.0以降にも組み込まれている。なお「JMX」 はオラクルの商標である。

Managed Bean[編集]

Managed Bean(しばしば略してMBeanと呼ぶ)は、JavaBeansの一種であり、依存性の注入により作られている。MBeanは特にJava Management Extensions技術で用いられている。しかし、Java EE 6仕様ではmanaged beanにより詳細な意味を与えている。

MBeanはJava Virtual Machine上で走るリソース(アプリケーションやJava EE技術サービス(トランザクション・モニタやJDBCドライバなど))との連絡窓口の役割を果たす。MBeanは、関心のある統計数値(パフォーマンス、リソース使用量、問題など)を収集すること(プル)、アプリケーションの設定値を取得または設定すること(プッシュ/プル)、および障害や状態変化などのイベントを通知すること(プッシュ)に使える。

Java EE 6仕様では、managed beanはJavaクラスで実装されたBeanであるとしており、beanクラスと呼ばれる。他の何らかのJava EE 技術仕様(たとえばJavaServer Faces技術仕様)でmanaged beanであると定義されたトップレベルJavaクラス、あるいは次の条件をすべて満たすトップレベルJavaクラスであれば、それはmanaged beanである。

  1. 非staticな内部クラス(inner class)ではないこと
  2. 具象クラスであるか、または@Decoratorアノーテーションされていること
  3. EJBコンポーネント定義アノーテーションでアノーテーションされていないか、またはejb-jar.xml内でEJB beanクラスとして宣言されていること

アノーテーションのような特殊な宣言は、managed beanを定義するために必須なものではない。

MBeanはその内部的な(属性の)変化をjavax.management.NotificationEmitterを実装することによりMBeanServerに通知できる。MBeanの変化に関心のあるアプリケーションは、リスナー (javax.management.NotificationListener) をMBeanServerに登録する。 JMX はリスナー群が全ての通知を受け取れることは保証しないことに留意されたい。

アーキテクチャ[編集]

JMX は以下の3階層アーキテクチャに基づいている:

  • Probe レベル(Instrumentationレベルとも呼ぶ) : プローブ(MBean)によりリソースの状態を監視・測定する。
  • Agent レベル (MBeanServer とも呼ぶ): JMX の中核である。MBean とアプリケーションの仲介を行う。
  • Remote Management レベル : 遠隔のアプリケーションが Connector や Adaptor を通して MBeanServer にアクセスできるようにする。Connector は各種通信フレームワーク(Java RMIIIOPJMSWS-*など)を使って MBeanServer API への完全なリモートアクセスを提供する。Adaptor はそのAPIを他のプロトコル(SNMPなど)に接続したり、WebベースのGUI(HTML/HTTPWML/HTTPなど)に接続したりする。

アプリケーションとしては、汎用のコンソール(JConsoleMC4J など)でもよいし、ドメイン固有の(監視)アプリケーションでもよい。

サポート[編集]

JMX のサポート状況はベンダーによって様々である:

脚注[編集]

関連項目[編集]

参考文献[編集]

  • J. Steven Perry: Java Management Extensions, O'Reilly, ISBN 0-596-00245-9
  • Marc Fleury, Juha Lindfors: JMX: Managing J2EE with Java Management Extensions, Sams Publishing, ISBN 0-672-32288-9
  • Jeff Hanson: Connecting JMX Clients and Servers: Understanding the Java Management Extensions, APress L. P., ISBN 1-59059-101-1
  • Benjamin G Sullins, Mark B Whipple : JMX in Action: You will also get your first JMX application up and running, Manning Publications Co. 2002, ISBN 1-930110-56-1

外部リンク[編集]