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を関係として追加するためには、次の条件が満たされている必要があります。
- Relationインタフェースを実装している
- RelationService ObjectName用として現在の関係サービスのObjectNameを持っている
- 現在の関係サービス内で一意かつ未使用の関係IDを持っている
- 関係タイプ用として関係サービス内で作成された関係タイプを持っている
- 関係タイプ内で提供されたロール情報に適合するロールを持っている
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に設定されている場合は呼び出されません。
その場合、関係の整合性を維持するためにこのメソッドを呼び出すかどうかはユーザーが決定します。 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。