クラスMBeanServerFactory

java.lang.Object
javax.management.MBeanServerFactory

public class MBeanServerFactory extends Object

MBeanサーバー参照を提供します。 このクラスのインスタンスは存在しません。

JMX 1.2以降、このクラスを使って、デフォルトのMBeanServer実装を置き換えることができるようになっています。 これは、MBeanServerBuilderクラスを使用して行われます。 最初にインスタンス化されるMBeanServerBuilderのクラスは、システム・プロパティjavax.management.builder.initialで指定できます。 空のpublicコンストラクタを持つ、MBeanServerBuilderのpublicサブクラスを指定する必要があります。

デフォルトでは、プロパティの値が指定されていない場合、javax.management.MBeanServerBuilderのインスタンスが作成されます。 それ以外の場合、MBeanServerFactoryは、Thread.currentThread().getContextClassLoader()を使って指定されたクラスをロードしようとします。プロパティの値としてnullが指定されている場合は、Class.forName()を使用して行います。 続いて、Class.newInstance()を使って、そのClassの初期インスタンスを作成します。 この処理の間にチェック例外(ClassNotFoundExceptionInstantiationExceptionなど)が発生した場合は、MBeanServerFactoryにより、この例外がRuntimeException内から伝播されます。

javax.management.builder.initialシステム・プロパティは、新しいMBeanServerを作成する必要がある場合と、このプロパティがポイントするクラスがロードされた場合に確認されます。 クラスが現在のMBeanServerBuilderのクラスでない場合、新しいMBeanServerBuilderが作成されます。 それ以外の場合、MBeanServerFactoryは、新しいMBeanServerBuilderを作成するか、現在のMBeanServerBuilderを再利用します。

このプロパティがポイントするクラスがロードできない場合、またはMBeanServerBuilderの有効なサブクラスに一致していない場合、例外がスローされます。この場合は、javax.management.builder.initialシステム・プロパティを有効な値にリセットしないかぎり、MBeanServerを作成できません。

MBeanServerBuilderは、セキュリティ層を追加するなどの目的で、デフォルトのMBeanServerBuilder実装によって返されるMBeanServersをラップできるようにします。

