public interface RelationServiceMBean
修飾子と型 | メソッドと説明 |
---|---|
void |
addRelation(ObjectName relationObjectName)
ユーザーによって作成されて MBean Server に登録される MBean を、関係として関係サービスに追加します。
|
void |
addRelationType(RelationType relationTypeObj)
指定されたオブジェクトを関係タイプとして追加します。
|
Integer |
checkRoleReading(String roleName, String relationTypeName)
指定された型の関係で、指定された Role の読み取りが可能かどうかをチェックします。
|
Integer |
checkRoleWriting(Role role, String relationTypeName, Boolean initFlag)
指定された型の関係で、指定された Role の設定が可能かどうかをチェックします。
|
void |
createRelation(String relationId, String relationTypeName, RoleList roleList)
指定された関係タイプの単純な関係 (RelationSupport オブジェクト) を作成し、これを関係サービスに追加します。
|
void |
createRelationType(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()
既知のすべての関係タイプの名前を取得します。
|
RoleResult |
getAllRoles(String relationId)
関係に含まれるすべてのロールを返します。
|
boolean |
getPurgeFlag()
関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。
|
Map<ObjectName,List<String>> |
getReferencedMBeans(String relationId)
関係のさまざまなロールで参照される MBean を取得します。
|
String |
getRelationTypeName(String relationId)
指定された関係の関係タイプの名前を返します。
|
List<ObjectName> |
getRole(String relationId, String roleName)
指定された関係に含まれる指定されたロール名のロール値を取得します。
|
Integer |
getRoleCardinality(String relationId, String roleName)
指定されたロール内で現在参照されている MBean の数を取得します。
|
RoleInfo |
getRoleInfo(String relationTypeName, String roleInfoName)
指定された関係タイプの指定されたロールの情報を取得します。
|
List<RoleInfo> |
getRoleInfos(String relationTypeName)
指定された関係タイプのロール情報 (RoleInfo オブジェクト) のリストを取得します。
|
RoleResult |
getRoles(String relationId, String[] roleNameArray)
指定された関係に含まれる指定された名前のロールの値を取得します。
|
Boolean |
hasRelation(String relationId)
関係サービス内に指定された関係 ID で識別される関係があるかどうかをチェックします。
|
void |
isActive()
関係サービスがアクティブかどうかをチェックします。
|
String |
isRelation(ObjectName objectName)
MBean が関係として関係サービスに追加されている場合、指定された ObjectName に関連付けられる関係 ID を返します。
|
ObjectName |
isRelationMBean(String relationId)
関係が MBean (ユーザーによって作成され、関係として関係サービスに追加されたもの) によって表される場合、MBean の ObjectName を返します。
|
void |
purgeRelations()
関係をパージします。
|
void |
removeRelation(String relationId)
指定された関係タイプを関係サービスから削除します。
|
void |
removeRelationType(String relationTypeName)
指定された関係タイプを関係サービスから削除します。
|
void |
sendRelationCreationNotification(String relationId)
関係作成の通知 (RelationNotification) を送信します。
|
void |
sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList)
関係削除の通知 (RelationNotification) を送信します。
|
void |
sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldRoleValue)
指定された関係内のロール更新の通知 (RelationNotification) を送信します。
|
void |
setPurgeFlag(boolean purgeFlag)
関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。
|
void |
setRole(String relationId, Role role)
指定された関係内の指定されたロールを設定します。
|
RoleResult |
setRoles(String relationId, RoleList roleList)
指定された関係内の指定されたロールを設定します。
|
void |
updateRoleMap(String relationId, Role newRole, List<ObjectName> oldRoleValue)
指定された関係内の指定されたロールを更新するため、関係サービスロールマップの更新を処理します。
|
void isActive() throws RelationServiceNotRegisteredException
RelationServiceNotRegisteredException
- 関係サービスが未登録の場合boolean getPurgeFlag()
true の場合、ただちにパージを行う必要があります。
setPurgeFlag(boolean)
void setPurgeFlag(boolean purgeFlag)
true の場合、ただちにパージを行う必要があります。
purgeFlag
- フラグgetPurgeFlag()
void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeName
- 関係タイプの名前roleInfoArray
- ロール情報の配列IllegalArgumentException
- パラメータが null の場合InvalidRelationTypeException
- 次の場合:
- 同じ名前の関係タイプがすでに存在する場合
- 同じ名前が 2 つの異なったロール情報で使用されている場合
- ロール情報が提供されなかった場合
- ロール情報として null が提供された場合
void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeObj
- 関係タイプオブジェクト (RelationType インタフェースを実装)IllegalArgumentException
- パラメータが null である場合、または relationTypeObj.getRelationTypeName()
が null を返す場合InvalidRelationTypeException
- 同じ名前の関係タイプがすでに存在する場合List<String> getAllRelationTypeNames()
List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 関係タイプの名前IllegalArgumentException
- パラメータが null の場合RelationTypeNotFoundException
- その名前の関係タイプが存在しない場合RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
relationTypeName
- 関係タイプの名前roleInfoName
- ロール名IllegalArgumentException
- パラメータが null の場合RelationTypeNotFoundException
- 関係サービスにとって未知の関係タイプである場合RoleInfoNotFoundException
- 関係タイプにロールが含まれていない場合void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
その型の関係オブジェクトが関係サービスから削除されます。
relationTypeName
- 削除される関係タイプの名前RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RelationTypeNotFoundException
- その名前の関係タイプが存在しない場合void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
ロールはパラメータに指定されたロールリストに従って初期化されます。この方法で初期化されないロールは、ObjectName の空の ArrayList に設定されます。
RELATION_BASIC_CREATION 型の RelationNotification が送信されます。
relationId
- 関係サービス内の関係を一意に識別するために使用される関係識別子relationTypeName
- 関係サービス内に作成する必要がある関係タイプの名前roleList
- 関係のロールを初期化するためのロールリスト (null も可)RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RoleNotFoundException
- 関係タイプ内に存在しないロールに値が提供された場合InvalidRelationIdException
- 関係 ID がすでに使用されている場合RelationTypeNotFoundException
- 関係サービスにとって未知の関係タイプである場合InvalidRoleValueException
- 次の場合:
- 同じ名前が 2 つの異なったロールで使用されている場合
- 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合
- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合
- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合
- そのロールの MBean が存在しない場合
void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
MBean を関係として追加するためには、次の条件が満たされている必要があります。
- MBean が Relation インタフェースを実装している
- MBean が RelationService ObjectName 用として現在の関係サービスの ObjectName を持っている
- MBean が現在の関係サービス内で一意かつ未使用の関係 ID を持っている
- MBean が関係タイプ用として関係サービス内で作成された関係タイプを持っている
- MBean が関係タイプ内で提供されたロール情報に適合するロールを持っている
relationObjectName
- 追加される関係 MBean の ObjectNameIllegalArgumentException
- パラメータが 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
- 関係タイプ内に存在しないロールに値が提供された場合ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 関係を識別する関係 IDIllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- この ID に関係が関連付けられていない場合String isRelation(ObjectName objectName) throws IllegalArgumentException
objectName
- 仮定された関係の ObjectNameIllegalArgumentException
- パラメータが null の場合Boolean hasRelation(String relationId) throws IllegalArgumentException
relationId
- 関係を識別する関係 IDIllegalArgumentException
- パラメータが null の場合List<String> getAllRelationIds()
Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
roleName
- チェックされるロールの名前relationTypeName
- 関係タイプの名前- ロールの読み取りが可能な場合は 0
- RoleStatus.NO_ROLE_WITH_NAME に対応する整数型
- RoleStatus.ROLE_NOT_READABLE に対応する整数型
IllegalArgumentException
- パラメータが null の場合RelationTypeNotFoundException
- 関係サービスにとって未知の関係タイプである場合Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
role
- チェックされるロールrelationTypeName
- 関係タイプの名前initFlag
- ロールの初期化のためにチェックが行われたことを示すフラグ。書き込みアクセスの検証は行われない- ロールの設定が可能な場合は 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
- 未知の関係タイプの場合void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_CREATION。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_CREATION。 関係が関係として追加された MBean である場合
ソースオブジェクトは関係サービス自体です。
関係サービスの createRelation() メソッドおよび addRelation() メソッドで呼び出されます。
relationId
- 更新された関係の関係識別子IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID の関係が存在しない場合void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_UPDATE。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_UPDATE。 関係が関係として追加された MBean である場合
ソースオブジェクトは関係サービス自体です。
関係 MBean の setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) で呼び出されます。 この実装は RelationSupport クラスで提供されます。
関係サービスの setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) でも呼び出せます。
relationId
- 更新された関係の関係識別子newRole
- 新しいロール (名前と新しい値)oldRoleValue
- 古いロール値 (ObjectName オブジェクトの List)IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID の関係が存在しない場合void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_REMOVAL。関係が関係サービスの内部オブジェクトである場合
- RelationNotification.RELATION_MBEAN_REMOVAL。 関係が関係として追加された MBean である場合
ソースオブジェクトは関係サービス自体です。
関係サービスの removeRelation() メソッドで呼び出されます。
relationId
- 更新された関係の関係識別子unregMBeanList
- 関係の削除の結果、登録解除される MBean の ObjectName のリスト (null も可)IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID の関係が存在しない場合void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
関係 MBean の setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) で呼び出されます。 この実装は RelationSupport クラスで提供されます。
関係サービスの setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) でも呼び出せます。
関係サービスが MBean の登録解除時も整合性を確保し、クエリーを実行できるようにするには、ロールの更新時にこのメソッドを呼び出す必要があります。
relationId
- 更新された関係の関係識別子newRole
- 新しいロール (名前と新しい値)oldRoleValue
- 古いロール値 (ObjectName オブジェクトの List)IllegalArgumentException
- パラメータが null の場合RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
RelationNotification 通知が送信されます。 その型は次のとおりです。
- RelationNotification.RELATION_BASIC_REMOVAL。関係サービス内専用の関係である場合
- RelationNotification.RELATION_MBEAN_REMOVAL。 関係が MBean として登録されている場合
こうした関係で参照される MBean の場合、何も行われません。
relationId
- 削除される関係の関係 IDRelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID に対応する関係が存在しない場合void purgeRelations() throws RelationServiceNotRegisteredException
このメソッドは、purgeFlag 値に依存します。 フラグが true に設定されている場合は、関係内の参照対象の MBean の登録解除を知らせる通知を受信したとき自動的に呼び出されます。 フラグが false に設定されている場合は呼び出されません。
フラグが false に設定されている場合、関係の整合性を確保するためにこのメソッドを呼び出すかどうかはユーザーが決定します。MBean の登録が解除されたあとただちにパージが行われない場合、ObjectName が再利用され、関係内の参照対象の別の MBean に割り当てられるときにこの purgeRelations() メソッドを手動で呼び出すと、問題が発生します。 これは、新しい MBean が認識されず、ObjectName が登録解除された MBean に対応すると見なされるからです。
動作は、登録解除された MBean が参照されるロールのカーディナリティーによって決定されます。
- ロール内の MBean 参照を 1 つ削除したとき参照の数が最小値より少なくなる場合は、関係を削除する必要がある
- MBean 参照を削除したあと残った参照の数がカーディナリティー範囲内である場合は、関係を保持し、handleMBeanUnregistration() コールバックを呼び出して更新する
RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
これは、CIM の「Reference」および「ReferenceName」オペレーションに対応します。
mbeanName
- MBean の ObjectNamerelationTypeName
- null も可。指定した場合、検索ではその型の関係だけが考慮される。それ以外の場合、すべての関係タイプが考慮されるroleName
- null も可。指定した場合、そのロール内の MBean が参照される関係だけが返される。それ以外の場合、すべてのロールが考慮されるIllegalArgumentException
- パラメータが null の場合Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
これは、CIM の Associator および AssociatorName オペレーションに対応します。
mbeanName
- MBean の ObjectNamerelationTypeName
- null も可。指定した場合、検索ではその型の関係だけが考慮される。それ以外の場合、すべての関係タイプが考慮されるroleName
- null も可。指定した場合、そのロール内の MBean が参照される関係だけが考慮される。それ以外の場合、すべてのロールが考慮されるIllegalArgumentException
- パラメータが null の場合List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 関係タイプの名前IllegalArgumentException
- パラメータが null の場合RelationTypeNotFoundException
- その名前の関係タイプが存在しない場合List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 関係 IDroleName
- ロール名RelationServiceNotRegisteredException
- 関係サービスが未登録の場合IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合RoleNotFoundException
- 次の場合:
- 指定された名前のロールが存在しない場合
または
- ロールが読み取り不可な場合
setRole(java.lang.String, javax.management.relation.Role)
RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
relationId
- 関係 IDroleNameArray
- 取得されるロールの名前から成る配列RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合setRoles(java.lang.String, javax.management.relation.RoleList)
RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
relationId
- 関係 IDIllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 関係 IDroleName
- ロール名IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合RoleNotFoundException
- 指定された名前のロールが存在しない場合void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException, RelationTypeNotFoundException
関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
関係サービスは、関係の整合性を確保するため、参照対象の MBean の登録解除を処理することにより、変更を追跡します。
relationId
- 関係 IDrole
- 設定されるロール (名前と新しい値)RelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合RoleNotFoundException
- 次の場合:
- 内部関係
および
- ロールが存在しないか、書き込み不可
InvalidRoleValueException
- ロールに対して提供された内部関係および値が無効な場合:
- 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合
または
- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合
または
- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合
または
- そのロールの MBean が存在しない場合
RelationTypeNotFoundException
- 未知の関係タイプの場合getRole(java.lang.String, java.lang.String)
RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
関係の関係タイプに含まれている対応するロール定義に従って、ロールをチェックします。
関係サービスは、関係の整合性を確保するため、参照対象の MBean の登録解除を処理することにより、変更を追跡します。
relationId
- 関係 IDroleList
- 設定されるロールのリストRelationServiceNotRegisteredException
- 関係サービスが MBean サーバーに登録されていない場合IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された ID に対応する関係が存在しない場合getRoles(java.lang.String, java.lang.String[])
Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 関係 IDObjectName → String (ロール名) から成る ArrayList
IllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID に対応する関係が存在しない場合String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 関係 IDIllegalArgumentException
- パラメータが null の場合RelationNotFoundException
- 指定された関係 ID に対応する関係が存在しない場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.