モジュール java.management
パッケージ javax.management

インタフェースMBeanServer

すべてのスーパー・インタフェース:
MBeanServerConnection
既知のすべてのサブインタフェース:
MBeanServerForwarder

public interface MBeanServer
extends MBeanServerConnection

エージェント側でMBeanを操作するためのインタフェースです。 登録済みのMBeanにアクセスするためのメソッドのほか、MBeanを作成、登録、削除するために必要なメソッドが含まれます。 これが、JMXインフラストラクチャの主要コンポーネントになります。

通常、ユーザー・コードはこのインタフェースを実装しません。 ただし、このインタフェースを実装するオブジェクトは、MBeanServerFactoryクラスのいずれかのメソッドで取得できます。

MBeanサーバーに追加されたMBeanはすべて管理対象となります。これらのMBeanの属性とオペレーションには、MBeanサーバーに接続されたコネクタまたはアダプタ経由でリモート・アクセスできます。 JMX準拠のMBeanでないJavaオブジェクトは、MBeanサーバーに登録できません。

MBeanサーバーでMBeanを登録または登録解除すると、MBeanServerNotification通知が発行されます。 オブジェクトをMBeanServerNotificationのリスナーとして登録するには、MBeanServerDelegateObjectNameを指定して、MBeanサーバー・メソッドaddNotificationListenerObjectNameと呼び出すようにしてください。 このObjectNameは、
JMImplementation: type=MBeanServerDelegateになります。

MBeanServerFactoryクラスのcreateMBeanServerまたはnewMBeanServerメソッドから取得されたオブジェクトでは、次のように、そのメソッドにセキュリティ・チェックが適用されます。

セキュリティ・マネージャが存在しない場合、すなわちSystem.getSecurityManager()がnullの場合、このインタフェースの実装はチェックを行わないこともあります。

セキュリティ・マネージャが存在する場合、または実装でチェックを行うことが選択されている場合、次のようなチェックが行われます。 特に指定されないかぎり、classNameは、MBeanInfo.getClassName()によってターゲットMBeanに返される文字列です。

セキュリティ・チェックに失敗した場合、メソッドはSecurityExceptionをスローします。

InstanceNotFoundExceptionをスローする可能性があるメソッドは、アクセス権の内容に関係なく、MBeanが存在しない場合にこの例外をスローします。 これは、MBeanが存在しなければ、classNameも存在しないからです。

