- 既知のすべてのサブインタフェース:
MBeanServer
,MBeanServerForwarder
MBeanServer
インタフェースはこのインタフェースを拡張します。 - 導入されたバージョン:
- 1.5
-
メソッドのサマリー
修飾子と型メソッド説明void
addNotificationListener
(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) 登録済みMBeanにリスナーを追加します。void
addNotificationListener
(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) 登録済みMBeanにリスナーを追加します。createMBean
(String className, ObjectName name) MBeanをインスタンス化し、MBeanサーバーに登録します。createMBean
(String className, ObjectName name, Object[] params, String[] signature) MBeanをインスタンス化し、MBeanサーバーに登録します。createMBean
(String className, ObjectName name, ObjectName loaderName) MBeanをインスタンス化し、MBeanサーバーに登録します。createMBean
(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) MBeanをインスタンス化し、MBeanサーバーに登録します。getAttribute
(ObjectName name, String attribute) 指定されたMBeanの特定の属性の値を取得します。getAttributes
(ObjectName name, String[] attributes) 指定されたMBeanの複数の属性の値を取り出します。MBeanの指定に使用するデフォルトのドメインを返します。String[]
MBeanが現在登録されているドメインのリストを返します。MBeanサーバーに登録されているMBeanの数を返します。getMBeanInfo
(ObjectName name) このメソッドは、MBeanが管理用として公開している属性とオペレーションを検出します。getObjectInstance
(ObjectName name) MBeanに登録された、指定されたMBeanのObjectInstance
を取得します。invoke
(ObjectName name, String operationName, Object[] params, String[] signature) MBean上でオペレーションを呼び出します。boolean
isInstanceOf
(ObjectName name, String className) 指定されたMBeanが指定されたクラスのインスタンスである場合はtrue、そうでない場合はfalseを返します。boolean
isRegistered
(ObjectName name) このオブジェクト名で識別されるMBeanが、すでにMBeanサーバーに登録されているかどうかをチェックします。queryMBeans
(ObjectName name, QueryExp query) MBeanサーバーによって制御されるMBeanを取得します。queryNames
(ObjectName name, QueryExp query) MBeanサーバーによって制御されるMBeanの名前を取得します。void
removeNotificationListener
(ObjectName name, NotificationListener listener) 登録済みMBeanからリスナーを削除します。void
removeNotificationListener
(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) 登録済みMBeanからリスナーを削除します。void
removeNotificationListener
(ObjectName name, ObjectName listener) 登録済みMBeanからリスナーを削除します。void
removeNotificationListener
(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) 登録済みMBeanからリスナーを削除します。void
setAttribute
(ObjectName name, Attribute attribute) 指定されたMBeanの特定の属性の値を設定します。setAttributes
(ObjectName name, AttributeList attributes) 指定されたMBeanの複数の属性の値を設定します。void
unregisterMBean
(ObjectName name) MBeanサーバーからMBeanの登録を解除します。
-
メソッドの詳細
-
createMBean
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException MBeanをインスタンス化し、MBeanサーバーに登録します。 MBeanサーバーは、
Default Loader Repository
を使って、このMBeanのクラスをロードします。 MBeanにはオブジェクト名が関連付けられます。 このオブジェクト名がnullの場合、MBeanは、MBeanRegistration
インタフェースを実装し、preRegister
メソッドから返される独自の名前を使用する必要があります。このメソッドは、
createMBean(className, name,(Object[]) null,(String[]) null)
と同等です。- パラメータ:
className
- インスタンス化するMBeanのクラス名。name
- MBeanのオブジェクト名。 nullも可。- 戻り値:
- 新しくインスタンス化されたMBeanの
ObjectName
とJavaクラス名を含むObjectInstance
。 含まれるObjectName
がn
の場合、含まれるJavaクラス名は
。getMBeanInfo(n)
.getClassName() - 例外:
ReflectionException
- MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundException
またはjava.lang.Exception
をラップする場合。InstanceAlreadyExistsException
- MBeanがすでにMBeanサーバーによって制御されている場合。MBeanRegistrationException
- MBeanのpreRegister
(MBeanRegistration
インタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。RuntimeMBeanException
- MBeanのコンストラクタ、あるいはそのpreRegister
またはpostRegister
メソッドがRuntimeException
をスローした場合。 MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがRuntimeException
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeMBeanException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeMBeanException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。RuntimeErrorException
- MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがError
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeErrorException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeErrorException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。MBeanException
- MBeanのコンストラクタが例外をスローした場合NotCompliantMBeanException
- このクラスがJMX準拠のMBeanでない場合RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectName
がパターンであるか、MBeanにObjectName
が指定されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException MBeanをインスタンス化し、MBeanサーバーに登録します。 使用するクラス・ローダーは、オブジェクト名で識別されます。 MBeanにはオブジェクト名が関連付けられます。 ローダーのオブジェクト名がnullの場合、MBeanサーバーのロードに使用したClassLoaderが使用されます。 MBeanのオブジェクト名がnullの場合、MBeanは、
MBeanRegistration
インタフェースを実装し、preRegister
メソッドから返される独自の名前を使用する必要があります。このメソッドは、
createMBean(className, name, loaderName,(Object[]) null,(String[]) null)
と同等です。- パラメータ:
className
- インスタンス化するMBeanのクラス名。name
- MBeanのオブジェクト名。 nullも可。loaderName
- 使用するクラス・ローダーのオブジェクト名。- 戻り値:
- 新しくインスタンス化されたMBeanの
ObjectName
とJavaクラス名を含むObjectInstance
。 含まれるObjectName
がn
の場合、含まれるJavaクラス名は
。getMBeanInfo(n)
.getClassName() - 例外:
ReflectionException
- MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundException
またはjava.lang.Exception
をラップする場合。InstanceAlreadyExistsException
- MBeanがすでにMBeanサーバーによって制御されている場合。MBeanRegistrationException
- MBeanのpreRegister
(MBeanRegistration
インタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。RuntimeMBeanException
- MBeanのコンストラクタ、あるいはそのpreRegister
またはpostRegister
メソッドがRuntimeException
をスローした場合。 MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがRuntimeException
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeMBeanException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeMBeanException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。RuntimeErrorException
- MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがError
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeErrorException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeErrorException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。MBeanException
- MBeanのコンストラクタが例外をスローした場合NotCompliantMBeanException
- このクラスがJMX準拠のMBeanでない場合InstanceNotFoundException
- 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectName
がパターンであるか、MBeanにObjectName
が指定されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException MBeanをインスタンス化し、MBeanサーバーに登録します。 MBeanサーバーは、Default Loader Repository
を使って、このMBeanのクラスをロードします。 MBeanにはオブジェクト名が関連付けられます。 このオブジェクト名がnullの場合、MBeanは、MBeanRegistration
インタフェースを実装し、preRegister
メソッドから返される独自の名前を使用する必要があります。- パラメータ:
className
- インスタンス化するMBeanのクラス名。name
- MBeanのオブジェクト名。 nullも可。params
- 呼び出されるコンストラクタのパラメータを含む配列。signature
- 呼び出されるコンストラクタのシグニチャを含む配列。- 戻り値:
- 新しくインスタンス化されたMBeanの
ObjectName
とJavaクラス名を含むObjectInstance
。 含まれるObjectName
がn
の場合、含まれるJavaクラス名は
。getMBeanInfo(n)
.getClassName() - 例外:
ReflectionException
- MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundException
またはjava.lang.Exception
をラップする場合。InstanceAlreadyExistsException
- MBeanがすでにMBeanサーバーによって制御されている場合。MBeanRegistrationException
- MBeanのpreRegister
(MBeanRegistration
インタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。RuntimeMBeanException
- MBeanのコンストラクタ、あるいはそのpreRegister
またはpostRegister
メソッドがRuntimeException
をスローした場合。 MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがRuntimeException
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeMBeanException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeMBeanException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。RuntimeErrorException
- MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがError
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeErrorException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeErrorException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。MBeanException
- MBeanのコンストラクタが例外をスローした場合NotCompliantMBeanException
- このクラスがJMX準拠のMBeanでない場合RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectName
がパターンであるか、MBeanにObjectName
が指定されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException MBeanをインスタンス化し、MBeanサーバーに登録します。 使用するクラス・ローダーは、オブジェクト名で識別されます。 MBeanにはオブジェクト名が関連付けられます。 ローダーのオブジェクト名が指定されていない場合、MBeanサーバーのロードに使用したClassLoaderが使用されます。 MBeanのオブジェクト名がnullの場合、MBeanは、
MBeanRegistration
インタフェースを実装し、preRegister
メソッドから返される独自の名前を使用する必要があります。- パラメータ:
className
- インスタンス化するMBeanのクラス名。name
- MBeanのオブジェクト名。 nullも可。loaderName
- 使用するクラス・ローダーのオブジェクト名。params
- 呼び出されるコンストラクタのパラメータを含む配列。signature
- 呼び出されるコンストラクタのシグニチャを含む配列。- 戻り値:
- 新しくインスタンス化されたMBeanの
ObjectName
とJavaクラス名を含むObjectInstance
。 含まれるObjectName
がn
の場合、含まれるJavaクラス名は
。getMBeanInfo(n)
.getClassName() - 例外:
ReflectionException
- MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundException
またはjava.lang.Exception
をラップする場合。InstanceAlreadyExistsException
- MBeanがすでにMBeanサーバーによって制御されている場合。MBeanRegistrationException
- MBeanのpreRegister
(MBeanRegistration
インタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。RuntimeMBeanException
- MBeanのコンストラクタ、あるいはそのpreRegister
またはpostRegister
メソッドがRuntimeException
をスローした場合。 MBeanのpostRegister
(MBeanRegistration
インタフェース)メソッドがRuntimeException
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeMBeanException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeMBeanException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。RuntimeErrorException
- MBeanのpostRegister
メソッド(MBeanRegistration
インタフェース)メソッドがError
をスローすると、MBeanの作成と登録は成功しますが、createMBean
メソッドはRuntimeErrorException
をスローします。 このような場合、createMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録されます。RuntimeErrorException
はpreRegister
でもスローされますが、その場合はMBeanは登録されません。MBeanException
- MBeanのコンストラクタが例外をスローした場合NotCompliantMBeanException
- このクラスがJMX準拠のMBeanでない場合InstanceNotFoundException
- 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectName
がパターンであるか、MBeanにObjectName
が指定されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
unregisterMBean
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, IOException MBeanサーバーからMBeanの登録を解除します。 MBeanはオブジェクト名で識別されます。 メソッドを呼び出したあと、オブジェクト名を指定してこのMBeanにアクセスすることはできません。- パラメータ:
name
- 登録解除するMBeanのオブジェクト名。- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。MBeanRegistrationException
- MBeanのpreDeregister (MBeanRegistration
インタフェース)メソッドが例外をスローしました。RuntimeMBeanException
- MBeanのpostDeregister
(MBeanRegistration
インタフェース)メソッドがRuntimeException
をスローすると、MBeanの登録解除は成功しますが、unregisterMBean
メソッドはRuntimeMBeanException
をスローします。 このような場合、unregisterMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録解除されます。RuntimeMBeanException
はpreDeregister
でもスローされますが、その場合はMBeanの登録は解除されません。RuntimeErrorException
- MBeanのpostDeregister
(MBeanRegistration
インタフェース)メソッドがError
をスローすると、MBeanの登録解除は成功しますが、unregisterMBean
メソッドはRuntimeErrorException
をスローします。 このような場合、unregisterMBean
メソッドが例外をスローしたとしても、MBeanは実際に登録解除されます。RuntimeMBeanException
はpreDeregister
でもスローされますが、その場合はMBeanの登録は解除されません。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、登録解除しようとしているMBeanがMBeanServerDelegate
である場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
getObjectInstance
MBeanに登録された、指定されたMBeanのObjectInstance
を取得します。- パラメータ:
name
- MBeanのオブジェクト名。- 戻り値:
- nameで指定されたMBeanに関連付けられた
ObjectInstance
。 含まれるObjectName
はname
で、含まれるクラス名は
。getMBeanInfo(name)
.getClassName() - 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query) throws IOException MBeanサーバーによって制御されるMBeanを取得します。 このメソッドは、すべてのMBean、ObjectName
やクエリー式のパターン・マッチングによって指定されたMBeanのセット、特定のMBeanのいずれかを返します。 オブジェクト名がnullである場合、またはドメインやキーのプロパティが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。 このメソッドは、選択されたMBeanに対して、ObjectInstance
オブジェクトのセット(ObjectName
とJavaクラス名を含む)を返します。- パラメータ:
name
- 取得するMBeanを識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanが取得される。query
- MBeanの選択に適用されるクエリー式。 nullの場合、MBeanの選択にクエリー式は適用されない。- 戻り値:
- 選択されたMBeanの
ObjectInstance
オブジェクトを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。 - 例外:
IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
queryNames
Set<ObjectName> queryNames(ObjectName name, QueryExp query) throws IOException MBeanサーバーによって制御されるMBeanの名前を取得します。 このメソッドは、すべてのMBeanの名前、ObjectName
やQuery式のパターン・マッチングによって指定されたMBeanのセットの名前、特定のMBeanの名前のいずれかを返します。これにより、MBeanが登録されているかどうかを判別できます。 オブジェクト名がnullである場合、またはドメインやキーのプロパティが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。 このメソッドは、選択されたMBeanに対して、ObjectNameのセットを返します。- パラメータ:
name
- 取得するMBean名を識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanの名前が取得される。query
- MBeanの選択に適用されるクエリー式。 nullの場合、MBeanの選択にクエリー式は適用されない。- 戻り値:
- 選択されたMBeanのObjectNameを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。
- 例外:
IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
isRegistered
boolean isRegistered(ObjectName name) throws IOException このオブジェクト名で識別されるMBeanが、すでにMBeanサーバーに登録されているかどうかをチェックします。- パラメータ:
name
- チェック対象のMBeanのオブジェクト名。- 戻り値:
- MBeanがすでにMBeanサーバーに登録されている場合はtrue、そうでない場合はfalse。
- 例外:
RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
getMBeanCount
Integer getMBeanCount() throws IOExceptionMBeanサーバーに登録されているMBeanの数を返します。- 戻り値:
- 登録済みのMBeanの数。
- 例外:
IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
getAttribute
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException 指定されたMBeanの特定の属性の値を取得します。 MBeanはオブジェクト名で識別されます。- パラメータ:
name
- MBeanのオブジェクト名。このMBeanの属性が取得される。attribute
- 取得される属性の名前を指定するString。- 戻り値:
- 取得される属性の値。
- 例外:
AttributeNotFoundException
- MBeanの指定された属性がアクセス不能である場合。MBeanException
- MBeanのgetterによってスローされる例外をラップする場合。InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。ReflectionException
- setterの呼出し時にスローされるjava.lang.Exception
をラップする場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
getAttributes
AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException, IOException 指定されたMBeanの複数の属性の値を取り出します。 MBeanはオブジェクト名で識別されます。
何らかの理由で1つ以上の属性を取得できない場合、それらは返される
AttributeList
から省略されます。 呼出し側はリストがattributes
配列と同じサイズであることを確認する必要があります。 属性の取得を妨げた問題を見つけるには、その属性のgetAttribute
を呼び出します。このメソッドを呼び出して、要求されたすべての属性を正常に取得できたことを確認する例を次に示します。
String[] attrNames = ...; AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames); if (list.size() == attrNames.length) System.out.println("All attributes were retrieved successfully"); else {
List<String>
missing = newArrayList<String>
(Arrays.asList
(attrNames)); for (Attribute a : list.asList()) missing.remove(a.getName()); System.out.println("Did not retrieve: " + missing); }- パラメータ:
name
- MBeanのオブジェクト名。このMBeanの属性が取得される。attributes
- 取得される属性のリスト。- 戻り値:
- 取得される属性のリスト。
- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。ReflectionException
- Dynamic MBeanのgetAttributesメソッドの呼出し時に例外が発生した場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
setAttribute
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException 指定されたMBeanの特定の属性の値を設定します。 MBeanはオブジェクト名で識別されます。- パラメータ:
name
- MBean名。このMBeanの属性が設定される。attribute
- 設定される属性のIDと設定される値。- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。AttributeNotFoundException
- MBeanの指定された属性がアクセス不能である場合。InvalidAttributeValueException
- 指定された値が、属性に対する有効な値でない場合。MBeanException
- MBeanのsetterによってスローされる例外をラップする場合。ReflectionException
- setterの呼出し時にスローされるjava.lang.Exception
をラップする場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
setAttributes
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, IOException 指定されたMBeanの複数の属性の値を設定します。 MBeanはオブジェクト名で識別されます。
何らかの理由で1つ以上の属性を設定できない場合、それらは返される
AttributeList
から省略されます。 呼出し側は入力のAttributeList
が出力のそれと同じサイズであることを確認する必要があります。 属性の取得を妨げた問題の発見は、通常、その属性のsetAttribute
を呼び出すことで可能ですが、必ずしも成功する保証はありません。 たとえば、2つの属性の値が互いに矛盾するために拒否された可能性があります。 どちらか1つであれば、設定できる可能性があります。このメソッドを呼び出して、要求されたすべての属性を正常に設定できたことを確認する例を次に示します。
AttributeList inputAttrs = ...; AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs); if (inputAttrs.size() == outputAttrs.size()) System.out.println("All attributes were set successfully"); else {
List<String>
missing = newArrayList<String>
(); for (Attribute a : inputAttrs.asList()) missing.add(a.getName()); for (Attribute a : outputAttrs.asList()) missing.remove(a.getName()); System.out.println("Did not set: " + missing); }- パラメータ:
name
- MBeanのオブジェクト名。このMBeanの属性が設定される。attributes
- 属性のリスト。属性のリスト(設定される属性のIDと設定される値)。- 戻り値:
- 設定された属性と新しい値のリスト。
- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。ReflectionException
- Dynamic MBeanのgetAttributesメソッドの呼出し時に例外が発生した場合。RuntimeOperationsException
-java.lang.IllegalArgumentException
をラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
invoke
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException MBean上でオペレーションを呼び出します。
オーバーロードされる可能性があるオペレーションを区別するために
signature
が必要であるため、可能な場合は、MBeanプロキシを介してさらに簡単にオペレーションを呼び出すことができます。 たとえば、次のようなStandard MBeanインタフェースが存在する場合を考えましょう。public interface FooMBean { public int countMatches(String[] patterns, boolean ignoreCase); }
countMatches
オペレーションは次のようにして呼び出すことができます。String[] myPatterns = ...; int count = (Integer) mbeanServerConnection.invoke( objectName, "countMatches", new Object[] {myPatterns, true}, new String[] {String[].class.getName(), boolean.class.getName()});
または、次のようにプロキシを介して呼び出すこともできます。
String[] myPatterns = ...; FooMBean fooProxy = JMX.newMBeanProxy( mbeanServerConnection, objectName, FooMBean.class); int count = fooProxy.countMatches(myPatterns, true);
- パラメータ:
name
- メソッドの呼出しが行われるMBeanのオブジェクト名。operationName
- 呼び出されるオペレーションの名前。params
- オペレーションの呼出し時に設定されるパラメータを含む配列。signature
- オペレーションのシグニチャを含む配列(Class.getName()
から返される形式のクラス名の配列)。 クラス・オブジェクトのロードには、オペレーションを呼び出したMBeanをロードするときと同じクラス・ローダーが使用される。- 戻り値:
- オペレーションによって返されるオブジェクト。指定されたMBean上でオペレーションを呼び出した結果を表す。
- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。MBeanException
- MBeanの呼出しメソッドによってスローされる例外をラップする場合。ReflectionException
- メソッドの呼出し時にスローされるjava.lang.Exception
をラップする場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
getDefaultDomain
String getDefaultDomain() throws IOExceptionMBeanの指定に使用するデフォルトのドメインを返します。 ユーザーがドメイン名を指定しなかった場合、MBeanのObjectNameのドメイン部分には、デフォルトのドメイン名が入ります。- 戻り値:
- デフォルトのドメイン。
- 例外:
IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
getDomains
String[] getDomains() throws IOExceptionMBeanが現在登録されているドメインのリストを返します。 返される配列内に文字列が含まれるのは、その文字列と等しい
getDomain()
を持つObjectNameに1個以上のMBeanが登録されている場合だけです。 返される配列内の文字列の順序は未定義です。- 戻り値:
- ドメインのリスト。
- 例外:
IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
addNotificationListener
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException 登録済みMBeanにリスナーを追加します。 MBeanが発行した通知は、リスナーに転送されます。
- パラメータ:
name
- リスナーが追加されるMBeanの名前。listener
- 登録済みMBeanが発行した通知を処理するリスナー・オブジェクト。filter
- フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。handback
- 通知が発行されたときリスナーに送信されるコンテキスト。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException 登録済みMBeanにリスナーを追加します。
MBeanが発行した通知は、MBeanServerによってリスナーに転送されます。 通知のソースがMBeanオブジェクトの参照になっている場合、MBeanサーバーは、これをMBeanのObjectNameで置き換えます。 それ以外の場合、ソースが変更されることはありません。
通知を受け取るリスナー・オブジェクトは、このメソッドの呼出し時に指定された名前で登録されたリスナー・オブジェクトです。 その後は登録しなくても引き続き通知を受け取ります。
- パラメータ:
name
- リスナーが追加されるMBeanの名前。listener
- 登録済みMBeanが発行した通知を処理するリスナーのオブジェクト名。filter
- フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。handback
- 通知が発行されたときリスナーに送信されるコンテキスト。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、通知リスナーまたは通知ブロードキャスタのMBean名がない場合。RuntimeOperationsException
-IllegalArgumentException
をラップする場合。listener
によって指定されたMBeanが存在していても、NotificationListener
インタフェースを実装していない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException 登録済みMBeanからリスナーを削除します。リスナーが、別のフィルタまたはコールバックにより複数回登録された場合、このメソッドは、これらすべての登録を削除します。
- パラメータ:
name
- リスナーが削除されるMBeanの名前。listener
- 削除されるリスナーのオブジェクト名。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。ListenerNotFoundException
- リスナーがMBeanに登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException 登録済みMBeanからリスナーを削除します。
MBeanは、指定された
listener
、filter
、およびhandback
パラメータと正確に一致するリスナーを持っている必要があります。 該当するリスナーが複数存在する場合、そのうちの1つだけが削除されます。削除されるリスナー内でnullが指定されている場合にのみ、
filter
およびhandback
パラメータはnullになります。- パラメータ:
name
- リスナーが削除されるMBeanの名前。listener
- 削除されるリスナーのオブジェクト名。filter
- リスナーの追加時に指定されたフィルタ。handback
- リスナーの追加時に指定されたハンドバック。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。ListenerNotFoundException
- リスナーがMBeanに登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException 登録済みMBeanからリスナーを削除します。
リスナーが、別のフィルタまたはコールバックにより複数回登録された場合、このメソッドは、これらすべての登録を削除します。
- パラメータ:
name
- リスナーが削除されるMBeanの名前。listener
- 削除されるリスナー。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。ListenerNotFoundException
- リスナーがMBeanに登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException 登録済みMBeanからリスナーを削除します。
MBeanは、指定された
listener
、filter
、およびhandback
パラメータと正確に一致するリスナーを持っている必要があります。 該当するリスナーが複数存在する場合、そのうちの1つだけが削除されます。削除されるリスナー内でnullが指定されている場合にのみ、
filter
およびhandback
パラメータはnullになります。- パラメータ:
name
- リスナーが削除されるMBeanの名前。listener
- 削除されるリスナー。filter
- リスナーの追加時に指定されたフィルタ。handback
- リスナーの追加時に指定されたハンドバック。- 例外:
InstanceNotFoundException
- 登録済みMBeanの中に、指定されたMBean名がない場合。ListenerNotFoundException
- リスナーがMBeanに登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException このメソッドは、MBeanが管理用として公開している属性とオペレーションを検出します。- パラメータ:
name
- 分析対象のMBeanの名前- 戻り値:
MBeanInfo
のインスタンス。このMBeanのすべての属性とオペレーションの取得を許可する。- 例外:
IntrospectionException
- イントロスペクション中に例外が発生した場合。InstanceNotFoundException
- 指定されたMBeanが見つからなかった場合。ReflectionException
- Dynamic MBeanのgetMBeanInfoメソッドの呼出し時に例外が発生した場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。
-
isInstanceOf
boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException, IOException 指定されたMBeanが指定されたクラスのインスタンスである場合はtrue、そうでない場合はfalseを返します。
name
がMBeanを指定していない場合、このメソッドはInstanceNotFoundException
をスローします。それ以外の場合、
Xはname
で指定されたMBean、
LはXのClassLoader、
NはXのMBeanInfo
内のクラス名になります。Nが
className
と等しい場合、結果はtrueです。それ以外の場合、Lが
className
を正常にロードし、Xがこのクラスのインスタンスである場合、結果はtrueです。それ以外の場合、LがNと
className
の両方を正常にロードし、最初のクラスから2番目のクラスを割り当てることができる場合、結果はtrueです。それ以外の場合、結果はfalseです。
- パラメータ:
name
- MBeanのObjectName
。className
- クラスの名前。- 戻り値:
- 上記の規則に従って、指定されたMBeanが指定されたクラスのインスタンスである場合はtrue、そうでない場合はfalse。
- 例外:
InstanceNotFoundException
- 指定されたMBeanがMBeanサーバーに登録されていない場合。IOException
- MBeanサーバーとの通信時に問題が発生した場合。- 関連項目:
-