MBean の生成

MBean は管理された Java オブジェクトで、JavaBean[tm] に似ており、JMX 仕様の計測レベルで詳しく説明されたデザインパターンに従います。MBean は、デバイス、アプリケーション、または管理に必要な任意のリソースを表すことができます。MBeans は、管理インタフェース、または読み取り可能または書き込み可能、あるいはその両方の属性のセット、および起動可能な操作のセットを自己記述とともに公開します。管理インタフェースは、MBean のインスタンスの生存を通じて変更されることはありません。また、MBeans は、ある定義されたイベントが発生したときに、通知の発行もできます。

JMX の仕様では、標準 MBeans動的 MBeans公開 MBeans、およびモデル MBeans の 4 種類の MBean を定義しています。この章の例では、もっとも簡単な MBean、すなわち標準 MBeans について説明します。

標準 MBeans

標準 MBean は、インタフェースを計測する SomethingMBean と呼ばれる Java インタフェースと、Something と呼ばれる Java クラス を作成することによって定義されます。インタフェースのそれぞれのメソッドは、MBean での属性または操作を定義します。デフォルトでは、それぞれのメソッドは操作を定義します。属性と操作は、任意のデザインパターンに従う単純なメソッドです。標準 MBean は、すべての公開された属性と操作用のメソッドを一覧表示する MBean インタフェースと、このインタフェースを実装し、計測されたリソースの機能を提供するクラスで構成されています。

「MBean」ウィザードを使用した標準 MBean の生成

この節では、標準 MBean を例をあげて詳しく説明します。「MBean」ウィザードはクラスの生成に使用されます。

  1. 「ファイル」>「新規ファイル」を選択します。
  2. 管理」カテゴリを選択します。「ファイルの種類」から「JMX MBean」を選択します。
  3. 名前」、「パッケージ」、および「説明」を入力します。
  4. 次へ」をクリックします。
  5. MBean の種類を選択します。デフォルトで、標準 MBean が作成されます。さらに動的で、独自にドキュメント化された MBean にする場合は、動的 MBean を選択します。この種類の MBean を実装するのはさらに複雑ですが、いくつかのドキュメント化された メタデータが提供されています。StandardMBean を拡張 は、標準 MBean と同様に実装が簡単で、動的 MBean の汎用性を持っています。 この種類の MBean は、既存のクラスに管理を追加するのにたいへん適しています。
  6. MBean クラスをドキュメント化するための説明を入力できます。このウィザードから入力したすべてのドキュメントは、次のものとして生成されます。
  7. MBean に MBeanRegistration インタフェースを実装する場合は、「MBeanRegistration インタフェースを実装」チェックボックスを選択します。MBeanRegistration インタフェースは、MBean がライフサイクルを追跡できる便利なインタフェースです。 特定のイベントは MBean の登録 (pre/post register/unregister コールバック) に関連しています。
  8. preRegister メソッドパラメータの非公開フィールドを生成」をチェックできます。このオプションを選択すると、ウィザードがいくつかの非公開フィールドを生成し、preRegister コールバックに渡されたパラメータの参照を保持します。一般に、提供された ObjectName と MBeanServer の参照を保持することは重要です。
  9. 以降、いつでも「完了」をクリックできます。
  10. 次へ」をクリックします。
  11. MBean に属性を持たせる場合は、「属性を追加」をクリックします。
  12. 属性」表の最初の行に、次のように入力します。
    1. 名前」列に、属性名 (例: Status) を入力します
    2. 」列で、Java の種類 (例: String) を選択します
    3. アクセス権」列で、アクセスの種類 (例: 読み取り / 書き込み) を選択します
    4. 説明」列にこの属性が何を示しているか (例: この MBean の現在のステータス) を入力します
  13. 次へ」をクリックします。
  14. MBean に属性を持たせる場合は、「操作を追加」をクリックします。
  15. 操作」表の最初の行に、次のように入力します。
    1. 名前」列の操作名 (例: リセット) を入力します
    2. 戻り値の型」列で、Java の種類 (例: void) を選択します
    3. 入力パラメータを追加する場合は、「パラメータ」列で、「編集」ボタンをクリックします
      1. パラメータを追加」をクリックします
      2. パラメータ名」列で、デフォルトのパラメータ名を変更できます
      3. パラメータ型」列で、Java の種類 (例: String) を選択します
      4. パラメータ説明」列に、このパラメータが何を示しているかを入力します
    4. 説明」列にこの操作が何を示しているか (例: 現在のステータスをリセット) を入力します
  16. 次へ」をクリックします。
  17. MBean で通知を送信したい場合は、「NotificationEmitter インタフェースを実装」インタフェースを選択します。ウィザードでは、この NotificationBroadcasterSupport 委託に基づいたインタフェースの実装を生成できます。通知シーケンスナンバーを処理するいくつかのコードも生成できます。関連するチェックボックスを選択して、このコードを生成します。
  18. MBean で通知を定義する場合は、「通知を追加」をクリックします。
  19. 通知」表の最初の列に、次のように入力します。
    1. 通知クラス」列で、標準 JMX 通知クラスを選択するか、または独自の通知クラスを入力します。AttributeChangeNotification クラスを選択した場合は、通知の種類は自動的に「AttributeChangeNotification.ATTRIBUTE_CHANGE」に設定されます。
    2. 説明」列で、通知の説明 (例: ステータス属性が変更されたときに通知を送信) を入力します
    3. 通知の種類の列で、「編集」ボタンをクリックします
      1. 種類を追加」をクリックします
      2. 通知」列で、デフォルトの種類を独自の種類 (例: com.foo.event.BIRTHDAY) に変更します
  20. 次へ」をクリックします。
  21. JUnit テストを生成する場合は、「JUnit テストを作成」チェックボックスを選択します。
  22. 完了」をクリックします。
  23. MBean 実装クラスがエディタで開かれます。標準 MBean を選択した場合、<MBean Name>MBean と呼ばれるMBean インタフェース、<MBean Name> と呼ばれる実装クラス、および JUnit テストは、選択した src パッケージまたは test パッケージで生成されます。
  24. これで、独自のロジックを生成されたコードに追加して、JUnit テストを実行することができます。


著作権と商標について