- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- javax.management.relation.RelationService
-
- すべての実装されたインタフェース:
EventListener,MBeanRegistration,NotificationBroadcaster,NotificationEmitter,NotificationListener,RelationServiceMBean
public class RelationService extends NotificationBroadcasterSupport implements RelationServiceMBean, MBeanRegistration, NotificationListener
関係サービスは、関係タイプと関係を作成および削除し、整合性を処理し、およびクエリー・メカニズムを提供します。関係サービスは、関係の削除時に通知を送信するため、NotificationBroadcasterSupportを拡張することによってNotificationBroadcasterを実装します。
また、関係ロール内の参照対象のMBeanおよび関係MBeanの登録解除に関する通知を受信できるようにするため、NotificationListenerインタフェースを実装します。
さらに、ObjectNameとMBean Serverを取得できるように、MBeanRegistrationインタフェースを実装します。
- 導入されたバージョン:
- 1.5
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 RelationService(boolean immediatePurgeFlag)コンストラクタです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddRelation(ObjectName relationObjectName)ユーザーによって作成されてMBean Serverに登録されるMBeanを、関係として関係サービスに追加します。voidaddRelationType(RelationType relationTypeObj)指定されたオブジェクトを関係タイプとして追加します。IntegercheckRoleReading(String roleName, String relationTypeName)指定された型の関係で、指定されたRoleの読取りが可能かどうかをチェックします。IntegercheckRoleWriting(Role role, String relationTypeName, Boolean initFlag)指定された型の関係で、指定されたRoleの設定が可能かどうかをチェックします。voidcreateRelation(String relationId, String relationTypeName, RoleList roleList)指定された関係タイプの単純な関係(RelationSupportオブジェクト)を作成し、これを関係サービスに追加します。voidcreateRelationType(String relationTypeName, RoleInfo[] roleInfoArray)RoleInfoオブジェクトから提供されたロール情報を使って、関係タイプ(RelationTypeSupportオブジェクト)を作成し、関係サービスへ追加します。Map<ObjectName,List<String>>findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName)関係内の指定されたMBeanに関連付けられたMBeanを取得します。Map<String,List<String>>findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName)指定されたMBeanが参照される関係を取得します。List<String>findRelationsOfType(String relationTypeName)指定された型の関係の関係IDを返します。List<String>getAllRelationIds()関係サービスによって処理されるすべての関係のすべての関係IDを返します。List<String>getAllRelationTypeNames()既知のすべての関係タイプの名前を取得します。RoleResultgetAllRoles(String relationId)関係に含まれるすべてのロールを返します。MBeanNotificationInfo[]getNotificationInfo()送信される通知のJavaクラス名と通知タイプを含むNotificationInfoオブジェクトを返します。booleangetPurgeFlag()関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。Map<ObjectName,List<String>>getReferencedMBeans(String relationId)関係のさまざまなロールで参照されるMBeanを取得します。StringgetRelationTypeName(String relationId)指定された関係の関係タイプの名前を返します。List<ObjectName>getRole(String relationId, String roleName)指定された関係に含まれる指定されたロール名のロール値を取得します。IntegergetRoleCardinality(String relationId, String roleName)指定されたロール内で現在参照されているMBeanの数を取得します。RoleInfogetRoleInfo(String relationTypeName, String roleInfoName)指定された関係タイプの指定されたロール名のロール情報を取得します。List<RoleInfo>getRoleInfos(String relationTypeName)指定された関係タイプのロール情報(RoleInfoオブジェクト)のリストを取得します。RoleResultgetRoles(String relationId, String[] roleNameArray)指定された関係に含まれる指定された名前のロールの値を取得します。voidhandleNotification(Notification notif, Object handback)JMX通知が発生したとき呼び出されます。BooleanhasRelation(String relationId)関係サービス内に指定された関係IDで識別される関係があるかどうかをチェックします。voidisActive()関係サービスがアクティブかどうかをチェックします。StringisRelation(ObjectName objectName)MBeanが関係として関係サービスに追加されている場合、指定されたObjectNameに関連付けられる関係IDを返します。ObjectNameisRelationMBean(String relationId)関係がMBean (ユーザーによって作成され、関係として関係サービスに追加されたもの)によって表される場合、MBeanのObjectNameを返します。voidpurgeRelations()関係をパージします。voidremoveRelation(String relationId)指定された関係タイプを関係サービスから削除します。voidremoveRelationType(String relationTypeName)指定された関係タイプを関係サービスから削除します。voidsendRelationCreationNotification(String relationId)関係作成の通知(RelationNotification)を送信します。voidsendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList)関係削除の通知(RelationNotification)を送信します。voidsendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue)指定された関係内のロール更新の通知(RelationNotification)を送信します。voidsetPurgeFlag(boolean purgeFlag)関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。voidsetRole(String relationId, Role role)指定された関係内の指定されたロールを設定します。RoleResultsetRoles(String relationId, RoleList roleList)指定された関係内の指定されたロールを設定します。voidupdateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue)指定された関係内の指定されたロールを更新するため、関係サービス・ロール・マップの更新を処理します。-
インタフェース javax.management.MBeanRegistrationで宣言されたメソッド
postDeregister, postRegister, preDeregister, preRegister
-
インタフェース javax.management.NotificationBroadcasterで宣言されたメソッド
removeNotificationListener
-
クラス javax.management.NotificationBroadcasterSupportで宣言されたメソッド
addNotificationListener, handleNotification, sendNotification
-
インタフェース javax.management.NotificationEmitterで宣言されたメソッド
removeNotificationListener
-
-
-
-
メソッドの詳細
-
isActive
public void isActive() throws RelationServiceNotRegisteredException関係サービスがアクティブかどうかをチェックします。 現在、関係サービスをMBean Serverに登録する必要があります。- 定義:
isActive、インタフェース:RelationServiceMBean- 例外:
RelationServiceNotRegisteredException- 関係サービスが未登録の場合
-
getPurgeFlag
public boolean getPurgeFlag()
関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。trueの場合、ただちにパージを行う必要があります。
- 定義:
getPurgeFlag、インタフェース:RelationServiceMBean- 戻り値:
- 自動的にパージが行われる場合はtrue
- 関連項目:
setPurgeFlag(boolean)
-
setPurgeFlag
public void setPurgeFlag(boolean purgeFlag)
関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。trueの場合、ただちにパージを行う必要があります。
- 定義:
setPurgeFlag、インタフェース:RelationServiceMBean- パラメータ:
purgeFlag- フラグ- 関連項目:
getPurgeFlag()
-
createRelationType
public void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
RoleInfoオブジェクトから提供されたロール情報を使って、関係タイプ(RelationTypeSupportオブジェクト)を作成し、関係サービスへ追加します。- 定義:
createRelationType、インタフェース:RelationServiceMBean- パラメータ:
relationTypeName- 関係タイプの名前roleInfoArray- ロール情報の配列- 例外:
IllegalArgumentException- パラメータがnullの場合InvalidRelationTypeException- 次の場合:- 同じ名前の関係タイプがすでに存在する場合
- 同じ名前が2つの異なったロール情報で使用されている場合
- ロール情報が提供されなかった場合
- ロール情報としてnullが提供された場合
-
addRelationType
public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
指定されたオブジェクトを関係タイプとして追加します。 このオブジェクトは、RelationTypeインタフェースを実装する必要があります。- 定義:
addRelationType、インタフェース:RelationServiceMBean- パラメータ:
relationTypeObj- 関係タイプ・オブジェクト(RelationTypeインタフェースを実装)- 例外:
IllegalArgumentException- パラメータがnullである場合、またはrelationTypeObj.getRelationTypeName()がnullを返す場合InvalidRelationTypeException- 次の場合:- 同じ名前が2つの異なったロールで使用されている場合
- ロール情報が提供されなかった場合
- ロール情報としてnullが提供された場合
- 同じ名前の関係タイプがすでに存在する場合
-
getAllRelationTypeNames
public List<String> getAllRelationTypeNames()
既知のすべての関係タイプの名前を取得します。- 定義:
getAllRelationTypeNames、インタフェース:RelationServiceMBean- 戻り値:
- 関係タイプの名前(String)のArrayList
-
getRoleInfos
public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
指定された関係タイプのロール情報(RoleInfoオブジェクト)のリストを取得します。- 定義:
getRoleInfos、インタフェース:RelationServiceMBean- パラメータ:
relationTypeName- 関係タイプの名前- 戻り値:
- RoleInfoのArrayList
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- その名前の関係タイプが存在しない場合
-
getRoleInfo
public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
指定された関係タイプの指定されたロール名のロール情報を取得します。- 定義:
getRoleInfo、インタフェース:RelationServiceMBean- パラメータ:
relationTypeName- 関係タイプの名前roleInfoName- ロール名- 戻り値:
- RoleInfoオブジェクト
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- 関係サービスにとって未知の関係タイプである場合RoleInfoNotFoundException- 関係タイプにロールが含まれていない場合
-
removeRelationType
public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
指定された関係タイプを関係サービスから削除します。その型の関係オブジェクトが関係サービスから削除されます。
- 定義:
removeRelationType、インタフェース:RelationServiceMBean- パラメータ:
relationTypeName- 削除される関係タイプの名前- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- その名前の関係タイプが存在しない場合
-
createRelation
public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
指定された関係タイプの単純な関係(RelationSupportオブジェクト)を作成し、これを関係サービスに追加します。ロールはパラメータに指定されたロール・リストに従って初期化されます。 この方法で初期化されないロールは、ObjectNameの空のArrayListに設定されます。
RELATION_BASIC_CREATION型のRelationNotificationが送信されます。
- 定義:
createRelation、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係サービス内の関係を一意に識別するために使用される関係識別子relationTypeName- 関係サービス内に作成する必要がある関係タイプの名前roleList- 関係のロールを初期化するためのロール・リスト(nullも可)- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合。ただし、ロールの初期化が行われない場合nullにすることができるロール・リストを除くRoleNotFoundException- 関係タイプ内に存在しないロールに値が提供された場合InvalidRelationIdException- 関係IDがすでに使用されている場合RelationTypeNotFoundException- 関係サービスにとって未知の関係タイプである場合InvalidRoleValueException- 次の場合:- 同じ名前が2つの異なったロールで使用されている場合
- 指定された値に含まれる参照対象のMBeanの数が予想最小値より小さい場合
- 指定された値に含まれる参照対象のMBeanの数が予想最大値を超えている場合
- 値に含まれる参照対象のMBeanのうち1つが、そのロールのMBeanクラスのオブジェクトでない場合
- そのロールのMBeanが存在しない場合
-
addRelation
public void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
ユーザーによって作成されてMBean Serverに登録されるMBeanを、関係として関係サービスに追加します。MBeanを関係として追加するためには、次の条件が満たされている必要があります。
- Relationインタフェースを実装している
- RelationService ObjectName用として現在の関係サービスのObjectNameを持っている
- 現在の関係サービス内で一意かつ未使用の関係IDを持っている
- 関係タイプ用として関係サービス内で作成された関係タイプを持っている
- 関係タイプ内で提供されたロール情報に適合するロールを持っている
- 定義:
addRelation、インタフェース:RelationServiceMBean- パラメータ:
relationObjectName- 追加される関係MBeanのObjectName- 例外:
IllegalArgumentException- パラメータがnullの場合RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合NoSuchMethodException- MBeanがRelationインタフェースを実装していない場合InvalidRelationIdException- 次の場合:- MBean内に関係識別子が存在しない
- 関係識別子が関係サービスですでに使用されている場合
InstanceNotFoundException- 指定されたObjectNameのMBeanが登録されていない場合InvalidRelationServiceException- 次の場合:- MBean内に関係サービス名が存在しない場合
- MBean内の関係サービス名が現在の関係サービスの関係サービス名でない場合
RelationTypeNotFoundException- 次の場合:- MBean内に関係タイプ名が存在しない場合
- MBean内の関係タイプ名が関係サービス内に作成された関係タイプに対応していない場合
InvalidRoleValueException- 次の場合:- ロールに含まれる参照対象のMBeanの数が予想最小値より小さい場合
- ロールに含まれる参照対象のMBeanの数が予想最大値を超えている場合
- 値に含まれる参照対象のMBeanのうち1つが、そのロールのMBeanクラスのオブジェクトでない場合
- ロールに提供されたMBeanが存在しない場合
RoleNotFoundException- 関係タイプ内に存在しないロールに値が提供された場合
-
isRelationMBean
public ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
関係がMBean (ユーザーによって作成され、関係として関係サービスに追加されたもの)によって表される場合、MBeanのObjectNameを返します。- 定義:
isRelationMBean、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係を識別する関係ID- 戻り値:
- 対応する関係MBeanのObjectName。関係がMBeanでない場合はnull
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- このIDに関係が関連付けられていない場合
-
isRelation
public String isRelation(ObjectName objectName) throws IllegalArgumentException
MBeanが関係として関係サービスに追加されている場合、指定されたObjectNameに関連付けられる関係IDを返します。- 定義:
isRelation、インタフェース:RelationServiceMBean- パラメータ:
objectName- 仮定された関係のObjectName- 戻り値:
- 関係ID (String)。ObjectNameが関係サービスによって処理される関係でない場合はnull
- 例外:
IllegalArgumentException- パラメータがnullの場合
-
hasRelation
public Boolean hasRelation(String relationId) throws IllegalArgumentException
関係サービス内に指定された関係IDで識別される関係があるかどうかをチェックします。- 定義:
hasRelation、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係を識別する関係ID- 戻り値:
- boolean型。関係が存在する場合はtrue、存在しない場合はfalse
- 例外:
IllegalArgumentException- パラメータがnullの場合
-
getAllRelationIds
public List<String> getAllRelationIds()
関係サービスによって処理されるすべての関係のすべての関係IDを返します。- 定義:
getAllRelationIds、インタフェース:RelationServiceMBean- 戻り値:
- StringのArrayList
-
checkRoleReading
public Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
指定された型の関係で、指定されたRoleの読取りが可能かどうかをチェックします。- 定義:
checkRoleReading、インタフェース:RelationServiceMBean- パラメータ:
roleName- チェックされるロールの名前relationTypeName- 関係タイプの名前- 戻り値:
- 発生の可能性がある問題に対応する整数型(RoleUnresolved内の定数で表される)をラップするInteger
- ロールの読取りが可能な場合は0
- RoleStatus.NO_ROLE_WITH_NAMEに対応する整数型
- RoleStatus.ROLE_NOT_READABLEに対応する整数型
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- 関係サービスにとって未知の関係タイプである場合
-
checkRoleWriting
public Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
指定された型の関係で、指定されたRoleの設定が可能かどうかをチェックします。- 定義:
checkRoleWriting、インタフェース:RelationServiceMBean- パラメータ:
role- チェックされるロールrelationTypeName- 関係タイプの名前initFlag- ロールの初期化のためにチェックが行われたことを示すフラグ。書込みアクセスの検証は行われない- 戻り値:
- 発生の可能性がある問題に対応する整数型(RoleUnresolved内の定数で表される)をラップするInteger
- ロールの設定が可能な場合は0
- RoleStatus.NO_ROLE_WITH_NAMEに対応する整数型
- RoleStatus.ROLE_NOT_WRITABLEの整数型
- RoleStatus.LESS_THAN_MIN_ROLE_DEGREEの整数型
- RoleStatus.MORE_THAN_MAX_ROLE_DEGREEの整数型
- RoleStatus.REF_MBEAN_OF_INCORRECT_CLASSの整数型
- RoleStatus.REF_MBEAN_NOT_REGISTEREDの整数型
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- 未知の関係タイプの場合
-
sendRelationCreationNotification
public void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
関係作成の通知(RelationNotification)を送信します。 通知型は次のとおりです。- RelationNotification.RELATION_BASIC_CREATION。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_CREATION。関係が関係として追加されたMBeanである場合
ソース・オブジェクトは関係サービス自体です。
関係サービスのcreateRelation()メソッドおよびaddRelation()メソッドで呼び出されます。
- 定義:
sendRelationCreationNotification、インタフェース:RelationServiceMBean- パラメータ:
relationId- 更新された関係の関係識別子- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDの関係が存在しない場合
-
sendRoleUpdateNotification
public void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationNotFoundException
指定された関係内のロール更新の通知(RelationNotification)を送信します。 通知型は次のとおりです。- RelationNotification.RELATION_BASIC_UPDATE。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_UPDATE。関係が関係として追加されたMBeanである場合
ソース・オブジェクトは関係サービス自体です。
関係MBeanのsetRole()メソッド(指定されたロール用)およびsetRoles()メソッド(各ロール用)で呼び出されます。この実装はRelationSupportクラスで提供されます。
関係サービスのsetRole()メソッド(指定されたロール用)およびsetRoles()メソッド(各ロール用)でも呼び出せます。
- 定義:
sendRoleUpdateNotification、インタフェース:RelationServiceMBean- パラメータ:
relationId- 更新された関係の関係識別子newRole- 新しいロール(名前と新しい値)oldValue- 古いロール値(ObjectNameオブジェクトのList)- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDの関係が存在しない場合
-
sendRelationRemovalNotification
public void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
関係削除の通知(RelationNotification)を送信します。 通知型は次のとおりです。- RelationNotification.RELATION_BASIC_REMOVAL。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_REMOVAL。関係が関係として追加されたMBeanである場合
ソース・オブジェクトは関係サービス自体です。
関係サービスのremoveRelation()メソッドで呼び出されます。
- 定義:
sendRelationRemovalNotification、インタフェース:RelationServiceMBean- パラメータ:
relationId- 更新された関係の関係識別子unregMBeanList- 関係の削除の結果、登録解除されるMBeanのObjectNameのリスト(nullも可)- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDの関係が存在しない場合
-
updateRoleMap
public void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
指定された関係内の指定されたロールを更新するため、関係サービス・ロール・マップの更新を処理します。関係MBeanのsetRole()メソッド(指定されたロール用)およびsetRoles()メソッド(各ロール用)で呼び出されます。この実装はRelationSupportクラスで提供されます。
関係サービスのsetRole()メソッド(指定されたロール用)およびsetRoles()メソッド(各ロール用)でも呼び出せます。
関係サービスがMBeanの登録解除時も整合性を確保し、クエリーを実行できるようにするには、ロールの更新時にこのメソッドを呼び出す必要があります。
- 定義:
updateRoleMap、インタフェース:RelationServiceMBean- パラメータ:
relationId- 更新された関係の関係識別子newRole- 新しいロール(名前と新しい値)oldValue- 古いロール値(ObjectNameオブジェクトのList)- 例外:
IllegalArgumentException- パラメータがnullの場合RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合
-
removeRelation
public void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
指定された関係タイプを関係サービスから削除します。RelationNotification通知が送信されます。その型は次のとおりです。
- RelationNotification.RELATION_BASIC_REMOVAL。関係サービス内専用の関係である場合
- RelationNotification.RELATION_MBEAN_REMOVAL。関係がMBeanとして登録されている場合
こうした関係で参照されるMBeanの場合、何も行われません。
- 定義:
removeRelation、インタフェース:RelationServiceMBean- パラメータ:
relationId- 削除される関係の関係ID- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDに対応する関係が存在しない場合
-
purgeRelations
public void purgeRelations() throws RelationServiceNotRegisteredException関係をパージします。このメソッドは、purgeFlag値に依存します。フラグがtrueに設定されている場合は、関係内の参照対象のMBeanの登録解除を知らせる通知を受信したとき自動的に呼び出されます。フラグがfalseに設定されている場合は呼び出されません。
その場合、関係の整合性を維持するためにこのメソッドを呼び出すかどうかはユーザーが決定します。 MBeanの登録が解除された後ただちにパージが行われない場合、ObjectNameが再利用され、関係内の参照対象の別のMBeanに割り当てられるときにこのpurgeRelations()メソッドを手動で呼び出すと、問題が発生します。これは、新しいMBeanが認識されず、ObjectNameが登録解除されたMBeanに対応すると見なされるからです。
動作は、登録解除されたMBeanが参照されるロールのカーディナリティによって決定されます。
- ロール内のMBean参照を1つ削除したとき参照の数が最小値より少なくなる場合は、関係を削除する必要がある
- MBean参照を削除したあと残った参照の数がカーディナリティ範囲内である場合は、関係を保持し、handleMBeanUnregistration()コールバックを呼び出して更新する
- 定義:
purgeRelations、インタフェース:RelationServiceMBean- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
-
findReferencingRelations
public Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
指定されたMBeanが参照される関係を取得します。これは、CIMの「Reference」および「ReferenceName」オペレーションに対応します。
- 定義:
findReferencingRelations、インタフェース:RelationServiceMBean- パラメータ:
mbeanName- MBeanのObjectNamerelationTypeName- nullも可。指定した場合、検索ではそのタイプの関係のみが考慮される。 それ以外の場合、すべての関係タイプが考慮される。roleName- nullも可。指定した場合、そのロール内のMBeanが参照される関係のみが返される。 それ以外の場合、すべてのロールが考慮される。- 戻り値:
- HashMap。キーは、MBeanが参照される関係の関係ID。各キーの値はロール名のArrayList (MBeanは同じ関係の複数のロール内で参照可能)
- 例外:
IllegalArgumentException- パラメータがnullの場合
-
findAssociatedMBeans
public Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
関係内の指定されたMBeanに関連付けられたMBeanを取得します。これは、CIMのAssociatorおよびAssociatorNameオペレーションに対応します。
- 定義:
findAssociatedMBeans、インタフェース:RelationServiceMBean- パラメータ:
mbeanName- MBeanのObjectNamerelationTypeName- nullも可。指定した場合、検索ではそのタイプの関係のみが考慮される。 それ以外の場合、すべての関係タイプが考慮される。roleName- nullも可。指定した場合、そのロール内のMBeanが参照される関係のみが考慮される。 それ以外の場合、すべてのロールが考慮される。- 戻り値:
- HashMap。キーは指定されたMBeanに関連付けられたMBeanのObjectName。各キーの値は、キーMBeanが指定されたMBeanに関連付けられている関係の関係IDから成るArrayList (これらは複数の異なった関係に関連付け可能)
- 例外:
IllegalArgumentException- パラメータがnullの場合
-
findRelationsOfType
public List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
指定された型の関係の関係IDを返します。- 定義:
findRelationsOfType、インタフェース:RelationServiceMBean- パラメータ:
relationTypeName- 関係タイプの名前- 戻り値:
- 関係IDのArrayList
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationTypeNotFoundException- その名前の関係タイプが存在しない場合
-
getRole
public List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
指定された関係に含まれる指定されたロール名のロール値を取得します。- 定義:
getRole、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係IDroleName- ロール名- 戻り値:
- ロール値となるObjectNameオブジェクトのArrayList
- 例外:
RelationServiceNotRegisteredException- 関係サービスが未登録の場合IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合RoleNotFoundException- 次の場合:- 指定された名前のロールが存在しない場合
または
- ロールが読取り不可な場合
- 関連項目:
setRole(java.lang.String, javax.management.relation.Role)
-
getRoles
public RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
指定された関係に含まれる指定された名前のロールの値を取得します。- 定義:
getRoles、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係IDroleNameArray- 取得されるロールの名前から成る配列- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと取得されなかったロールのRoleUnresolvedListを含む
- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合- 関連項目:
setRoles(java.lang.String, javax.management.relation.RoleList)
-
getAllRoles
public RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
関係に含まれるすべてのロールを返します。- 定義:
getAllRoles、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係ID- 戻り値:
- RoleResultオブジェクト。取得に成功したロールのRoleListと読み取れなかったロールのRoleUnresolvedListを含む。
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合
-
getRoleCardinality
public Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
指定されたロール内で現在参照されているMBeanの数を取得します。- 定義:
getRoleCardinality、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係IDroleName- ロール名- 戻り値:
- ロール内の現在参照されているMBeanの数
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合RoleNotFoundException- 指定された名前のロールが存在しない場合
-
setRole
public void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
指定された関係内の指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
関係サービスは、関係の整合性を維持するため、参照対象のMBeanの登録解除を処理することにより、変更を追跡します。
- 定義:
setRole、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係IDrole- 設定されるロール(名前と新しい値)- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合RoleNotFoundException- ロールが存在しないか、書込み不可である場合InvalidRoleValueException- ロールに対して提供された値が無効な場合:- 指定された値に含まれる参照対象のMBeanの数が予想最小値より小さい場合
または
- 指定された値に含まれる参照対象のMBeanの数が予想最大値を超えている場合
または
- 値に含まれる参照対象のMBeanのうち1つが、そのロールのMBeanクラスのオブジェクトでない場合
または
- そのロールのMBeanが存在しない場合
- 関連項目:
getRole(java.lang.String, java.lang.String)
-
setRoles
public RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
指定された関係内の指定されたロールを設定します。関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
関係サービスは、関係の整合性を維持するため、参照対象のMBeanの登録解除を処理することにより、変更を追跡します。
- 定義:
setRoles、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係IDroleList- 設定されるロールのリスト- 戻り値:
- RoleResultオブジェクト。設定に成功したロールのRoleListと設定されなかったロールのRoleUnresolvedListを含む
- 例外:
RelationServiceNotRegisteredException- 関係サービスがMBeanサーバーに登録されていない場合IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定されたIDに対応する関係が存在しない場合- 関連項目:
getRoles(java.lang.String, java.lang.String[])
-
getReferencedMBeans
public Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
関係のさまざまなロールで参照されるMBeanを取得します。- 定義:
getReferencedMBeans、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係ID- 戻り値:
- HashMapマッピング:
ObjectName→String (ロール名)から成るArrayList
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDに対応する関係が存在しない場合
-
getRelationTypeName
public String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
指定された関係の関係タイプの名前を返します。- 定義:
getRelationTypeName、インタフェース:RelationServiceMBean- パラメータ:
relationId- 関係ID- 戻り値:
- 関連付けられた関係タイプの名前
- 例外:
IllegalArgumentException- パラメータがnullの場合RelationNotFoundException- 指定された関係IDに対応する関係が存在しない場合
-
handleNotification
public void handleNotification(Notification notif, Object handback)
JMX通知が発生したとき呼び出されます。 一般に、関係ロール内の参照対象のMBean、または関係になるMBeanの登録解除の通知を処理します。- 定義:
handleNotification、インタフェース:NotificationListener- パラメータ:
notif- 通知handback- リスナーによるMBeanエミッタの情報の関連付けに役立つ、不透明なオブジェクト(nullも使用可能)。
-
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
送信される通知のJavaクラス名と通知タイプを含むNotificationInfoオブジェクトを返します。- 定義:
getNotificationInfo、インタフェース:NotificationBroadcaster- 戻り値:
- 可能な通知の配列。
-
-