- 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の初期インスタンスを作成します。 この処理の間にチェック例外(ClassNotFoundException
、InstantiationException
など)が発生した場合は、MBeanServerFactoryにより、この例外がRuntimeException内から伝播されます。javax.management.builder.initialシステム・プロパティは、新しいMBeanServerを作成する必要がある場合と、このプロパティがポイントするクラスがロードされた場合に確認されます。 クラスが現在のMBeanServerBuilderのクラスでない場合、新しいMBeanServerBuilderが作成されます。 それ以外の場合、MBeanServerFactoryは、新しいMBeanServerBuilderを作成するか、現在のMBeanServerBuilderを再利用します。
このプロパティがポイントするクラスがロードできない場合、またはMBeanServerBuilderの有効なサブクラスに一致していない場合、例外がスローされます。この場合は、javax.management.builder.initialシステム・プロパティを有効な値にリセットしないかぎり、MBeanServerを作成できません。
MBeanServerBuilderは、セキュリティ層を追加するなどの目的で、デフォルトのMBeanServerBuilder実装によって返されるMBeanServersをラップできるようにします。
- 導入されたバージョン:
- 1.5
-
-
メソッドのサマリー
修飾子と型 メソッド 説明 static MBeanServer
createMBeanServer()
標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。static MBeanServer
createMBeanServer(String domain)
指定のデフォルト・ドメイン名を持つMBeanServer
インタフェースを実装する新しいオブジェクトを返します。static ArrayList<MBeanServer>
findMBeanServer(String agentId)
登録済みのMBeanServerオブジェクトのリストを返します。static ClassLoaderRepository
getClassLoaderRepository(MBeanServer server)
指定のMBeanServerによって使用されるClassLoaderRepositoryを返します。static MBeanServer
newMBeanServer()
標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。static MBeanServer
newMBeanServer(String domain)
指定のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。static void
releaseMBeanServer(MBeanServer mbeanServer)
作成されたMBeanServerの内部MBeanServerFactory参照を削除します。
-
-
-
メソッドの詳細
-
releaseMBeanServer
public static void releaseMBeanServer(MBeanServer mbeanServer)
作成されたMBeanServerの内部MBeanServerFactory参照を削除します。 これにより、ガベージ・コレクタによるMBeanServerオブジェクトの削除が可能になります。- パラメータ:
mbeanServer
- 削除されるMBeanServerオブジェクト。- 例外:
IllegalArgumentException
-mbeanServer
がcreateMBeanServer
メソッドのいずれかで生成されていない場合、またはreleaseMBeanServer
がすでに呼び出されている場合。SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("releaseMBeanServer")
-
createMBeanServer
public static MBeanServer createMBeanServer()
標準のデフォルト・ドメイン名を持つMBeanServerインタフェースを実装する新しいオブジェクトを返します。 デフォルト・ドメイン名は、ユーザーがドメイン名としてnullを指定したとき、MBeanのObjectNameのドメイン部分として使用されます。
標準のデフォルト・ドメイン名は、
DefaultDomain
です。MBeanServer参照は内部で保持されます。 このため、
findMBeanServer
は、このMBeanServerオブジェクトの参照を返すことができます。このメソッドは、
createMBeanServer(null)
と同等です。- 戻り値:
- 新しく作成されたMBeanServer。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("createMBeanServer")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のデフォルト・ドメイン名。 これはMBeanServerConnection.getDefaultDomain()
によって返される値です。- 戻り値:
- 新しく作成されたMBeanServer。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("createMBeanServer")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。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("newMBeanServer")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のデフォルト・ドメイン名。 これはMBeanServerConnection.getDefaultDomain()
によって返される値です。- 戻り値:
- 新しく作成されたMBeanServer。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("newMBeanServer")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オブジェクトのリスト。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanServerPermission
("findMBeanServer")
-
getClassLoaderRepository
public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
指定のMBeanServerによって使用されるClassLoaderRepositoryを返します。 このメソッドは、server.getClassLoaderRepository()
と同等です。- パラメータ:
server
- 検査中のMBeanServer。 JMX 1.2以降、server
がnull
の場合、結果はNullPointerException
になる。 この動作は、null
の使用が非推奨のJMX 1.1とは異なる。- 戻り値:
- 指定のMBeanServerによって使用されるクラス・ローダー・リポジトリ。
- 例外:
SecurityException
- SecurityManagerが存在し、呼出し元がアクセス権として
を持っていない場合。MBeanPermission
("getClassLoaderRepository")NullPointerException
-server
がnullである場合。
-
-