導入されたバージョン:
1.5
  • メソッドの詳細

    • createMBean

      MBeanをインスタンス化し、MBeanサーバーに登録します。 MBeanサーバーは、Default Loader Repositoryを使って、このMBeanのクラスをロードします。 MBeanにはオブジェクト名が関連付けられます。 このオブジェクト名がnullの場合、MBeanは、MBeanRegistrationインタフェースを実装し、preRegisterメソッドから返される独自の名前を使用する必要があります。

      このメソッドは、createMBean(className, name,(Object[]) null,(String[]) null)と同等です。

      このメソッドがMBeanの作成に成功すると、前述の通知が送信されます。

      定義:
      createMBean、インタフェース: MBeanServerConnection
      パラメータ:
      className - インスタンス化するMBeanのクラス名。
      name - MBeanのオブジェクト名。 nullも可。
      戻り値:
      新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameがパターンであるか、MBeanにObjectNameが指定されていない場合。
      RuntimeMBeanException - MBeanのコンストラクタ、あるいはそのpreRegisterまたはpostRegisterメソッドがRuntimeExceptionをスローした場合。 MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeMBeanExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      RuntimeErrorException - MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeErrorExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
      MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
      MBeanException - MBeanのコンストラクタが例外をスローした場合
      NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合
      関連項目:
      MBeanRegistration
    • createMBean

      MBeanをインスタンス化し、MBeanサーバーに登録します。 使用するクラス・ローダーは、オブジェクト名で識別されます。 MBeanにはオブジェクト名が関連付けられます。 ローダーのオブジェクト名がnullの場合、MBeanサーバーのロードに使用したClassLoaderが使用されます。 MBeanのオブジェクト名がnullの場合、MBeanは、MBeanRegistrationインタフェースを実装し、preRegisterメソッドから返される独自の名前を使用する必要があります。

      このメソッドは、createMBean(className, name, loaderName,(Object[]) null,(String[]) null)と同等です。

      このメソッドがMBeanの作成に成功すると、前述の通知が送信されます。

      定義:
      createMBean、インタフェース: MBeanServerConnection
      パラメータ:
      className - インスタンス化するMBeanのクラス名。
      name - MBeanのオブジェクト名。 nullも可。
      loaderName - 使用するクラス・ローダーのオブジェクト名。
      戻り値:
      新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameがパターンであるか、MBeanにObjectNameが指定されていない場合。
      RuntimeMBeanException - MBeanのコンストラクタ、あるいはそのpreRegisterまたはpostRegisterメソッドがRuntimeExceptionをスローした場合。 MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeMBeanExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      RuntimeErrorException - MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeErrorExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
      MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
      MBeanException - MBeanのコンストラクタが例外をスローした場合
      NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合
      InstanceNotFoundException - 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。
      関連項目:
      MBeanRegistration
    • createMBean

      MBeanをインスタンス化し、MBeanサーバーに登録します。 MBeanサーバーは、Default Loader Repositoryを使って、このMBeanのクラスをロードします。 MBeanにはオブジェクト名が関連付けられます。 このオブジェクト名がnullの場合、MBeanは、MBeanRegistrationインタフェースを実装し、preRegisterメソッドから返される独自の名前を使用する必要があります。

      このメソッドがMBeanの作成に成功すると、前述の通知が送信されます。

      定義:
      createMBean、インタフェース: MBeanServerConnection
      パラメータ:
      className - インスタンス化するMBeanのクラス名。
      name - MBeanのオブジェクト名。 nullも可。
      params - 呼び出されるコンストラクタのパラメータを含む配列。
      signature - 呼び出されるコンストラクタのシグニチャを含む配列。
      戻り値:
      新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameがパターンであるか、MBeanにObjectNameが指定されていない場合。
      RuntimeMBeanException - MBeanのコンストラクタ、あるいはそのpreRegisterまたはpostRegisterメソッドがRuntimeExceptionをスローした場合。 MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeMBeanExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      RuntimeErrorException - MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeErrorExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
      MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
      MBeanException - MBeanのコンストラクタが例外をスローした場合
      NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合
      関連項目:
      MBeanRegistration
    • createMBean

      MBeanをインスタンス化し、MBeanサーバーに登録します。 使用するクラス・ローダーは、オブジェクト名で識別されます。 MBeanにはオブジェクト名が関連付けられます。 ローダーのオブジェクト名が指定されていない場合、MBeanサーバーのロードに使用したClassLoaderが使用されます。 MBeanのオブジェクト名がnullの場合、MBeanは、MBeanRegistrationインタフェースを実装し、preRegisterメソッドから返される独自の名前を使用する必要があります。

      このメソッドがMBeanの作成に成功すると、前述の通知が送信されます。

      定義:
      createMBean、インタフェース: MBeanServerConnection
      パラメータ:
      className - インスタンス化するMBeanのクラス名。
      name - MBeanのオブジェクト名。 nullも可。
      loaderName - 使用するクラス・ローダーのオブジェクト名。
      params - 呼び出されるコンストラクタのパラメータを含む配列。
      signature - 呼び出されるコンストラクタのシグニチャを含む配列。
      戻り値:
      新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameがパターンであるか、MBeanにObjectNameが指定されていない場合。
      RuntimeMBeanException - MBeanのコンストラクタ、あるいはそのpreRegisterまたはpostRegisterメソッドがRuntimeExceptionをスローした場合。 MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeMBeanExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      RuntimeErrorException - MBeanのpostRegisterメソッド(MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの作成と登録は成功しますが、createMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、createMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeErrorExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
      MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
      MBeanException - MBeanのコンストラクタが例外をスローした場合
      NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合
      InstanceNotFoundException - 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。
      関連項目:
      MBeanRegistration
    • registerMBean

      既存のオブジェクトをMBeanとしてMBeanサーバーに登録します。 このオブジェクト名がnullの場合、MBeanは、MBeanRegistrationインタフェースを実装し、preRegisterメソッドから返される独自の名前を使用する必要があります。

      このメソッドがMBeanの登録に成功すると、前述の通知が送信されます。

      パラメータ:
      object - MBeanとして登録されるMBean。
      name - MBeanのオブジェクト名。 nullも可。
      戻り値:
      新しく登録されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
      例外:
      InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
      MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
      RuntimeMBeanException - MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの登録は成功しますが、registerMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、registerMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeMBeanExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      RuntimeErrorException - MBeanのpostRegister (MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの登録は成功しますが、registerMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、registerMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録されます。 RuntimeErrorExceptionpreRegisterでもスローされますが、その場合はMBeanは登録されません。
      NotCompliantMBeanException - このオブジェクトがJMX準拠のMBeanでない場合
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるオブジェクトがnullであるか、オブジェクト名が指定されていない場合。
      関連項目:
      MBeanRegistration
    • unregisterMBean

      void unregisterMBean​(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
      MBeanサーバーからMBeanの登録を解除します。 MBeanはオブジェクト名で識別されます。 メソッドを呼び出したあと、オブジェクト名を指定してこのMBeanにアクセスすることはできません。

      このメソッドがMBeanの登録解除に成功すると、前述の通知が送信されます。

      定義:
      unregisterMBean、インタフェース: MBeanServerConnection
      パラメータ:
      name - 登録解除するMBeanのオブジェクト名。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、登録解除しようとしているMBeanがMBeanServerDelegateである場合。
      RuntimeMBeanException - MBeanのpostDeregister (MBeanRegistrationインタフェース)メソッドがRuntimeExceptionをスローすると、MBeanの登録解除は成功しますが、unregisterMBeanメソッドはRuntimeMBeanExceptionをスローします。 このような場合、unregisterMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録解除されます。 RuntimeMBeanExceptionpreDeregisterでもスローされますが、その場合はMBeanの登録は解除されません。
      RuntimeErrorException - MBeanのpostDeregister (MBeanRegistrationインタフェース)メソッドがErrorをスローすると、MBeanの登録解除は成功しますが、unregisterMBeanメソッドはRuntimeErrorExceptionをスローします。 このような場合、unregisterMBeanメソッドが例外をスローしたとしても、MBeanは実際に登録解除されます。 RuntimeMBeanExceptionpreDeregisterでもスローされますが、その場合はMBeanの登録は解除されません。
      InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
      MBeanRegistrationException - MBeanのpreDeregister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。
      関連項目:
      MBeanRegistration
    • queryMBeans

      Set<ObjectInstance> queryMBeans​(ObjectName name, QueryExp query)
      MBeanサーバーによって制御されるMBeanを取得します。 このメソッドは、すべてのMBean、ObjectNameやクエリー式のパターン・マッチングによって指定されたMBeanのセット、特定のMBeanのいずれかを返します。 オブジェクト名がnullである場合、またはドメインやキーのプロパティが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。 このメソッドは、選択されたMBeanに対して、ObjectInstanceオブジェクトのセット(ObjectNameとJavaクラス名を含む)を返します。
      定義:
      queryMBeans、インタフェース: MBeanServerConnection
      パラメータ:
      name - 取得するMBeanを識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanが取得される。
      query - MBeanの選択に適用されるクエリー式。 nullの場合、MBeanの選択にクエリー式は適用されない。
      戻り値:
      選択されたMBeanのObjectInstanceオブジェクトを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。
      例外:
      RuntimeOperationsException
    • queryNames

      Set<ObjectName> queryNames​(ObjectName name, QueryExp query)
      MBeanサーバーによって制御されるMBeanの名前を取得します。 このメソッドは、すべてのMBeanの名前、ObjectNameやQuery式のパターン・マッチングによって指定されたMBeanのセットの名前、特定のMBeanの名前のいずれかを返します。これにより、MBeanが登録されているかどうかを判別できます。 オブジェクト名がnullである場合、またはドメインやキーのプロパティが指定されていない場合、すべてのオブジェクトが選択されます。クエリーが指定されている場合は、さらにフィルタリングが適用されます。 このメソッドは、選択されたMBeanに対して、ObjectNameのセットを返します。
      定義:
      queryNames、インタフェース: MBeanServerConnection
      パラメータ:
      name - 取得するMBean名を識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanの名前が取得される。
      query - MBeanの選択に適用されるクエリー式。 nullの場合、MBeanの選択にクエリー式は適用されない。
      戻り値:
      選択されたMBeanのObjectNameを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。
      例外:
      RuntimeOperationsException
    • isRegistered

      boolean isRegistered​(ObjectName name)
      インタフェースからコピーされた説明: MBeanServerConnection
      このオブジェクト名で識別されるMBeanが、すでにMBeanサーバーに登録されているかどうかをチェックします。
      定義:
      isRegistered、インタフェース: MBeanServerConnection
      パラメータ:
      name - チェック対象のMBeanのオブジェクト名。
      戻り値:
      MBeanがすでにMBeanサーバーに登録されている場合はtrue、そうでない場合はfalse。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。
    • getMBeanCount

      Integer getMBeanCount()
      MBeanサーバーに登録されているMBeanの数を返します。
      定義:
      getMBeanCount、インタフェース: MBeanServerConnection
      戻り値:
      登録済MBeanの数。Integerにラップされる。 呼出し元のアクセス権が制限されている場合、この数は呼出し元からアクセスできるMBeanの数より大きくなる可能性がある。
    • getAttribute

      インタフェースからコピーされた説明: MBeanServerConnection
      指定されたMBeanの特定の属性の値を取得します。 MBeanはオブジェクト名で識別されます。
      定義:
      getAttribute、インタフェース: MBeanServerConnection
      パラメータ:
      name - MBeanのオブジェクト名。このMBeanの属性が取得される。
      attribute - 取得される属性の名前を指定するString。
      戻り値:
      取得される属性の値。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。
      MBeanException - MBeanのgetterによってスローされる例外をラップする場合。
      AttributeNotFoundException - MBeanの指定された属性がアクセス不能である場合。
      InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
      ReflectionException - setterの呼出し時にスローされるjava.lang.Exceptionをラップする場合。
      関連項目:
      MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)
    • getAttributes

      AttributeList getAttributes​(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
      インタフェースからコピーされた説明: MBeanServerConnection

      指定された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 = new ArrayList<String>(Arrays.asList(attrNames));
           for (Attribute a : list.asList())
               missing.remove(a.getName());
           System.out.println("Did not retrieve: " + missing);
       }
       
      定義:
      getAttributes、インタフェース: MBeanServerConnection
      パラメータ:
      name - MBeanのオブジェクト名。このMBeanの属性が取得される。
      attributes - 取得される属性のリスト。
      戻り値:
      取得される属性のリスト。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。
      InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
      ReflectionException - Dynamic MBeanのgetAttributesメソッドの呼出し時に例外が発生した場合。
      関連項目:
      MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)
    • setAttribute

      インタフェースからコピーされた説明: MBeanServerConnection
      指定されたMBeanの特定の属性の値を設定します。 MBeanはオブジェクト名で識別されます。
      定義:
      setAttribute、インタフェース: MBeanServerConnection
      パラメータ:
      name - MBean名。このMBeanの属性が設定される。
      attribute - 設定される属性のIDと設定される値。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。
      InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
      AttributeNotFoundException - MBeanの指定された属性がアクセス不能である場合。
      InvalidAttributeValueException - 指定された値が、属性に対する有効な値でない場合。
      MBeanException - MBeanのsetterによってスローされる例外をラップする場合。
      ReflectionException - setterの呼出し時にスローされるjava.lang.Exceptionをラップする場合。
      関連項目:
      MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)
    • setAttributes

      インタフェースからコピーされた説明: MBeanServerConnection

      指定された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 = new ArrayList<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);
       }
       
      定義:
      setAttributes、インタフェース: MBeanServerConnection
      パラメータ:
      name - MBeanのオブジェクト名。このMBeanの属性が設定される。
      attributes - 属性のリスト。属性のリスト(設定される属性のIDと設定される値)。
      戻り値:
      設定された属性と新しい値のリスト。
      例外:
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullであるか、パラメータ内の属性がnullである場合。
      InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
      ReflectionException - Dynamic MBeanのgetAttributesメソッドの呼出し時に例外が発生した場合。
      関連項目:
      MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])
    • addNotificationListener

      void addNotificationListener​(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException

      登録済みMBeanにリスナーを追加します。 MBeanが発行した通知は、リスナーに転送されます。

      通知のソースがMBeanオブジェクトの参照になっている場合、MBeanサーバーは、これをMBeanのObjectNameで置き換えます。 それ以外の場合、ソースが変更されることはありません。
      定義:
      addNotificationListener、インタフェース: MBeanServerConnection
      パラメータ:
      name - リスナーが追加されるMBeanの名前。
      listener - 登録済みMBeanが発行した通知を処理するリスナー・オブジェクト。
      filter - フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。
      handback - 通知が発行されたときリスナーに送信されるコンテキスト。
      例外:
      InstanceNotFoundException - 登録済みMBeanの中に、指定されたMBean名がない場合。
      関連項目:
      MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener), MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
    • addNotificationListener

      void addNotificationListener​(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException

      登録済みMBeanにリスナーを追加します。

      MBeanが発行した通知は、MBeanServerによってリスナーに転送されます。 通知のソースがMBeanオブジェクトの参照になっている場合、MBeanサーバーは、これをMBeanのObjectNameで置き換えます。 それ以外の場合、ソースが変更されることはありません。

      通知を受け取るリスナー・オブジェクトは、このメソッドの呼出し時に指定された名前で登録されたリスナー・オブジェクトです。 その後は登録しなくても引き続き通知を受け取ります。

      定義:
      addNotificationListener、インタフェース: MBeanServerConnection
      パラメータ:
      name - リスナーが追加されるMBeanの名前。
      listener - 登録済みMBeanが発行した通知を処理するリスナーのオブジェクト名。
      filter - フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。
      handback - 通知が発行されたときリスナーに送信されるコンテキスト。
      例外:
      RuntimeOperationsException - IllegalArgumentExceptionをラップする場合。 listenerによって指定されたMBeanが存在していても、NotificationListenerインタフェースを実装していない場合。
      InstanceNotFoundException - 登録済みMBeanの中に、通知リスナーまたは通知ブロードキャスタのMBean名がない場合。
      関連項目:
      MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName), MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
    • instantiate

      Object instantiate​(String className) throws ReflectionException, MBeanException

      MBeanサーバーのClass Loader Repository内に登録されたすべてのクラス・ローダーのリストを使って、オブジェクトをインスタンス化します。 オブジェクトのクラスは、publicコンストラクタを持っていなければいけません。 このメソッドは、新しく生成されたオブジェクトの参照を返します。 新しく生成されたオブジェクトは、MBeanサーバーに登録されていません。

      このメソッドは、instantiate(className,(Object[]) null,(String[]) null)と同等です。

      パラメータ:
      className - インスタンス化するオブジェクトのクラス名。
      戻り値:
      新しくインスタンス化されたオブジェクト。
      例外:
      ReflectionException - オブジェクトのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      MBeanException - オブジェクトのコンストラクタが例外をスローした場合。
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullの場合。
    • instantiate

      Object instantiate​(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException

      ObjectNameで指定されたクラス・ローダーを使って、オブジェクトをインスタンス化します。 ローダー名がnullの場合、MBeanサーバーのロードに使用されたClassLoaderが使用されます。 オブジェクトのクラスは、publicコンストラクタを持っていなければいけません。 このメソッドは、新しく生成されたオブジェクトの参照を返します。 新しく生成されたオブジェクトは、MBeanサーバーに登録されていません。

      このメソッドは、instantiate(className, loaderName,(Object[]) null,(String[]) null)と同等です。

      パラメータ:
      className - インスタンス化するMBeanのクラス名。
      loaderName - 使用するクラス・ローダーのオブジェクト名。
      戻り値:
      新しくインスタンス化されたオブジェクト。
      例外:
      ReflectionException - オブジェクトのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      MBeanException - オブジェクトのコンストラクタが例外をスローした場合。
      InstanceNotFoundException - 指定されたクラス・ローダーがMBeanServerに登録されていない場合。
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullの場合。
    • instantiate

      Object instantiate​(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException

      MBeanサーバーのClass Loader Repository内に登録されたすべてのクラス・ローダーのリストを使って、オブジェクトをインスタンス化します。 オブジェクトのクラスは、publicコンストラクタを持っていなければいけません。 この呼出しは、新しく生成されたオブジェクトの参照を返します。 新しく生成されたオブジェクトは、MBeanサーバーに登録されていません。

      パラメータ:
      className - インスタンス化するオブジェクトのクラス名。
      params - 呼び出されるコンストラクタのパラメータを含む配列。
      signature - 呼び出されるコンストラクタのシグニチャを含む配列。
      戻り値:
      新しくインスタンス化されたオブジェクト。
      例外:
      ReflectionException - オブジェクトのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      MBeanException - オブジェクトのコンストラクタが例外をスローした場合。
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullの場合。
    • instantiate

      Object instantiate​(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException

      オブジェクトをインスタンス化します。 使用するクラス・ローダーは、オブジェクト名で識別されます。 ローダーのオブジェクト名がnullの場合、MBeanサーバーのロードに使用したClassLoaderが使用されます。 オブジェクトのクラスは、publicコンストラクタを持っていなければいけません。 この呼出しは、新しく生成されたオブジェクトの参照を返します。 新しく生成されたオブジェクトは、MBeanサーバーに登録されていません。

      パラメータ:
      className - インスタンス化するオブジェクトのクラス名。
      params - 呼び出されるコンストラクタのパラメータを含む配列。
      signature - 呼び出されるコンストラクタのシグニチャを含む配列。
      loaderName - 使用するクラス・ローダーのオブジェクト名。
      戻り値:
      新しくインスタンス化されたオブジェクト。
      例外:
      ReflectionException - オブジェクトのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
      MBeanException - オブジェクトのコンストラクタが例外をスローした場合。
      InstanceNotFoundException - 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。
      RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullの場合。
    • deserialize

      @Deprecated(since="1.5")default ObjectInputStream deserialize​(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
      非推奨。
      getClassLoaderForを使って、直列化復元に使用する適切なクラス・ローダーを取得します。

      MBeanのクラス・ローダーのコンテキストで、バイト配列を直列化復元します。

      実装要件:
      このメソッドは、デフォルトでUnsupportedOperationExceptionをスローします。
      パラメータ:
      name - MBeanの名前。このMBeanのクラス・ローダーを使って、直列化復元が行われる。
      data - 直列化復元の対象となるバイト配列。
      戻り値:
      直列化復元されたオブジェクト・ストリーム。
      例外:
      InstanceNotFoundException - 指定されたMBeanが見つからない場合。
      OperationsException - 通常の入出力関連の例外が発生した場合。
    • deserialize

      @Deprecated(since="1.5")default ObjectInputStream deserialize​(String className, byte[] data) throws OperationsException, ReflectionException
      非推奨。
      getClassLoaderRepository()を使ってクラス・ローダー・リポジトリを取得し、それを使って直列化復元を行います。

      指定されたMBeanクラス・ローダーのコンテキストで、バイト配列の直列化復元を行います。 クラス・ローダーを検索するには、Class Loader Repositoryを使ってclassNameクラスをロードします。 このクラスのクラス・ローダーが使用されます。

      実装要件:
      このメソッドは、デフォルトでUnsupportedOperationExceptionをスローします。
      パラメータ:
      className - クラスの名前。このクラスのクラス・ローダーを使って、直列化復元が行われる。
      data - 直列化復元の対象となるバイト配列。
      戻り値:
      直列化復元されたオブジェクト・ストリーム。
      例外:
      OperationsException - 通常の入出力関連の例外が発生した場合。
      ReflectionException - 指定されたクラスがクラス・ローダー・リポジトリにロードされない場合。
    • deserialize

      @Deprecated(since="1.5")default ObjectInputStream deserialize​(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
      非推奨。
      getClassLoaderを使って直列化復元用のクラス・ローダーを取得します。

      指定されたMBeanクラス・ローダーのコンテキストで、バイト配列の直列化復元を行います。 このクラス・ローダーは、classNameという名前でクラスをロードしたクラス・ローダーです。 指定されたクラスのロードに使用されたクラス・ローダーの名前が使用されます。 nullの場合、MBeanサーバーのクラス・ローダーが使用される。

      実装要件:
      このメソッドは、デフォルトでUnsupportedOperationExceptionをスローします。
      パラメータ:
      className - クラスの名前。このクラスのクラス・ローダーを使って、直列化復元が行われる。
      data - 直列化復元の対象となるバイト配列。
      loaderName - 指定されたクラスのロードに使用されるクラス・ローダーの名前。 nullの場合、MBeanサーバーのクラス・ローダーが使用される。
      戻り値:
      直列化復元されたオブジェクト・ストリーム。
      例外:
      InstanceNotFoundException - 指定されたクラス・ローダーMBeanが見つからない場合。
      OperationsException - 通常の入出力関連の例外が発生した場合。
      ReflectionException - 指定されたクラスが指定されたクラス・ローダーによってロードされない場合。
    • getClassLoaderFor

      ClassLoader getClassLoaderFor​(ObjectName mbeanName) throws InstanceNotFoundException

      指定されたMBeanのクラスのロードに使用されたClassLoaderを返します。

      パラメータ:
      mbeanName - MBeanのObjectName。
      戻り値:
      このMBean用のClassLoader。 MBeanの実際のClassLoaderがlで、戻り値がrの場合、次のいずれかの条件が成立する。 つまり、ClassLoaderは、セキュリティまたはその他の理由でほかのClassLoaderにラップされる可能性があるということです。
      例外:
      InstanceNotFoundException - 指定されたMBeanが見つからない場合。
    • getClassLoader

      ClassLoader getClassLoader​(ObjectName loaderName) throws InstanceNotFoundException

      指定されたClassLoaderを返します。

      パラメータ:
      loaderName - ClassLoaderのObjectName。 nullの場合、MBeanサーバー固有のClassLoaderが返される。
      戻り値:
      指定のClassLoader。 その名前の実際のClassLoaderがlで、戻り値がrの場合、次のいずれかの条件が成立する。 つまり、ClassLoaderは、セキュリティまたはその他の理由でほかのClassLoaderにラップされる可能性があるということです。
      例外:
      InstanceNotFoundException - 指定されたClassLoaderが見つからない場合。
    • getClassLoaderRepository

      ClassLoaderRepository getClassLoaderRepository()

      このMBeanServerのClassLoaderRepositoryを返します。

      戻り値:
      このMBeanServerのClassLoaderRepository。