第1章
JMXテクノロジの紹介
注: JMXテクノロジについてすでに理解している場合は、バージョン情報について付録A「JMXテクノロジのバージョン」を参照してください。
JMXテクノロジでは、アプリケーション、デバイス、サービスなどのリソースを管理するための簡単で標準的な方法が用意されています。JMXテクノロジは動的であるため、リソースが作成、インストール、および実装されると、そのリソースをモニターおよび管理するために使用できます。JMXテクノロジを使用して、Java仮想マシン (Java VM)をモニターおよび管理することもできます。
JMXテクノロジは、密接に関連する2つのJava Specification Requests (JSR)として、Java Community Process (JCP)によって開発されました。
- JSR 3, Java Management Extensions Instrumentation and Agent Specification
- JSR 160, Java Management Extensions Remote API
どちらのJSRもJavadocツールで生成されたAPIドキュメントによって定義されています。また、どちらも仕様ドキュメントがPDFでも提供されています。
名前が示すとおり、JMX Remote APIではリモート機能がJMX仕様に追加されており、アプリケーション、システム、およびネットワークをリモートでモニターおよび管理できます。このドキュメントでは、「JMXテクノロジ」という語はJMX仕様とJMX Remote APIの両方を指しています。
この章では、次のセクションでJMXテクノロジについて紹介します。
JMXテクノロジについて
JMX仕様では、アーキテクチャ、設計パターン、およびAPIについてJavaプログラミング言語で定義しています。また、アプリケーションとネットワークの管理およびモニタリングのサービスについても定義しています。
JMXテクノロジを使用して、リソースは、Managed Bean、つまりMBeanと呼ばれる1つまたは複数のJavaオブジェクトによって計測されます。これらのMBeanは、MBeanサーバーと呼ばれるコアの管理対象オブジェクト・サーバーに登録されます。MBeanサーバーは管理エージェントとして動作し、Javaプログラミング言語を使用できるほとんどのデバイス上で実行できます。
仕様では、仕様に準拠して計測されたリソースを管理するために使用するJMXエージェントを定義しています。JMXエージェントは、MBeanが登録されているMBeanサーバーと、MBeanを処理する一連のサービスで構成されます。JMXエージェントは、この方法で直接リソースを制御し、リモート管理アプリケーションで利用できるようにします。
リソースが計測される方法は、管理インフラストラクチャとはまったく無関係です。そのためリソースは、その管理アプリケーションが実装されている方法に関係なく管理可能です。
JMXテクノロジでは、標準コネクタ(JMXコネクタ)を定義しています。JMXコネクタを使用すると、リモート管理アプリケーションからJMXエージェントにアクセスできます。別のプロトコルを使用するJMXコネクタでも、同じ管理インタフェースを用意しています。そのため管理アプリケーションでは、使用している通信プロトコルに関係なく、リソースを透過的に管理できます。またJMXエージェントは、JMX仕様に準拠していないがJMXエージェントをサポートしているシステムやアプリケーションでも使用できます。
JMXテクノロジを使用する理由
Javaコードの計測、有用なJavaエージェントの作成、分散管理ミドルウェアやマネージャの実装、既存の管理およびモニタリング・システムに対するソリューションのスムーズな統合など、JMXテクノロジでは、あらゆる業界のJava開発者に柔軟性の高い実現方法を提供します。
- JMXテクノロジを使用すると、最小限の投資でJavaアプリケーションを管理できます。JMXテクノロジエージェントは、Javaテクノロジ対応のほとんどのデバイスで実行できるため、Javaアプリケーションの設計に大きな影響を与えることなく管理できます。Javaアプリケーションでは、管理オブジェクト・サーバーを埋め込み、その機能の一部をオブジェクト・サーバーに登録された1つまたはいくつかの管理対象Bean (MBean)として利用できるようにすることのみが必要です。
- JMXテクノロジでは、Javaテクノロジベースのアプリケーション、システム、およびネットワークを管理する標準的な方法を用意しています。たとえば、Java Platform, Enterprise Edition (Java EE) 5アプリケーション・サーバーは、JMXアーキテクチャに準拠しており、それゆえにJMXテクノロジを使用して管理できます。
- JMXテクノロジを使用すれば、Java VMのアウトオブボックスの管理ができます。Java仮想マシン(Java VM)は、JMXテクノロジを使用して高度に計測されています。JMXエージェントを起動して、簡単に組込みのJava VMインストゥルメンテーションにアクセスできます。これによって、Java VMのリモートによるモニターと管理ができます。
- JMXテクノロジでは、スケーラブルで動的な管理アーキテクチャを用意しています。それぞれのJMXエージェント・サービスは、要件に応じて管理エージェントにプラグイン可能な独立モジュールです。このコンポーネント・ベースの考え方により、JMXソリューションは、設置面積の小さなデバイスから大規模な遠距離通信スイッチ、さらにはそれ以上の規模にまで拡大可能です。JMX仕様では、一連のコア・エージェント・サービスを用意しています。サービスは追加で開発でき、管理インフラストラクチャで動的にロード、アンロード、または更新が可能です。
- JMXテクノロジは、既存の標準Javaテクノロジを活用しています。JMX仕様では、Java Naming and Directory Interface (JNDI)などの既存のJava仕様を必要に応じて参照しています。
- NetBeans IDEでは、JMXモジュールを作成することでJMXアプリケーションの作成が簡単になります。JMXモジュールは、NetBeans Update Centerから入手できます。
- JMXテクノロジを使用すると、既存の管理ソリューションや最新技術と簡単に統合できます。たとえばJMXエージェントはHTMLブラウザから管理できます。JMX APIはオープン・インタフェースで、あらゆる管理システム・ベンダーが利用可能です。JMXソリューションでは、Jiniネットワーク・テクノロジやService Location Protocol (SLP)などの検索、検出サービスおよびプロトコルを使用できます。
JDK7の新機能
JDK7 Update 4から、JMX向けの仮想マシン・サポート機能が拡張され、管理およびモニタリング・システムをサポートするための機能が追加されました。これらの拡張機能のサマリーを次に示します。
- JMXエージェントの実行を停止し、そのオプションの変更後に再実行するためのJCMDオプションが提供されました。jcmdのマニュアル・ページ(Solaris、Linux、Mac OS X、またはWindows)を参照してください。
- 停止したJMXエージェントのオプションを変更するためのJCMDオプションを使用できます。
- ファイアウォール経由の接続を可能にするための通信ポートの構成が、JMXエージェントでサポートされるようになりました。
- JMXエージェントで、オン・デマンドでの接続がサポートされるようになりました。