導入されたバージョン:
1.5
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。
    指定のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。
    登録済みのMBeanServerオブジェクトのリストを返します。
    指定のMBeanServerによって使用されるClassLoaderRepositoryを返します。
    標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。
    指定のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。
    static void
    作成されたMBeanServerの内部MBeanServerFactory参照を削除します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • releaseMBeanServer

      public static void releaseMBeanServer(MBeanServer mbeanServer)
      作成されたMBeanServerの内部MBeanServerFactory参照を削除します。 これにより、ガベージ・コレクタによるMBeanServerオブジェクトの削除が可能になります。
      パラメータ:
      mbeanServer - 削除されるMBeanServerオブジェクト。
      スロー:
      IllegalArgumentException - mbeanServercreateMBeanServerメソッドのいずれかで生成されていない場合、またはreleaseMBeanServerがすでに呼び出されている場合。
    • createMBeanServer

      public static MBeanServer createMBeanServer()

      標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。 デフォルト・ドメイン名は、ユーザーがドメイン名としてnullを指定したとき、MBeanのObjectNameのドメイン部分として使用されます。

      標準のデフォルト・ドメイン名は、DefaultDomainです。

      MBeanServer参照は内部で保持されます。 このため、findMBeanServerは、このMBeanServerオブジェクトの参照を返すことができます。

      このメソッドは、createMBeanServer(null)と同等です。

      戻り値:
      新しく作成されたMBeanServer。
      スロー:
      JMRuntimeException - javax.management.builder.initialプロパティは存在するが、このプロパティによって指定されたクラスを引数なしのpublicコンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーがnewMBeanServerDelegateまたはnewMBeanServerメソッドからnullを返す場合。
      ClassCastException - javax.management.builder.initialプロパティが存在し、インスタンス化も可能であるが、MBeanServerBuilder準拠の割当てでない場合。
    • createMBeanServer

      public static MBeanServer createMBeanServer(String domain)

      指定のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。 指定のドメイン名は、ユーザーがドメイン名としてnullを指定したとき、MBeanのObjectNameのドメイン部分として使用されます。

      MBeanServer参照は内部で保持されます。 このため、findMBeanServerは、このMBeanServerオブジェクトの参照を返すことができます。

      パラメータ:
      domain - 作成されたMBeanServerのデフォルト・ドメイン名。 この値が、MBeanServer.getDefaultDomain()から返される。
      戻り値:
      新しく作成されたMBeanServer。
      スロー:
      JMRuntimeException - javax.management.builder.initialプロパティは存在するが、このプロパティによって指定されたクラスを引数なしのpublicコンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーがnewMBeanServerDelegateまたはnewMBeanServerメソッドからnullを返す場合。
      ClassCastException - javax.management.builder.initialプロパティが存在し、インスタンス化も可能であるが、MBeanServerBuilder準拠の割当てでない場合。
    • newMBeanServer

      public static MBeanServer newMBeanServer()

      標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。 デフォルト・ドメイン名は、ユーザーがドメイン名としてnullを指定したとき、MBeanのObjectNameのドメイン部分として使用されます。

      標準のデフォルト・ドメイン名は、DefaultDomainです。

      参照は保持されません。findMBeanServerは、このMBeanServerオブジェクトの参照を返すことはできません。しかし、ガベージ・コレクタは、もう参照されなくなったMBeanServerオブジェクトを削除できます。

      このメソッドは、newMBeanServer(null)と同等です。

      戻り値:
      新しく作成されたMBeanServer。
      スロー:
      JMRuntimeException - javax.management.builder.initialプロパティは存在するが、このプロパティによって指定されたクラスを引数なしのpublicコンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーがnewMBeanServerDelegateまたはnewMBeanServerメソッドからnullを返す場合。
      ClassCastException - javax.management.builder.initialプロパティが存在し、インスタンス化も可能であるが、MBeanServerBuilder準拠の割当てでない場合。
    • newMBeanServer

      public static MBeanServer newMBeanServer(String domain)

      指定のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。 指定のドメイン名は、ユーザーがドメイン名としてnullを指定したとき、MBeanのObjectNameのドメイン部分として使用されます。

      参照は保持されません。findMBeanServerは、このMBeanServerオブジェクトの参照を返すことはできません。しかし、ガベージ・コレクタは、もう参照されなくなったMBeanServerオブジェクトを削除できます。

      パラメータ:
      domain - 作成されたMBeanServerのデフォルト・ドメイン名。 この値が、MBeanServer.getDefaultDomain()から返される。
      戻り値:
      新しく作成されたMBeanServer。
      スロー:
      JMRuntimeException - javax.management.builder.initialプロパティは存在するが、このプロパティによって指定されたクラスを引数なしのpublicコンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーがnewMBeanServerDelegateまたはnewMBeanServerメソッドからnullを返す場合。
      ClassCastException - javax.management.builder.initialプロパティが存在し、インスタンス化も可能であるが、MBeanServerBuilder準拠の割当てでない場合。
    • findMBeanServer

      public static ArrayList<MBeanServer> findMBeanServer(String agentId)

      登録済みのMBeanServerオブジェクトのリストを返します。 登録済みのMBeanServerオブジェクトは、いずれかのcreateMBeanServerメソッドによって作成され、そのあとreleaseMBeanServerで解放されていないオブジェクトです。

      パラメータ:
      agentId - 取得するMBeanServerのエージェント識別子。 このパラメータがnullの場合、このJVM内の登録済みのすべてのMBeanServerが返される。 それ以外の場合、agentIdと等しいIDを持つMBeanServerだけが返される。 MBeanServerのIDは、委譲MBeanのMBeanServerId属性である。
      戻り値:
      MBeanServerオブジェクトのリスト。
    • getClassLoaderRepository

      public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
      指定のMBeanServerによって使用されるClassLoaderRepositoryを返します。 このメソッドは、server.getClassLoaderRepository()と同等です。
      パラメータ:
      server - 検査中のMBeanServer。 JMX 1.2以降、servernullの場合、結果はNullPointerExceptionになる。 この動作は、nullの使用が非推奨のJMX 1.1とは異なる。
      戻り値:
      指定のMBeanServerによって使用されるクラス・ローダー・リポジトリ。
      スロー:
      NullPointerException - serverがnullである場合。