- すべての実装されたインタフェース:
- MBeanRegistration,- Relation,- RelationSupportMBean
RelationSupportクラスは、標準MBeanの設計パターンに準拠しています。 したがって、ユーザーは、RelationSupportオブジェクトをMBeanとしてインスタンス化し(MBeanの設計パターンに準拠しているため)、MBean Serverに登録して関係サービスに追加することができます。
また、独自のMBean関係クラスの作成時にRelationSupportを拡張して、必須インタフェース(下記参照)の実装を取得することもできます。
ユーザー関係MBeanクラス内にRelationSupportオブジェクトとなるメンバーを追加し、すべてをこのメンバーに委譲することによって必須インタフェースを実装する方法もあります。
RelationSupportは、関係サービスによって処理されるRelationインタフェースを実装します。
関係サービスにアクセスするため、MBean ServerにMBeanとして登録されている場合は、この登録先MBean Serverを取得するためのMBeanRegistrationインタフェースも実装します。
- 導入されたバージョン:
- 1.5
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) RelationSupportオブジェクトを作成します。RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list) RelationSupportオブジェクトを作成します。
- 
メソッドのサマリー修飾子と型メソッド説明関係に含まれるすべてのロールを返します。関係のさまざまなロールで参照されるMBeanを取得します。関係サービス内の関係を一意に識別するために使用される関係識別子を返します。関係を処理する関係サービスのObjectNameを返します。関連付けられた関係タイプの名前を返します。指定されたロール名のロール値を取得します。getRoleCardinality(String roleName) 指定されたロール内で現在参照されているMBeanの数を返します。指定された名前のロールの値を取得します。voidhandleMBeanUnregistration(ObjectName objectName, String roleName) ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。voidMBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。voidpostRegister(Boolean registrationDone) MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。voidMBeanサーバーから登録解除する前に、MBeanが必要なオペレーションを実行できるようにします。preRegister(MBeanServer server, ObjectName name) MBeanサーバーに登録する前に必要なオペレーションをMBeanが実行することを許可します。読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。voidこの関係を関係サービスで処理するかどうかを指定します。void指定されたロールを設定します。指定されたロールを設定します。
- 
コンストラクタの詳細- 
RelationSupportpublic RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException RelationSupportオブジェクトを作成します。このコンストラクタは、RelationSupportオブジェクトがユーザーによってMBeanとして登録されたとき、またはRelationSupportを拡張するクラスを持つユーザー関係MBeanを作成するときに使用する必要があります。 関係サービス・レベルでは何も行われません。つまり、 RelationSupportオブジェクトはRelationServiceに追加されず、適切な値が提供されたかどうかのチェックも行われません。 オブジェクトは、次の場合を除いて必ず作成されます。- 必須パラメータがすべて nullの場合- 同じ名前が2つのロールで使用されている場合 関係として処理するためには、 RelationSupportオブジェクトを関係サービス・メソッドaddRelation()を使って関係サービスに追加する必要があります。- パラメータ:
- relationId- 関係サービス内の関係を一意に識別するために使用される関係識別子- 関係サービス内で一意でなければいけません。 
- relationServiceName- 関係の登録先となる関係サービスのObjectName- 更新オペレーション(セット)をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければならない 
- relationTypeName- 関係タイプの名前。- 指定された関係サービス内で作成されたものでなければならない 
- list- 関係を初期化するためのロール(Roleオブジェクト)のリスト。- nullも可- 関連付けられた関係タイプの関係情報に準拠していなければいけません。 
- 例外:
- InvalidRoleValueException- 同じ名前が2つのロールで使用されている場合
- IllegalArgumentException- 必須パラメータ(関係ID、関係サービスObjectName、関係タイプ名)のいずれかが- nullの場合。
 
