モジュール java.management

パッケージ javax.management.openmbean

公開データ型とOpen MBean記述子クラスを提供します。 Open MBeanはMBeanの一種であり、その属性およびオペレーション・パラメータの型と戻り値は、いくつかの事前定義済みのJavaクラスを使って構築されます。 Open MBeanは、アプリケーション固有の型(非Javaプログラムを含む)に必ずしもアクセスできるとはかぎらないリモート管理プログラムを使って、オペレーションを簡便化します。

すべてのMBeanは、MBean自体の情報とその属性、オペレーション、コンストラクタ、および通知を備えたMBeanInfoを持ちます。 Open MBeanでは、このMBeanInfoは、通常OpenMBeanInfoSupportのインスタンスになることにより、OpenMBeanInfoインタフェースを実装します。

Open MBeanのMBeanInfo.getAttributesによって返される属性情報は、OpenMBeanAttributeInfoを実装するオブジェクト(通常OpenMBeanAttributeInfoSupportのインスタンス)の配列になります。 OpenMBeanAttributeInfoは、属性に関する一般情報に加えて、属性のOpenTypeを指定します。 可能なOpenType値は事前に定義されているため、リモート・マネージャはこれらを認識します。

オペレーションおよびコンストラクタのパラメータ型、さらにはオペレーションの戻り型についても、同じことが言えます。

getType()によって返される属性のJava言語型と、getOpenType()によって返されるそのOpenTypeには違いがあります。 たとえば、Java言語型がjava.lang.Stringの場合、OpenTypeSimpleType.Stringになります。 Java言語型がCompositeDataの場合、OpenTypeは属性のCompositeDataインスタンス内の項目を記述するCompositeTypeになります。

デフォルト値と制約

Open MBeanでは、属性およびパラメータは、関連付けられたデフォルト値や制約を OpenMBeanAttributeInfoまたはOpenMBeanParameterInfo内に保持できます。 これらの制約を指定するには、2つの方法があります。 値は、OpenMBeanAttributeInfoSupportまたはOpenMBeanParameterInfoSupportのコンストラクタの1つ(OpenMBeanParameterInfoSupport( String, String, OpenType, Object, Object[])など)へのパラメータとして直接指定されます。値はコンストラクタの1つのパラメータとして指定されたDescriptorで指定されます。

Descriptorを使用する場合、次のフィールドが関連します。

  • defaultValueは、getDefaultValue()により返される値を定義します。
  • minValueは、getMinValue()により返される値を定義します。
  • maxValueは、getMaxValue()により返される値を定義します。
  • legalValuesは、getLegalValues()により返される値を定義します。

defaultValueminValueおよび maxValueの場合、関連する値はopenTypeに対応するJava型、またはその型に変換可能な文字列である必要があります。 staticメソッドvalueOf(String)が検出される場合は、そのメソッドが変換に使用されます。そのメソッドが検出されない場合、単一のStringパラメータを持つコンストラクタが検出されればそのコンストラクタが使用され、そうでない場合は変換が失敗します。

legalValuesでは、関連する値は配列またはSetである必要があります。また、配列またはセットの要素は、defaultValueなどに対して記述された方法で変換可能でなければいけません。

これらのフィールドでは、次の条件を満たす必要があります。

  • 値は、すでに説明したように、適切な型の値か、適切な型に変換可能な文字列である必要があります。
  • legalValuesが存在する場合は、 minValuemaxValueも存在してはいけません。
  • defaultValueが存在する場合、legalValuesminValuemaxValueのいずれかが存在するなら、そこで定義された制約を満たしている必要があります。
  • minValuemaxValueの両方が存在する場合、minValuemaxValueより大きくてはいけません。
導入されたバージョン:
1.5
関連項目:
JMX仕様、バージョン1.4