目次||

第4章

JMXエージェントの使用

Java Management Extensions (JMX)エージェントは、Java仮想マシン(Java VM)内で実行される管理エンティティです。MBeanと管理アプリケーションとのパイプ役として機能します。次のセクションでは、JMXエージェントの様々なコンポーネントについて説明します。

MBeanサーバー

MBeanサーバーは、JMXエージェントのコア・コンポーネントです。管理操作に公開されているエージェント内のオブジェクトのレジストリです。MBeanサーバーに登録されているすべてのオブジェクトが、管理アプリケーションに公開されます。ただし、MBeanサーバーはMBeanの管理インタフェースだけを公開し、オブジェクトの直接参照は公開しません。

エージェントのJava VMの外部から管理するリソースは、MBeanとしてサーバーに登録する必要があります。MBeanサーバーには同じJava VM内でMBeanにアクセスするための標準化されたインタフェースもあり、ローカル・オブジェクトにとって管理可能なリソースを操作できるという利点があります。MBeanは次によってインスタンス化され登録されます。

  • 別のMBean
  • エージェント自身
  • リモート管理アプリケーション

MBeanを登録する場合は、一意のオブジェクト名を割り当てる必要があります。管理アプリケーションではオブジェクト名を使用して、管理操作を実行する対象となるオブジェクトを特定します。MBeanで利用可能な操作には、次の操作があります。

  • MBeanの管理インタフェースの検出
  • 属性値の読み書き
  • MBeanによって定義された操作の実行
  • MBeanによって送られた通知の取得
  • オブジェクト名または属性値を基にしたMBeanのクエリー

エージェント・サービス

エージェント・サービスとは、MBeanサーバーに登録されたMBeanの管理操作を実行できるオブジェクトのことです。エージェントに管理機能を持たせることで、JMXを使用すればより強力な管理ソリューションを構築できます。エージェント・サービスもMBeanとなることがあり、このときはエージェント・サービスとその機能をMBeanサーバーから制御できます。JMX仕様では、次のエージェント・サービスを定義しています。

  • 管理アプレット(m-let)サービスを介した動的クラス・ローディングにより、ネットワークから動的にダウンロードされた新しいクラスとネイティブ・ライブラリを取得し、インスタンス化する。
  • モニターでMBean属性の数値または文字列値を観察し、各種の変更をほかのオブジェクトに通知できる。
  • タイマーにより、スケジューリング・メカニズムを提供し、事前に定義した間隔で通知を送信できる。
  • 関係サービスではMBean間の関係を定義し、その関係の一貫性を維持する。

プロトコル・アダプタとコネクタ

プロトコル・アダプタとコネクタを使用すると、リモート管理アプリケーションからエージェントにアクセスできます。MBeanサーバーでインスタンス化され登録された、すべてのMBeanに特有のプロトコルを使用してビューを提供します。Java VMの外部の管理アプリケーションでは、次のことが可能になります。

  • 既存のMBeanの属性の取得または設定
  • 既存のMBean上で操作の実行
  • 新しいMBeanのインスタンス化と登録
  • MBeanが送る通知の登録と受信

したがってJMXエージェントを管理するには、少なくとも1つはプロトコル・アダプタやコネクタを含まなければなりません。Java SEプラットフォームには、標準RMIコネクタが含まれています。エージェントはプロトコル・アダプタやコネクタを任意の個数含めることができ、さまざまなプロトコルによって同時にリモートで管理およびモニターすることができます。

プロトコル・アダプタ

プロトコルアダプタは、指定されたプロトコルを介したJMXエージェントの管理ビューを提供します。MBeanの操作およびMBeanサーバーを指定されたプロトコルの形式に変換します。また、SNMPのような別の情報モデルへの変換も行います。Java SEプラットフォームは、プロトコルアダプタを標準装備していません。

プロトコル・アダプタに接続する管理アプリケーションは、通常、指定されたプロトコル専用です。これは、特定の管理プロトコルに依存した従来の管理ソリューションの典型的なケースです。管理アプリケーションはJMXエージェントに対して、MBeanサーバーのリモート形式でアクセスするのではなく、MBeanサーバーの操作にマップされた操作でアクセスします。

コネクタ

コネクタは、エージェントとリモート管理アプリケーションを接続するために使用されます。この場合のリモート管理アプリケーションは、JMXテクノロジに対応し、つまり、JMX仕様の分散サービスを使用して開発された管理アプリケーションのことです。この種の通信は、エージェント内のコネクタ・サーバーや、マネージャ内のコネクタ・クライアントが行います。

これらのコンポーネントは、特定のプロトコルを使用してポイントツーポイントで管理操作を透過的に伝送します。JMXリモートAPIはMBeanサーバーに対するリモート・インタフェースを提供し、管理アプリケーションはこのインタフェースを通じて操作を実行します。コネクタは指定されたプロトコル専用ですが、あらゆるコネクタは同じリモート・インタフェースを備えているため、管理アプリケーションではどのコネクタも同じように使用できます。

標準JMXコネクタについての詳細は、第5章「JMXコネクタを使用したリソースのリモート管理」を参照してください。

 

目次||

 


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.