JavaTM 2 Platform
Standard Ed. 5.0

javax.management
クラス 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 が指定されている場合は、Thread.currentThread().getContextClassLoader() ではなく Class.forName() を使用します。続いて、Class.newInstance() を使って、その Class の初期インスタンスを作成します。この処理の間に確認済みの例外 (ClassNotFoundExceptionInstantiationException など) が発生した場合は、この例外を 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 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 参照を削除します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

releaseMBeanServer

public static void releaseMBeanServer(MBeanServer mbeanServer)
作成された MBeanServer の内部 MBeanServerFactory 参照を削除します。これにより、ガベージコレクタによる MBeanServer オブジェクトの削除が可能になります。

パラメータ:
mbeanServer - 削除される MBeanServer オブジェクト
例外:
IllegalArgumentException - mbeanServercreateMBeanServer メソッドで作成されていない場合、または 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 のデフォルトドメイン名。MBeanServer.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 のデフォルトドメイン名。MBeanServer.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 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 以降、servernull の場合、結果は NullPointerException。この動作は、null の使用が推奨されない JMX 1.1 とは異なる
戻り値:
指定の MBeanServer によって使用されるクラスローダリポジトリ
例外:
SecurityException - SecurityManager が存在し、呼び出し元がアクセス権として MBeanPermission("getClassLoaderRepository") を持っていない場合
NullPointerException - server が null の場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。