- すべての実装されたインタフェース:
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
オブジェクトを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 RoleResult
getAllRoles()
関係に含まれるすべてのロールを返します。Map<ObjectName,List<String>>
getReferencedMBeans()
関係のさまざまなロールで参照されるMBeanを取得します。String
getRelationId()
関係サービス内の関係を一意に識別するために使用される関係識別子を返します。ObjectName
getRelationServiceName()
関係を処理する関係サービスのObjectNameを返します。String
getRelationTypeName()
関連付けられた関係タイプの名前を返します。List<ObjectName>
getRole(String roleName)
指定されたロール名のロール値を取得します。Integer
getRoleCardinality(String roleName)
指定されたロール内で現在参照されているMBeanの数を返します。RoleResult
getRoles(String[] roleNameArray)
指定された名前のロールの値を取得します。void
handleMBeanUnregistration(ObjectName objectName, String roleName)
ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。Boolean
isInRelationService()
オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。RoleList
retrieveAllRoles()
読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。void
setRole(Role role)
指定されたロールを設定します。RoleResult
setRoles(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
-
コンストラクタの詳細
-
RelationSupport
public 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
の場合。
-
RelationSupport
public 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
である場合。
-
-
メソッドの詳細
-
getRole
public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException指定されたロール名のロール値を取得します。ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRole
、インタフェース:Relation
- パラメータ:
roleName
- ロール名- 戻り値:
- ロール値となるObjectNameオブジェクトのArrayList
- 例外:
IllegalArgumentException
- ロール名がnullの場合RoleNotFoundException
- 次の場合:- 指定された名前のロールが存在しない場合
- ロールが読取り不可な場合
RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
setRole(javax.management.relation.Role)
-
getRoles
public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException指定された名前のロールの値を取得します。各ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRoles
、インタフェース:Relation
- パラメータ:
roleNameArray
- 取得されるロールの名前から成る配列- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
IllegalArgumentException
- ロール名がnullの場合RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
setRoles(javax.management.relation.RoleList)
-
getAllRoles
public RoleResult getAllRoles() throws RelationServiceNotRegisteredException関係に含まれるすべてのロールを返します。- 定義:
getAllRoles
、インタフェース:Relation
- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと読み取れなかったロールのRoleUnresolvedListを含む。
- 例外:
RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合
-
retrieveAllRoles
public RoleList retrieveAllRoles()読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。- 定義:
retrieveAllRoles
、インタフェース:Relation
- 戻り値:
- RoleList
-
getRoleCardinality
public Integer getRoleCardinality(String roleName) throws IllegalArgumentException, RoleNotFoundException指定されたロール内で現在参照されているMBeanの数を返します。- 定義:
getRoleCardinality
、インタフェース:Relation
- パラメータ:
roleName
- ロール名- 戻り値:
- ロール内の現在参照されているMBeanの数
- 例外:
IllegalArgumentException
- ロール名がnullの場合RoleNotFoundException
- 指定された名前のロールが存在しない場合
-
setRole
public 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)
-
setRoles
public 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[])
-
handleMBeanUnregistration
public void handleMBeanUnregistration(ObjectName objectName, String roleName) throws IllegalArgumentException, RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundExceptionロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。関係サービスは、このメソッドを呼び出して、関係に、登録解除の影響を反映するためのアクションを取らせます。
このメソッドは、ユーザーからは呼び出されません。
現在の実装は、現在の値(参照対象のMBeanのObjectNameのリスト)を使ってロールを設定します。登録解除されているものは使用しません。
- 定義:
handleMBeanUnregistration
、インタフェース:Relation
- パラメータ:
objectName
- 登録解除されたMBeanのObjectNameroleName
- MBeanの参照に使用されるロール名- 例外:
IllegalArgumentException
- パラメータがnullの場合RoleNotFoundException
- 関係内にロールが存在しないか、書込み不可である場合InvalidRoleValueException
- ロール値が関連するロール情報に準拠していない場合(関係サービスから呼び出された場合は起こり得ない条件)RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合RelationTypeNotFoundException
- 関係サービスに関係タイプが宣言されていない場合RelationNotFoundException
- このメソッドが、関係サービスに追加されていない関係MBeanに対して呼び出された場合
-
getReferencedMBeans
public Map<ObjectName,List<String>> getReferencedMBeans()関係のさまざまなロールで参照されるMBeanを取得します。- 定義:
getReferencedMBeans
、インタフェース:Relation
- 戻り値:
- HashMapマッピング:
ObjectName→String (ロール名)から成るArrayList
-
getRelationTypeName
public String getRelationTypeName()関連付けられた関係タイプの名前を返します。- 定義:
getRelationTypeName
、インタフェース:Relation
- 戻り値:
- 関係タイプの名前
-
getRelationServiceName
public ObjectName getRelationServiceName()関係を処理する関係サービスのObjectNameを返します。- 定義:
getRelationServiceName
、インタフェース:Relation
- 戻り値:
- 関係サービスのObjectName。
-
getRelationId
public String getRelationId()関係サービス内の関係を一意に識別するために使用される関係識別子を返します。- 定義:
getRelationId
、インタフェース:Relation
- 戻り値:
- 関係ID。
-
isInRelationService
public Boolean isInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。- 定義:
isInRelationService
、インタフェース:RelationSupportMBean
- 戻り値:
- Boolean型。オブジェクトを引き続き関係サービスで処理する場合は
Boolean.TRUE
、それ以外の場合はBoolean.FALSE
-