- すべての実装されたインタフェース:
- MBeanRegistration,- Relation,- RelationSupportMBean
public class RelationSupport extends Object implements RelationSupportMBean, MBeanRegistration
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オブジェクトを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 RoleResultgetAllRoles()関係に含まれるすべてのロールを返します。Map<ObjectName,List<String>>getReferencedMBeans()関係のさまざまなロールで参照されるMBeanを取得します。StringgetRelationId()関係サービス内の関係を一意に識別するために使用される関係識別子を返します。ObjectNamegetRelationServiceName()関係を処理する関係サービスのObjectNameを返します。StringgetRelationTypeName()関連付けられた関係タイプの名前を返します。List<ObjectName>getRole(String roleName)指定されたロール名のロール値を取得します。IntegergetRoleCardinality(String roleName)指定されたロール内で現在参照されているMBeanの数を返します。RoleResultgetRoles(String[] roleNameArray)指定された名前のロールの値を取得します。voidhandleMBeanUnregistration(ObjectName objectName, String roleName)ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。BooleanisInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。RoleListretrieveAllRoles()読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。voidsetRole(Role role)指定されたロールを設定します。RoleResultsetRoles(RoleList list)指定されたロールを設定します。クラス java.lang.Objectで宣言されたメソッドclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェース javax.management.MBeanRegistrationで宣言されたメソッドpostDeregister, postRegister, preDeregister, preRegisterインタフェース javax.management.relation.RelationSupportMBeanで宣言されたメソッドsetRelationServiceManagementFlag
- 
コンストラクタの詳細- 
RelationSupportpublic RelationSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList list) throws InvalidRoleValueException, IllegalArgumentExceptionRelationSupportオブジェクトを作成します。このコンストラクタは、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, IllegalArgumentExceptionRelationSupportオブジェクトを作成します。このコンストラクタは、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サーバーに登録されていない場合
- 関連項目:
- setRole(javax.management.relation.Role)
 
- 
getRolespublic RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException指定された名前のロールの値を取得します。各ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。 - 定義:
- getRoles、インタフェース:- Relation
- パラメータ:
- roleNameArray- 取得されるロールの名前から成る配列
- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
- IllegalArgumentException- ロール名がnullの場合
- RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
- 関連項目:
- setRoles(javax.management.relation.RoleList)
 
- 
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- 関係サービスに関係が追加されていない場合
- 関連項目:
- getRole(java.lang.String)
 
- 
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が追加されていない場合
- 関連項目:
- getRoles(java.lang.String[])
 
- 
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。
 
- 
isInRelationServicepublic Boolean isInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。- 定義:
- isInRelationService、インタフェース:- RelationSupportMBean
- 戻り値:
- Boolean型。オブジェクトを引き続き関係サービスで処理する場合はBoolean.TRUE、それ以外の場合はBoolean.FALSE
 
 
-