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 をラップできるようにします。
| 修飾子と型 | メソッドと説明 |
|---|---|
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 参照を削除します。
|
public static void releaseMBeanServer(MBeanServer mbeanServer)
mbeanServer - 削除される MBeanServer オブジェクト。IllegalArgumentException - mbeanServer が createMBeanServer メソッドのいずれかで生成されていない場合、または releaseMBeanServer がすでに呼び出されている場合。SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("releaseMBeanServer") を持っていない場合。public static MBeanServer createMBeanServer()
標準のデフォルトドメイン名を持つ MBeanServer インタフェースを実装する新しいオブジェクトを返します。デフォルトドメイン名は、ユーザーがドメイン名として null を指定したとき、MBean の ObjectName のドメイン部分として使用されます。
標準のデフォルトドメイン名は、DefaultDomain です。
MBeanServer 参照は内部で保持されます。このため、findMBeanServer は、この MBeanServer オブジェクトの参照を返すことができます。
このメソッドは、createMBeanServer(null) と同等です。
SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("createMBeanServer") を持っていない場合。JMRuntimeException - javax.management.builder.initial プロパティーは存在するが、このプロパティーによって指定されたクラスを引数なしの public コンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーが newMBeanServerDelegate または newMBeanServer メソッドから null を返す場合。ClassCastException - javax.management.builder.initial プロパティーが存在し、インスタンス化も可能であるが、MBeanServerBuilder 準拠の割り当てでない場合。public static MBeanServer createMBeanServer(String domain)
指定のデフォルトドメイン名を持つ MBeanServer インタフェースを実装する新しいオブジェクトを返します。指定のドメイン名は、ユーザーがドメイン名として null を指定したとき、MBean の ObjectName のドメイン部分として使用されます。
MBeanServer 参照は内部で保持されます。このため、findMBeanServer は、この MBeanServer オブジェクトの参照を返すことができます。
domain - 作成された MBeanServer のデフォルトドメイン名。この値が、MBeanServer.getDefaultDomain() から返される。SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("createMBeanServer") を持っていない場合。JMRuntimeException - javax.management.builder.initial プロパティーは存在するが、このプロパティーによって指定されたクラスを引数なしの public コンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーが newMBeanServerDelegate または newMBeanServer メソッドから null を返す場合。ClassCastException - javax.management.builder.initial プロパティーが存在し、インスタンス化も可能であるが、MBeanServerBuilder 準拠の割り当てでない場合。public static MBeanServer newMBeanServer()
標準のデフォルトドメイン名を持つ MBeanServer インタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。デフォルトドメイン名は、ユーザーがドメイン名として null を指定したとき、MBean の ObjectName のドメイン部分として使用されます。
標準のデフォルトドメイン名は、DefaultDomain です。
参照は保持されません。findMBeanServer は、この MBeanServer オブジェクトの参照を返すことはできません。しかし、ガベージコレクタは、もう参照されなくなった MBeanServer オブジェクトを削除できます。
このメソッドは、newMBeanServer(null) と同等です。
SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("newMBeanServer") を持っていない場合。JMRuntimeException - javax.management.builder.initial プロパティーは存在するが、このプロパティーによって指定されたクラスを引数なしの public コンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーが newMBeanServerDelegate または newMBeanServer メソッドから null を返す場合。ClassCastException - javax.management.builder.initial プロパティーが存在し、インスタンス化も可能であるが、MBeanServerBuilder 準拠の割り当てでない場合。public static MBeanServer newMBeanServer(String domain)
指定のデフォルトドメイン名を持つ MBeanServer インタフェースを実装する新しいオブジェクトを返します。ただし、この新しいオブジェクトの内部参照は保持されません。指定のドメイン名は、ユーザーがドメイン名として null を指定したとき、MBean の ObjectName のドメイン部分として使用されます。
参照は保持されません。findMBeanServer は、この MBeanServer オブジェクトの参照を返すことはできません。しかし、ガベージコレクタは、もう参照されなくなった MBeanServer オブジェクトを削除できます。
domain - 作成された MBeanServer のデフォルトドメイン名。この値が、MBeanServer.getDefaultDomain() から返される。SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("newMBeanServer") を持っていない場合。JMRuntimeException - javax.management.builder.initial プロパティーは存在するが、このプロパティーによって指定されたクラスを引数なしの public コンストラクタでインスタンス化できない場合。または、インスタンス化されたビルダーが newMBeanServerDelegate または newMBeanServer メソッドから null を返す場合。ClassCastException - javax.management.builder.initial プロパティーが存在し、インスタンス化も可能であるが、MBeanServerBuilder 準拠の割り当てでない場合。public static ArrayList<MBeanServer> findMBeanServer(String agentId)
登録済みの MBeanServer オブジェクトのリストを返します。登録済みの MBeanServer オブジェクトは、いずれかの createMBeanServer メソッドによって作成され、そのあと releaseMBeanServer で解放されていないオブジェクトです。
agentId - 取得する MBeanServer の エージェント識別子。このパラメータが null の場合、この JVM 内の登録済みのすべての MBeanServer が返される。それ以外の場合、agentId と等しい ID を持つ MBeanServer だけが返される。MBeanServer の ID は、委譲 MBean の MBeanServerId 属性である。SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanServerPermission("findMBeanServer") を持っていない場合。public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
server.getClassLoaderRepository() と同等です。server - 検査中の MBeanServer。JMX 1.2 以降、server が null の場合、結果は NullPointerException になる。この動作は、null の使用が推奨されない JMX 1.1 とは異なる。SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanPermission("getClassLoaderRepository") を持っていない場合。NullPointerException - server が null である場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.