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