- 
RelationSupportpublic RelationSupport(String relationId, ObjectName relationServiceName, MBeanServer relationServiceMBeanServer, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentException RelationSupportオブジェクトを作成します。このコンストラクタは、RelationSupportオブジェクトへの委譲を行うことによって関係で利用できるようにする必要があるインタフェースを、ユーザー関係MBeanが実装したときに使用する必要があります。 このオブジェクトは、関係を処理する関係サービスを認識する必要があります。 したがって、この関係サービスの登録先のMBean Serverも認識する必要があります。 制限により、関係MBeanは、それを処理する関係サービスと同じMBeanサーバーに登録する必要があります。 このため、ユーザー関係MBeanを作成し、登録する必要があります。ユーザー関係MBeanの登録後、識別されたMBeanサーバー内部で、ラップされたRelationSupportオブジェクトを作成できます。 関係サービス・レベルでは何も行われません。つまり、 RelationSupportオブジェクトはRelationServiceに追加されず、適切な値が提供されたかどうかのチェックも行われません。 オブジェクトは、次の場合を除いて必ず作成されます。- 必須パラメータがすべて nullの場合- 同じ名前が2つのロールで使用されている場合 関係として処理するためには、 RelationSupportオブジェクトを関係サービス・メソッドaddRelation()を使って関係サービスに追加する必要があります。- パラメータ:
- relationId- 関係サービス内の関係を一意に識別するために使用される関係識別子- 関係サービス内で一意でなければいけません。 
- relationServiceName- 関係の登録先となる関係サービスのObjectName- 更新オペレーション(セット)をチェックする必要があるため、指定された関係の型定義を認識する関係サービスでなければならない 
- relationServiceMBeanServer- MBeanのラップが登録されている、またはこれから登録されるMBeanサーバー。- 関連サービスが登録されている、またはこれから登録されるMBean Serverでなければならない 
- relationTypeName- 関係タイプの名前。- 指定された関係サービス内で作成されたものでなければならない 
- list- 関係を初期化するためのロール(Roleオブジェクト)のリスト。- nullも可- 関連付けられた関係タイプの関係情報に準拠していなければいけません。 
- 例外:
- InvalidRoleValueException- 同じ名前が2つのロールで使用されている場合
- IllegalArgumentException- 必須パラメータ(関係ID、関係サービスObjectName、関係サービスMBeanServer、関係タイプ名)のいずれかが- nullである場合。
 
 
- 
- 
メソッドの詳細- 
getRolepublic List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException 指定されたロール名のロール値を取得します。ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。 - 定義:
- getRole、インタフェース- Relation
- パラメータ:
- roleName- ロール名
- 戻り値:
- ロール値となるObjectNameオブジェクトのArrayList
- 例外:
- IllegalArgumentException- ロール名がnullの場合
- RoleNotFoundException- 次の場合:- - 指定された名前のロールが存在しない場合 - - ロールが読取り不可な場合 
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- 関連項目:
 
- 
getRolespublic RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException 指定された名前のロールの値を取得します。各ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。 - 定義:
- getRoles、インタフェース- Relation
- パラメータ:
- roleNameArray- 取得されるロールの名前から成る配列
- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
- IllegalArgumentException- ロール名がnullの場合
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- 関連項目:
 
- 
getAllRolespublic RoleResult getAllRoles() throws RelationServiceNotRegisteredException関係に含まれるすべてのロールを返します。- 定義:
- getAllRoles、インタフェース- Relation
- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと読み取れなかったロールのRoleUnresolvedListを含む。
- 例外:
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
 
- 
retrieveAllRolespublic RoleList retrieveAllRoles()読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。- 定義:
- retrieveAllRoles、インタフェース- Relation
- 戻り値:
- RoleList
 
- 
getRoleCardinalitypublic Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException 指定されたロール内で現在参照されているMBeanの数を返します。- 定義:
- getRoleCardinality、インタフェース- Relation
- パラメータ:
- roleName- ロール名
- 戻り値:
- ロール内の現在参照されているMBeanの数
- 例外:
- IllegalArgumentException- ロール名がnullの場合
- RoleNotFoundException- 指定された名前のロールが存在しない場合
 
- 
setRolepublic void setRole(Role role) throws IllegalArgumentException, RoleNotFoundException, RelationTypeNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationNotFoundException 指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。 通知を送信します。関係がMBeanであるかどうかによって、RelationNotificationの型はRELATION_BASIC_UPDATEまたはRELATION_MBEAN_UPDATEになります。 - 定義:
- setRole、インタフェース- Relation
- パラメータ:
- role- 設定されるロール(名前と新しい値)
- 例外:
- IllegalArgumentException- ロールがnullの場合
- RoleNotFoundException- 指定された名前のロールが存在しない場合、またはロールが書込み可能でない場合(ロールの初期化時には、書込みアクセス・モードのチェックは行われない)
- InvalidRoleValueException- ロールに対して提供された値が無効な場合:- - 指定された値に含まれる参照対象のMBeanの数が予想最小値より小さい場合 - - 指定された値に含まれる参照対象のMBeanの数が予想最大値を超えている場合 - - 値に含まれる参照対象のMBeanのうち1つが、そのロールのMBeanクラスのオブジェクトでない場合 - - そのロールのMBeanが存在しない場合 
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合
- RelationNotFoundException- 関係サービスに関係が追加されていない場合
- 関連項目:
 
- 
setRolespublic RoleResult setRoles(RoleList list) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException 指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。 ロールが更新されるたびに通知を送信します。関係がMBeanであるかどうかによって、RelationNotificationの型はRELATION_BASIC_UPDATEまたはRELATION_MBEAN_UPDATEになります。 - 定義:
- setRoles、インタフェース- Relation
- パラメータ:
- list- 設定されるロールのリスト
- 戻り値:
- RoleResultオブジェクト。設定に成功したロールのRoleListと設定されなかったロールのRoleUnresolvedListを含む
- 例外:
- IllegalArgumentException- ロール・リストがnullの場合
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合
- RelationNotFoundException- 関係サービスに関係MBeanが追加されていない場合
- 関連項目:
 
- 
handleMBeanUnregistrationpublic void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。 このメソッドは、ユーザーからは呼び出されません。 現在の実装は、現在の値(参照対象のMBeanのObjectNameのリスト)を使ってロールを設定します。登録解除されているものは使用しません。 - 定義:
- handleMBeanUnregistration、インタフェース- Relation
- パラメータ:
- objectName- 登録解除されたMBeanのObjectName
- roleName- MBeanの参照に使用されるロール名
- 例外:
- IllegalArgumentException- パラメータがnullの場合
- RoleNotFoundException- 関係内にロールが存在しないか、書込み不可である場合
- InvalidRoleValueException- ロール値が関連するロール情報に準拠していない場合(関係サービスから呼び出された場合は起こり得ない条件)
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- RelationTypeNotFoundException- 関係サービスに関係タイプが宣言されていない場合
- RelationNotFoundException- このメソッドが、関係サービスに追加されていない関係MBeanに対して呼び出された場合
 
- 
getReferencedMBeanspublic Map<ObjectName,List<String>> getReferencedMBeans()関係のさまざまなロールで参照されるMBeanを取得します。- 定義:
- getReferencedMBeans、インタフェース- Relation
- 戻り値:
- HashMapマッピング:
 ObjectName→String (ロール名)から成るArrayList 
 
- 
getRelationTypeNamepublic String getRelationTypeName()関連付けられた関係タイプの名前を返します。- 定義:
- getRelationTypeName、インタフェース- Relation
- 戻り値:
- 関係タイプの名前
 
- 
getRelationServiceNamepublic ObjectName getRelationServiceName()関係を処理する関係サービスのObjectNameを返します。- 定義:
- getRelationServiceName、インタフェース- Relation
- 戻り値:
- 関係サービスのObjectName。
 
- 
getRelationIdpublic String getRelationId()関係サービス内の関係を一意に識別するために使用される関係識別子を返します。- 定義:
- getRelationId、インタフェース- Relation
- 戻り値:
- 関係ID。
 
- 
preRegisterpublic ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception 次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーに登録する前に必要なオペレーションをMBeanが実行することを許可します。 MBeanの名前を指定しないと、MBeanにより、登録用の名前が提供されます。 例外がスローされた場合、MBeanはMBeanサーバーに登録されません。- 定義:
- preRegister、インタフェース- MBeanRegistration
- パラメータ:
- server- MBeanサーバー。MBeanはここに登録される。
- name- MBeanのオブジェクト名。- MBeanServerインタフェース内の- createMBeanまたは- registerMBeanメソッドのnameパラメータがnullの場合、この名前もnullになる。 この場合、このメソッドは、新しいMBean用にnull以外のObjectNameを必ず返す。
- 戻り値:
- MBeanの登録名。 nullは指定できない。 nameパラメータがnull以外の場合、通常は値が返されるが、これは必須ではない。
- 例外:
- Exception- この例外は、MBeanサーバーにキャッチされ、- MBeanRegistrationExceptionとして再スローされる。
 
- 
postRegisterpublic void postRegister(Boolean registrationDone) 次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が RuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postRegisterで例外をスローしてもMBeanの状態は変化しません。MBeanがすでに登録されている(registrationDoneがtrueである)場合、MBeanの登録は解除されません。createMBean()またはregisterMBean()を呼び出すコードでは、このような例外が発行されたときにMBeanの登録が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostRegisterの実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
- postRegister、インタフェース- MBeanRegistration
- パラメータ:
- registrationDone- MBeanがMBeanサーバーに正常に登録されたかどうかを示す。 登録に失敗した場合の値はfalse。
 
- 
preDeregisterpublic void preDeregister() throws Exception次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーから登録解除する前に、MBeanが必要なオペレーションを実行できるようにします。- 定義:
- preDeregister、インタフェース- MBeanRegistration
- 例外:
- Exception- この例外は、MBeanサーバーにキャッチされ、- MBeanRegistrationExceptionとして再スローされる。
 
- 
postDeregisterpublic void postDeregister()次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が RuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postDeregisterで例外をスローしてもMBeanの状態は変化しません。MBeanはすでに正常に登録解除されており、その状態のままになります。unregisterMBean()を呼び出すコードでは、MBeanの登録解除が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostDeregisterの実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
- postDeregister、インタフェース- MBeanRegistration
 
- 
isInRelationServicepublic Boolean isInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。- 定義:
- isInRelationService、インタフェース- RelationSupportMBean
- 戻り値:
- Boolean型。オブジェクトを引き続き関係サービスで処理する場合はBoolean.TRUE、それ以外の場合はBoolean.FALSE
 
- 
setRelationServiceManagementFlagpublic void setRelationServiceManagementFlag(Boolean flag) throws IllegalArgumentException インタフェースからコピーされた説明:RelationSupportMBeanこの関係を関係サービスで処理するかどうかを指定します。 関係サービスは管理インタフェースを使用して関係にアクセスするので、このメソッドは公開の必要があります。 このメソッドの使用は推奨されていません。 たとえ使用しても、関係サービス内の関係オブジェクトの登録に影響はありませんが、誤った情報が提供される恐れがあるからです。 - 定義:
- setRelationServiceManagementFlag、インタフェース- RelationSupportMBean
- パラメータ:
- flag- 関係を関係サービスで処理するかどうか
- 例外:
- IllegalArgumentException- パラメータがnullの場合
 
 
-