- すべての実装されたインタフェース:
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の数を返します。指定された名前のロールの値を取得します。void
handleMBeanUnregistration
(ObjectName objectName, String roleName) ロールで参照されるMBeanの登録が解除された場合に関係サービスによって使用されるコールバックです。オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。void
MBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。void
postRegister
(Boolean registrationDone) MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。void
MBeanサーバーから登録解除する前に、MBeanが必要なオペレーションを実行できるようにします。preRegister
(MBeanServer server, ObjectName name) MBeanサーバーに登録する前に必要なオペレーションをMBeanが実行することを許可します。読取りモードをチェックしないで、関係に含まれるすべてのロールを返します。void
この関係を関係サービスで処理するかどうかを指定します。void
指定されたロールを設定します。指定されたロールを設定します。
-
コンストラクタの詳細
-
RelationSupport
public 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
の場合。
-
RelationSupport
public 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
である場合。
-
-
メソッドの詳細
-
getRole
public List<ObjectName> getRole(String roleName) throws IllegalArgumentException, RoleNotFoundException, RelationServiceNotRegisteredException 指定されたロール名のロール値を取得します。ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRole
、インタフェースRelation
- パラメータ:
roleName
- ロール名- 戻り値:
- ロール値となるObjectNameオブジェクトのArrayList
- 例外:
IllegalArgumentException
- ロール名がnullの場合RoleNotFoundException
- 次の場合:- 指定された名前のロールが存在しない場合
- ロールが読取り不可な場合
RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
-
getRoles
public RoleResult getRoles(String[] roleNameArray) throws IllegalArgumentException, RelationServiceNotRegisteredException 指定された名前のロールの値を取得します。各ロールが存在し、関係タイプに従って読取り可能かどうかをチェックします。
- 定義:
getRoles
、インタフェースRelation
- パラメータ:
roleNameArray
- 取得されるロールの名前から成る配列- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
IllegalArgumentException
- ロール名がnullの場合RelationServiceNotRegisteredException
- 関係サービスがMBeanサーバーに登録されていない場合- 関連項目:
-
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
- 関係サービスに関係が追加されていない場合- 関連項目:
-
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が追加されていない場合- 関連項目:
-
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。
-
preRegister
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception 次のインタフェースからコピーされた説明:MBeanRegistration
MBeanサーバーに登録する前に必要なオペレーションを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
として再スローされる。
-
postRegister
public void postRegister(Boolean registrationDone) 次のインタフェースからコピーされた説明:MBeanRegistration
MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が
RuntimeException
またはError
をスローする場合、MBeanサーバーはRuntimeMBeanException
またはRuntimeErrorException
の内部でこれらをそれぞれ再スローします。 ただし、postRegister
で例外をスローしてもMBeanの状態は変化しません。MBeanがすでに登録されている(registrationDone
がtrue
である)場合、MBeanの登録は解除されません。createMBean()
またはregisterMBean()
を呼び出すコードでは、このような例外が発行されたときにMBeanの登録が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostRegister
の実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
postRegister
、インタフェースMBeanRegistration
- パラメータ:
registrationDone
- MBeanがMBeanサーバーに正常に登録されたかどうかを示す。 登録に失敗した場合の値はfalse。
-
preDeregister
public void preDeregister() throws Exception次のインタフェースからコピーされた説明:MBeanRegistration
MBeanサーバーから登録解除する前に、MBeanが必要なオペレーションを実行できるようにします。- 定義:
preDeregister
、インタフェースMBeanRegistration
- 例外:
Exception
- この例外は、MBeanサーバーにキャッチされ、MBeanRegistrationException
として再スローされる。
-
postDeregister
public void postDeregister()次のインタフェースからコピーされた説明:MBeanRegistration
MBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が
RuntimeException
またはError
をスローする場合、MBeanサーバーはRuntimeMBeanException
またはRuntimeErrorException
の内部でこれらをそれぞれ再スローします。 ただし、postDeregister
で例外をスローしてもMBeanの状態は変化しません。MBeanはすでに正常に登録解除されており、その状態のままになります。unregisterMBean()
を呼び出すコードでは、MBeanの登録解除が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostDeregister
の実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
postDeregister
、インタフェースMBeanRegistration
-
isInRelationService
public Boolean isInRelationService()オブジェクトを引き続き関係サービスで処理するかどうかを指定する内部フラグを返します。- 定義:
isInRelationService
、インタフェースRelationSupportMBean
- 戻り値:
- Boolean型。オブジェクトを引き続き関係サービスで処理する場合は
Boolean.TRUE
、それ以外の場合はBoolean.FALSE
-
setRelationServiceManagementFlag
public void setRelationServiceManagementFlag(Boolean flag) throws IllegalArgumentException インタフェースからコピーされた説明:RelationSupportMBean
この関係を関係サービスで処理するかどうかを指定します。
関係サービスは管理インタフェースを使用して関係にアクセスするので、このメソッドは公開の必要があります。 このメソッドの使用は推奨されていません。 たとえ使用しても、関係サービス内の関係オブジェクトの登録に影響はありませんが、誤った情報が提供される恐れがあるからです。
- 定義:
setRelationServiceManagementFlag
、インタフェースRelationSupportMBean
- パラメータ:
flag
- 関係を関係サービスで処理するかどうか- 例外:
IllegalArgumentException
- パラメータがnullの場合
-