A MBean定義ファイル(MDF)要素の構文
この付録の内容は次のとおりです。
MBeanType (ルート)要素
すべてのMDFにはMBeanType
というルート要素が1つ含まれていなければなりません。この要素の構文は次のとおりです。
<MBeanType Name= string optional_attributes> subelements </MBeanType>
MBeanType
要素は、MBeanタイプのプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します。)他の属性は省略可能です。
以下の例は、MBeanType
(ルート)要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany"> <MBeanAttribute Name="MyAttr" Type="java.lang.String" Default="Hello World"/> </MBeanType>
MBeanType
(ルート)要素内に指定されている属性は、そのMBeanタイプからインスタンス化されるすべてのMBeanに適用されます。特定のMBeanインスタンスの属性をオーバーライドするには、MBeanAttribute
サブ要素で属性を指定する必要があります。「MBeanAttributeサブ要素」を参照してください。
表A-1では、MBeanType
(ルート)要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのか、それともJMXの標準属性なのかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-1 MBeanType(ルート)要素の属性
属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
---|---|---|---|
|
Oracle拡張機能 |
|
値が |
|
Oracle拡張機能 |
|
当該MBeanタイプが非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
JMX仕様 |
String型 |
当該MBeanタイプに関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 ノート: ユーザー・インタフェースに表示される説明を指定するには、 |
|
JMX仕様 |
String型 |
ユーザー・インタフェースに表示されるMBeanタイプのインスタンス識別用の名前。タイプXのインスタンスの場合は、デフォルト |
|
Oracle拡張機能 |
パス名 |
このMBeanタイプが拡張する完全修飾MBeanタイプ名。 |
|
Oracle拡張機能 |
カンマ区切り リスト |
このMBeanタイプを実装する完全修飾MBeanタイプ名からなるカンマ区切りリスト。 「Extends」も参照してください。 |
|
JMX仕様 |
String型 |
当該MBeanタイプのプログラム上の内部的な名前を指定する必須属性。 |
|
Oracle拡張機能 |
String型 |
当該MBeanタイプのパッケージ名を指定し、WebLogic MBeanMakerによって作成されるクラス・ファイルの場所を決定します。この属性を指定しない場合には、MBeanタイプはJavaデフォルト・パッケージに格納されます。 ノート: パッケージ名が異なっている限り、MBeanタイプ名は同じ名前でもかまいません。 |
|
JMX仕様 |
|
永続化がどのように行われるかを、以下のいずれかで指定します。
ノート: MBeanType要素内で指定された場合、この属性値は、個々のMBeanAttributeサブ要素内のあらゆる設定をオーバーライドします。 |
MBeanAttributeサブ要素
MBeanタイプ内の属性ごとに、MBeanAttribute
サブ要素のインスタンスを1つ記述する必要があります。MBeanAttribute
サブ要素の形式は次のとおりとします。
<MBeanAttribute Name=string optional_attributes />
MBeanAttribute
サブ要素は、MBeanタイプのJava属性のプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します。)他の属性は省略可能です。
以下の例は、MBeanType
要素内のMBeanAttribute
サブ要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany"> <MBeanAttribute Name= "WhenToCache" Type="java.lang.String" LegalValues="'cache-on-reference','cache-at-initialization','cache-never'" Default= "cache-on-reference" /> </MBeanType>
MBeanAttribute
サブ要素内に指定されている属性は、特定のMBeanインスタンスに適用されます。あるMBeanタイプからインスタンス化されるすべてのMBeanの属性を設定するには、MBeanType
(ルート)要素内に属性を指定する必要があります。「MBeanType (ルート)要素」を参照してください。
表A-2では、MBeanAttribute
サブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-2 MBeanAttributeサブ要素の属性
属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
---|---|---|---|
|
JMX仕様 |
String型 |
この属性を指定しない場合、値は |
|
Oracle拡張機能 |
|
当該MBean属性が非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
JMX仕様 |
String型 |
当該MBean属性に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 ノート: ユーザー・インタフェース内に表示される説明を指定するには、DisplayName属性を使用します。 |
|
Oracle拡張機能 |
trueまたはfalse |
動的MBeanに対する変更が、サーバーを再起動しなくても有効になります。デフォルトでは、すべてのカスタム・セキュリティ・プロバイダMBean属性は動的ではありません。 8.1および7.0では、すべてのカスタム・セキュリティ・プロバイダMBean属性は動的です。 |
|
Oracle拡張機能 |
|
値が |
|
Oracle拡張機能 |
|
WebLogic MBeanMakerで生成されるMBeanインタフェースのかわりに使用すべきインタフェースのクラス名。
Typeが |
|
JMX仕様 |
|
生成されるJavaインタフェースでMBean属性のブール値にアクセスするのに( |
|
Oracle拡張機能 |
|
現在の |
|
Oracle拡張機能 |
カンマ区切りリスト |
現在の ノート: このリスト内の要素は、サブ要素の |
|
Oracle拡張機能 |
Integer型 |
数値型のMBean属性タイプに限り、属性の最大値(その値を含む)を表す数値を指定します。この属性を指定しない場合には、値はデータ型の許容最大値まで可能です。 |
|
Oracle拡張機能 |
Integer型 |
数値型のMBean属性タイプに限り、属性の最小値(その値を含む)を表す数値を指定します。この属性を指定しない場合には、値はデータ型の許容最小値まで可能です。 |
|
JMX仕様 |
String型 |
当該MBean属性のプログラム上の内部的な名前を指定する必須属性。 |
|
JMX仕様 |
|
この属性のデータ型の完全修飾クラス名。これに対応するクラスがクラスパスに存在していなければなりません。この属性を指定しない場合、値は
|
|
JMX仕様 |
|
値が
|
MBeanConstructorサブ要素
MBeanConstructor
サブ要素は現在のところ、WebLogic MBeanMakerでは使用されておらず、Java Management eXtensions仕様に準拠し、上位互換性を保つためにサポートされているだけです。したがって、ここでは、MBeanConstructor
サブ要素(およびそれに関連するMBeanConstructorArg
サブ要素)の属性の詳細については説明を省略します。
MBeanOperationサブ要素
MBeanタイプでサポートされている操作(メソッド)ごとに、MBeanOperation
サブ要素のインスタンスを1つ記述する必要があります。MBeanOperation
の形式は次のとおりとします。
<MBeanOperation Name=string optional_attributes > <MBeanOperationArg Name=string optional_attributes /> </MBeanOperation>
MBeanOperation
サブ要素は、その操作のプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します。)他の属性は省略可能です。
MBeanOperation
要素内には、その操作(メソッド)で使用される引数ごとにMBeanOperationArg
サブ要素のインスタンスを1つ記述する必要があります。MBeanOperationArg
の形式は次のとおりとします。
<MBeanOperationArg Name=
string
optional_attributes />
Name
属性には操作の名前を指定する必要があります。MBeanOperationArg
のオプション属性はType
だけで、これは、特定タイプのJava属性の動作を指定するJavaクラス名を与えるものです。この属性を指定しない場合、値はjava.lang.String
と見なされます。
次の例は、MBeanType
要素内のMBeanOperation
サブ要素とMBeanOperationArg
サブ要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany"> <MBeanOperation Name= "findParserSelectMBeanByKey" ReturnType="XMLParserSelectRegistryEntryMBean" Description="Given a public ID, system ID, or root element tag, returns the object name of the corresponding XMLParserSelectRegistryEntryMBean." > <MBeanOperationArg Name="publicID" Type="java.lang.String"/> <MBeanOperationArg Name="systemID" Type="java.lang.String"/> <MBeanOperationArg Name="rootTag" Type="java.lang.String"/> </MBeanOperation> </MBeanType>
表A-3では、MBeanOperation
サブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-3 MBeanOperationサブ要素の属性
属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
---|---|---|---|
|
Oracle拡張機能 |
|
当該MBean操作が非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
JMX仕様 |
String型 |
当該MBean操作に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 ノート: ユーザー・インタフェース内に表示される説明を指定するには、DisplayName属性を使用します。 |
|
JMX仕様 |
String型 |
当該MBean操作のプログラム上の内部的な名前を指定する必須属性。 |
|
JMX仕様 |
String型 |
当該操作から返されるJavaオブジェクトの完全修飾クラス名を表す文字列。
|
表A-4では、MBeanOperationArg
サブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-4 MBeanOperationArgサブ要素の属性
属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
---|---|---|---|
|
JMX仕様 |
String型 |
当該MBean操作の引数に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 |
|
JMX仕様 |
String型 |
当該引数の名前を指定する必須属性。 |
|
JMX仕様 |
String型 |
当該MBean操作の引数のデータ型。この属性を指定しない場合、値は
|
MBean操作の例外
MBean定義ファイル(MDF)は、JDK例外の型またはweblogic.management.utils
例外の型のみを使用する必要があります。例A-1で示したコードの一部を次に示します。MBeanOperation
サブ要素内でMBeanException
が使用されています。
<MBeanOperation Name = "registerPredicate" ReturnType = "void" Description = "Registers a new predicate with the specified class name." > <MBeanOperationArg Name = "predicateClassName" Type = "java.lang.String" Description = "The name of the Java class that implements the predicate." /> <MBeanException>weblogic.management.utils.InvalidPredicateException</MBeanException> <MBeanException>weblogic.management.utils.AlreadyExistsException</MBeanException> </MBeanOperation>
例:有効な整形式MBean定義ファイル(MDF)
例A-1と例A-2に、この付録で説明した属性の多くを使用したMBean定義ファイル(MDF)の例を示します。例A-1には、述語を管理し、述語とそれらの引数に関するデータを読み取るMBeanタイプを生成するためのMDFを示します。例A-2には、WebLogic (デフォルト)認可プロバイダのMBeanタイプを生成するためのMDFを示します。
例A-1 PredicateEditor.xml
<?xml version="1.0" ?> <!DOCTYPE MBeanType SYSTEM "commo.dtd"> <MBeanType Name = "PredicateEditor" Package = "weblogic.security.providers.authorization" Implements = "weblogic.security.providers.authorization.PredicateReader" PersistPolicy = "OnUpdate" Abstract = "false" Description = "This MBean manages predicates and reads data about predicates and their arguments.<p>" > <MBeanOperation Name = "registerPredicate" ReturnType = "void" Description = "Registers a new predicate with the specified class name." > <MBeanOperationArg Name = "predicateClassName" Type = "java.lang.String" Description = "The name of the Java class that implements the predicate." /> <MBeanException>weblogic.management.utils.InvalidPredicateException</MBeanException> <MBeanException>weblogic.management.utils.AlreadyExistsException</MBeanException> </MBeanOperation> <MBeanOperation Name = "unregisterPredicate" ReturnType = "void" Description = "Unregisters the currently registered predicate." > <MBeanOperationArg Name = "predicateClassName" Type = "java.lang.String" Description = "The name of the Java class that implements predicate to be unregistered." /> <MBeanException>weblogic.management.utils.NotFoundException</MBeanException> </MBeanOperation> </MBeanType>
例A-2 DefaultAuthorizer.xml
<?xml version="1.0" ?> <!DOCTYPE MBeanType SYSTEM "commo.dtd"> <MBeanType Name = "DefaultAuthorizer" DisplayName = "DefaultAuthorizer" Package = "weblogic.security.providers.authorization" Extends ="weblogic.management.security.authorization.DeployableAuthorizer" Implements = "weblogic.management.security.authorization.PolicyEditor, weblogic.security.providers.authorization.PredicateEditor" PersistPolicy = "OnUpdate" Description = "This MBean represents configuration attributes for the WebLogic Authorization provider. <p>" > <MBeanAttribute Name = "ProviderClassName" Type = "java.lang.String" Writeable = "false" Default""weblogic.security.providers.authorization.DefaultAuthorizationProviderImpl"" Description = "The name of the Java class used to load the WebLogic Authorization provider." /> <MBeanAttribute Name = "Description" Type = "java.lang.String" Writeable = "false" Default = ""Weblogic Default Authorization Provider"" Description = "A short description of the WebLogic Authorization provider." /> <MBeanAttribute Name = "Version" Type = "java.lang.String" Writeable = "false" Default = ""1.0"" Description = "The version of the WebLogic Authorization provider." /> </MBeanType>