JavaTM 2 Platform
Standard Ed. 5.0

javax.management.relation
クラス RelationService

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 theImmediatePurgeFlg)
          コンストラクタです。
 
メソッドの概要
 void addRelation(ObjectName theRelObjectName)
          ユーザによって作成され、MBean Server に登録される MBean を、関係として関係サービスに追加します。
 void addRelationType(RelationType theRelTypeObj)
          指定されたオブジェクトを関係型として追加します。
 Integer checkRoleReading(String theRoleName, String theRelTypeName)
          指定された型の関係で、指定された Role の読み取りが可能かどうかをチェックします。
 Integer checkRoleWriting(Role theRole, String theRelTypeName, Boolean theInitFlg)
          指定された型の関係で、指定された Role の設定が可能かどうかをチェックします。
 void createRelation(String theRelId, String theRelTypeName, RoleList theRoleList)
          指定された関係型の単純な関係 (RelationSupport オブジェクト) を作成し、これを関係サービスに追加します。
 void createRelationType(String theRelTypeName, RoleInfo[] theRoleInfoArray)
          RoleInfo オブジェクトから提供されたロール情報を使って、関係型 (RelationTypeSupport オブジェクト) を作成し、関係サービスへ追加します。
 Map findAssociatedMBeans(ObjectName theMBeanName, String theRelTypeName, String theRoleName)
          関係内の指定された MBean に関連付けられた MBean を取得します。
 Map findReferencingRelations(ObjectName theMBeanName, String theRelTypeName, String theRoleName)
          指定された MBean が参照される関係を取得します。
 List findRelationsOfType(String theRelTypeName)
          指定された型の関係の関係 ID を返します。
 List getAllRelationIds()
          関係サービスによって処理されるすべての関係のすべての関係 ID を返します。
 List getAllRelationTypeNames()
          既知のすべての関係型の名前を取得します。
 RoleResult getAllRoles(String theRelId)
          関係に含まれるすべてのロールを返します。
 MBeanNotificationInfo[] getNotificationInfo()
          通知の Java クラス名と、送信される通知型を含む NotificationInfo オブジェクトを返します。
 boolean getPurgeFlag()
          関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。
 Map getReferencedMBeans(String theRelId)
          関係のさまざまなロールで参照される MBean を取得します。
 String getRelationTypeName(String theRelId)
          指定された関係の関係型の名前を返します。
 List getRole(String theRelId, String theRoleName)
          指定された関係に含まれる指定されたロール名のロール値を取得します。
 Integer getRoleCardinality(String theRelId, String theRoleName)
          指定されたロール内で現在参照されている MBean の数を取得します。
 RoleInfo getRoleInfo(String theRelTypeName, String theRoleInfoName)
          指定された関係型の指定されたロール名のロール情報を取得します。
 List getRoleInfos(String theRelTypeName)
          指定された関係型のロール情報 (RoleInfo オブジェクト) のリストを取得します。
 RoleResult getRoles(String theRelId, String[] theRoleNameArray)
          指定された関係に含まれる指定された名前のロールの値を取得します。
 void handleNotification(Notification theNtf, Object theHandback)
          JMX 通知が発生したとき呼び出されます。
 Boolean hasRelation(String theRelId)
          関係サービス内に指定された関係 ID で識別される関係があるかどうかをチェックします。
 void isActive()
          関係サービスがアクティブかどうかをチェックします。
 String isRelation(ObjectName theObjName)
          MBean が関係として関係サービスに追加されている場合、指定された ObjectName に関連付けられる関係 ID を返します。
 ObjectName isRelationMBean(String theRelId)
          ユーザによって作成され、関係として関係サービスに追加された 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 theRelId)
          指定された関係型を関係サービスから削除します。
 void removeRelationType(String theRelTypeName)
          指定された関係型を関係サービスから削除します。
 void sendRelationCreationNotification(String theRelId)
          関係作成の通知 (RelationNotification) を送信します。
 void sendRelationRemovalNotification(String theRelId, List theUnregMBeanList)
          関係削除の通知 (RelationNotification) を送信します。
 void sendRoleUpdateNotification(String theRelId, Role theNewRole, List theOldRoleValue)
          指定された関係内のロール更新の通知 (RelationNotification) を送信します。
 void setPurgeFlag(boolean thePurgeFlg)
          関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。
 void setRole(String theRelId, Role theRole)
          指定された関係内の指定されたロールを設定します。
 RoleResult setRoles(String theRelId, RoleList theRoleList)
          指定された関係内の指定されたロールを設定します。
 void updateRoleMap(String theRelId, Role theNewRole, List theOldRoleValue)
          指定された関係内の指定されたロールを更新するため、関係サービスロールマップの更新を処理します。
 
クラス javax.management.NotificationBroadcasterSupport から継承されたメソッド
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RelationService

public RelationService(boolean theImmediatePurgeFlg)
コンストラクタです。

パラメータ:
theImmediatePurgeFlg - 関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグ

true の場合、ただちにパージを行う必要があります。

メソッドの詳細

isActive

public void isActive()
              throws RelationServiceNotRegisteredException
関係サービスがアクティブかどうかをチェックします。現在、関係サービスを MBean Server に登録する必要があります。

定義:
インタフェース RelationServiceMBean 内の isActive
例外:
RelationServiceNotRegisteredException - 関係サービスが未登録の場合

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
インタフェース MBeanRegistration の記述:
MBean サーバに登録する前に、MBean に必要なオペレーションを実行させることができます。MBean の名前を指定しないと、MBean により、登録用の名前が提供されます。例外がスローされた場合、MBean は MBean サーバに登録されません。

定義:
インタフェース MBeanRegistration 内の preRegister
パラメータ:
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 が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の postRegister
パラメータ:
registrationDone - MBean が MBean サーバに正常に登録されたかどうかを示す。登録に失敗した場合の値は false

preDeregister

public void preDeregister()
                   throws Exception
インタフェース MBeanRegistration の記述:
MBean サーバから登録解除する前に、MBean が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の preDeregister
例外:
Exception - この例外は、MBean サーバにキャッチされ、MBeanRegistrationException として再スローされる

postDeregister

public void postDeregister()
インタフェース MBeanRegistration の記述:
MBean サーバから登録解除したあと、MBean が必要なオペレーションを実行できるようにします。

定義:
インタフェース MBeanRegistration 内の postDeregister

getPurgeFlag

public boolean getPurgeFlag()
関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。

true の場合、ただちにパージを行う必要があります。

定義:
インタフェース RelationServiceMBean 内の getPurgeFlag
戻り値:
自動的にパージが行われる場合は true
関連項目:
setPurgeFlag(boolean)

setPurgeFlag

public void setPurgeFlag(boolean thePurgeFlg)
関係内の参照対象の MBean の登録解除の通知をいつ受信したか、関係をただちに「パージ」 (有効でなくなった関係を検索) する必要があるかどうか、または purgeRelations メソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。

true の場合、ただちにパージを行う必要があります。

定義:
インタフェース RelationServiceMBean 内の setPurgeFlag
パラメータ:
thePurgeFlg - フラグ
関連項目:
getPurgeFlag()

createRelationType

public void createRelationType(String theRelTypeName,
                               RoleInfo[] theRoleInfoArray)
                        throws IllegalArgumentException,
                               InvalidRelationTypeException
RoleInfo オブジェクトから提供されたロール情報を使って、関係型 (RelationTypeSupport オブジェクト) を作成し、関係サービスへ追加します。

定義:
インタフェース RelationServiceMBean 内の createRelationType
パラメータ:
theRelTypeName - 関係型の名前
theRoleInfoArray - ロール情報の配列
例外:
IllegalArgumentException - パラメータが null の場合
InvalidRelationTypeException - 次の条件が成立する場合:

- 同じ名前の関係型がすでに存在する場合

- 同じ名前が 2 つの異なったロール情報で使用されている場合

- ロール情報が提供されなかった場合

- ロール情報として null が提供された場合


addRelationType

public void addRelationType(RelationType theRelTypeObj)
                     throws IllegalArgumentException,
                            InvalidRelationTypeException
指定されたオブジェクトを関係型として追加します。このオブジェクトは、RelationType インタフェースを実装する必要があります。

定義:
インタフェース RelationServiceMBean 内の addRelationType
パラメータ:
theRelTypeObj - 関係型オブジェクト (RelationType インタフェースを実装)
例外:
IllegalArgumentException - パラメータが null の場合
InvalidRelationTypeException - 次の条件が成立する場合:

- 同じ名前が 2 つの異なったロールで使用されている場合

- ロール情報が提供されなかった場合

- ロール情報として null が提供された場合

- 同じ名前の関係型がすでに存在する場合


getAllRelationTypeNames

public List getAllRelationTypeNames()
既知のすべての関係型の名前を取得します。

定義:
インタフェース RelationServiceMBean 内の getAllRelationTypeNames
戻り値:
関係型の名前 (String) の ArrayList

getRoleInfos

public List getRoleInfos(String theRelTypeName)
                  throws IllegalArgumentException,
                         RelationTypeNotFoundException
指定された関係型のロール情報 (RoleInfo オブジェクト) のリストを取得します。

定義:
インタフェース RelationServiceMBean 内の getRoleInfos
パラメータ:
theRelTypeName - 関係型の名前
戻り値:
RoleInfo の ArrayList
例外:
IllegalArgumentException - パラメータが null の場合
RelationTypeNotFoundException - その名前の関係型が存在しない場合

getRoleInfo

public RoleInfo getRoleInfo(String theRelTypeName,
                            String theRoleInfoName)
                     throws IllegalArgumentException,
                            RelationTypeNotFoundException,
                            RoleInfoNotFoundException
指定された関係型の指定されたロール名のロール情報を取得します。

定義:
インタフェース RelationServiceMBean 内の getRoleInfo
パラメータ:
theRelTypeName - 関係型の名前
theRoleInfoName - ロール名
戻り値:
RoleInfo オブジェクト
例外:
IllegalArgumentException - パラメータが null の場合
RelationTypeNotFoundException - 関係サービスにとって未知の関係型である場合
RoleInfoNotFoundException - 関係型にロールが含まれていない場合

removeRelationType

public void removeRelationType(String theRelTypeName)
                        throws RelationServiceNotRegisteredException,
                               IllegalArgumentException,
                               RelationTypeNotFoundException
指定された関係型を関係サービスから削除します。

その型の関係オブジェクトが関係サービスから削除されます。

定義:
インタフェース RelationServiceMBean 内の removeRelationType
パラメータ:
theRelTypeName - 削除される関係型の名前
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合
RelationTypeNotFoundException - その名前の関係型が存在しない場合

createRelation

public void createRelation(String theRelId,
                           String theRelTypeName,
                           RoleList theRoleList)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RoleNotFoundException,
                           InvalidRelationIdException,
                           RelationTypeNotFoundException,
                           InvalidRoleValueException
指定された関係型の単純な関係 (RelationSupport オブジェクト) を作成し、これを関係サービスに追加します。

ロールはパラメータに指定されたロールリストに従って初期化されます。この方法で初期化されないロールは、ObjectName の空の ArrayList に設定されます。

RELATION_BASIC_CREATION 型の RelationNotification が送信されます。

定義:
インタフェース RelationServiceMBean 内の createRelation
パラメータ:
theRelId - 関係サービス内の関係を一意に識別するために使用される関係識別子
theRelTypeName - 関係サービス内に作成する必要がある関係型の名前
theRoleList - 関係のロールを初期化するためのロールリスト (null も可)
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合。ただし、ロールの初期化が行われない場合 null にすることができるロールリストを除く
RoleNotFoundException - 関係型内に存在しないロールに値が提供された場合
InvalidRelationIdException - 関係 ID がすでに使用されている場合
RelationTypeNotFoundException - 関係サービスにとって未知の関係型である場合
InvalidRoleValueException - 次の条件が成立する場合:

- 同じ名前が 2 つの異なったロールで使用されている場合

- 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合

- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合

- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合

- そのロールの MBean が存在しない場合


addRelation

public void addRelation(ObjectName theRelObjectName)
                 throws IllegalArgumentException,
                        RelationServiceNotRegisteredException,
                        NoSuchMethodException,
                        InvalidRelationIdException,
                        InstanceNotFoundException,
                        InvalidRelationServiceException,
                        RelationTypeNotFoundException,
                        RoleNotFoundException,
                        InvalidRoleValueException
ユーザによって作成され、MBean Server に登録される MBean を、関係として関係サービスに追加します。

MBean を関係として追加するためには、次の条件が満たされている必要があります。

- MBean が Relation インタフェースを実装している

- MBean が RelationService ObjectName 用として現在の関係サービスの ObjectName を持っている

- MBean が現在の関係サービス内で一意かつ未使用の関係 ID を持っている

- MBean が関係型用として関係サービス内で作成された関係型を持っている

- MBean が関係型内で提供されたロール情報に適合するロールを持っている

定義:
インタフェース RelationServiceMBean 内の addRelation
パラメータ:
theRelObjectName - 追加される関係 MBean の ObjectName
例外:
IllegalArgumentException - パラメータが null の場合
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
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 theRelId)
                           throws IllegalArgumentException,
                                  RelationNotFoundException
ユーザによって作成され、関係として関係サービスに追加された MBean が関係を表す場合、この MBean の ObjectName を返します。

定義:
インタフェース RelationServiceMBean 内の isRelationMBean
パラメータ:
theRelId - 関係を識別する関係 ID
戻り値:
対応する関係 MBean の ObjectName。関係が MBean でない場合は null
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - この ID に関係が関連付けられていない場合

isRelation

public String isRelation(ObjectName theObjName)
                  throws IllegalArgumentException
MBean が関係として関係サービスに追加されている場合、指定された ObjectName に関連付けられる関係 ID を返します。

定義:
インタフェース RelationServiceMBean 内の isRelation
パラメータ:
theObjName - 仮定された関係の ObjectName
戻り値:
関係 ID (String)。ObjectName が関係サービスによって処理される関係でない場合は null
例外:
IllegalArgumentException - パラメータが null の場合

hasRelation

public Boolean hasRelation(String theRelId)
                    throws IllegalArgumentException
関係サービス内に指定された関係 ID で識別される関係があるかどうかをチェックします。

定義:
インタフェース RelationServiceMBean 内の hasRelation
パラメータ:
theRelId - 関係を識別する関係 ID
戻り値:
boolean 型。関係が存在する場合は true、存在しない場合は false
例外:
IllegalArgumentException - パラメータが null の場合

getAllRelationIds

public List getAllRelationIds()
関係サービスによって処理されるすべての関係のすべての関係 ID を返します。

定義:
インタフェース RelationServiceMBean 内の getAllRelationIds
戻り値:
String の ArrayList

checkRoleReading

public Integer checkRoleReading(String theRoleName,
                                String theRelTypeName)
                         throws IllegalArgumentException,
                                RelationTypeNotFoundException
指定された型の関係で、指定された Role の読み取りが可能かどうかをチェックします。

定義:
インタフェース RelationServiceMBean 内の checkRoleReading
パラメータ:
theRoleName - チェックされるロールの名前
theRelTypeName - 関係型の名前
戻り値:
発生の可能性がある問題に対応する整数型 (RoleUnresolved 内の定数で表される) をラップする Integer

- ロールの読み取りが可能な場合は 0

- RoleStatus.NO_ROLE_WITH_NAME に対応する整数型

- RoleStatus.ROLE_NOT_READABLE に対応する整数型

例外:
IllegalArgumentException - パラメータが null の場合
RelationTypeNotFoundException - 関係サービスにとって未知の関係型である場合

checkRoleWriting

public Integer checkRoleWriting(Role theRole,
                                String theRelTypeName,
                                Boolean theInitFlg)
                         throws IllegalArgumentException,
                                RelationTypeNotFoundException
指定された型の関係で、指定された Role の設定が可能かどうかをチェックします。

定義:
インタフェース RelationServiceMBean 内の checkRoleWriting
パラメータ:
theRole - チェックされるロール
theRelTypeName - 関係型の名前
theInitFlg - ロールの初期化のためにチェックが行われたことを示すフラグ。書き込みアクセスの検証は行われない
戻り値:
発生の可能性がある問題に対応する整数型 (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 theRelId)
                                      throws IllegalArgumentException,
                                             RelationNotFoundException
関係作成の通知 (RelationNotification) を送信します。通知型は次のとおりです。

- RelationNotification.RELATION_BASIC_CREATION。関係が関係サービスの内部オブジェクトである場合

- RelationNotification.RELATION_MBEAN_CREATION。関係が関係として追加された MBean である場合

ソースオブジェクトは関係サービス自体です。

関係サービスの createRelation() メソッドおよび addRelation() メソッドで呼び出されます。

定義:
インタフェース RelationServiceMBean 内の sendRelationCreationNotification
パラメータ:
theRelId - 更新された関係の関係識別子
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID の関係が存在しない場合

sendRoleUpdateNotification

public void sendRoleUpdateNotification(String theRelId,
                                       Role theNewRole,
                                       List theOldRoleValue)
                                throws IllegalArgumentException,
                                       RelationNotFoundException
指定された関係内のロール更新の通知 (RelationNotification) を送信します。通知型は次のとおりです。

- RelationNotification.RELATION_BASIC_UPDATE。関係が関係サービスの内部オブジェクトである場合

- RelationNotification.RELATION_MBEAN_UPDATE。関係が関係として追加された MBean である場合

ソースオブジェクトは関係サービス自体です。

関係 MBean の setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) で呼び出されます。この実装は RelationSupport クラスで提供されます。

関係サービスの setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) でも呼び出せます。

定義:
インタフェース RelationServiceMBean 内の sendRoleUpdateNotification
パラメータ:
theRelId - 更新された関係の関係識別子
theNewRole - 新しいロール (名前と新しい値)
theOldRoleValue - 古いロール値 (ObjectName オブジェクトの List)
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID の関係が存在しない場合

sendRelationRemovalNotification

public void sendRelationRemovalNotification(String theRelId,
                                            List theUnregMBeanList)
                                     throws IllegalArgumentException,
                                            RelationNotFoundException
関係削除の通知 (RelationNotification) を送信します。通知型は次のとおりです。

- RelationNotification.RELATION_BASIC_REMOVAL。関係が関係サービスの内部オブジェクトである場合

- RelationNotification.RELATION_MBEAN_REMOVAL。関係が関係として追加された MBean である場合

ソースオブジェクトは関係サービス自体です。

関係サービスの removeRelation() メソッドで呼び出されます。

定義:
インタフェース RelationServiceMBean 内の sendRelationRemovalNotification
パラメータ:
theRelId - 更新された関係の関係識別子
theUnregMBeanList - 関係の削除の結果、登録解除される MBean の ObjectName のリスト (null も可)
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID の関係が存在しない場合

updateRoleMap

public void updateRoleMap(String theRelId,
                          Role theNewRole,
                          List theOldRoleValue)
                   throws IllegalArgumentException,
                          RelationServiceNotRegisteredException,
                          RelationNotFoundException
指定された関係内の指定されたロールを更新するため、関係サービスロールマップの更新を処理します。

関係 MBean の setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) で呼び出されます。この実装は RelationSupport クラスで提供されます。

関係サービスの setRole() メソッド (指定されたロール用) および setRoles() メソッド (各ロール用) でも呼び出せます。

関係サービスが MBean の登録解除時も整合性を確保し、クエリーを実行できるようにするには、ロールの更新時にこのメソッドを呼び出す必要があります。

定義:
インタフェース RelationServiceMBean 内の updateRoleMap
パラメータ:
theRelId - 更新された関係の関係識別子
theNewRole - 新しいロール (名前と新しい値)
theOldRoleValue - 古いロール値 (ObjectName オブジェクトの List)
例外:
IllegalArgumentException - パラメータが null の場合
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合

removeRelation

public void removeRelation(String theRelId)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RelationNotFoundException
指定された関係型を関係サービスから削除します。

RelationNotification 通知が送信されます。その型は次のとおりです。

- RelationNotification.RELATION_BASIC_REMOVAL。関係サービス内専用の関係である場合

- RelationNotification.RELATION_MBEAN_REMOVAL。関係が MBean として登録されている場合

こうした関係で参照される MBean の場合、何も行われません。

定義:
インタフェース RelationServiceMBean 内の removeRelation
パラメータ:
theRelId - 削除される関係の関係 ID
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID に対応する関係が存在しない場合

purgeRelations

public void purgeRelations()
                    throws RelationServiceNotRegisteredException
関係をパージします。

このメソッドは、purgeFlag 値に依存します。フラグが true に設定されている場合は、関係内の参照対象の MBean の登録解除を知らせる通知を受信したとき自動的に呼び出されます。フラグが false に設定されている場合は呼び出されません。

フラグが false に設定されている場合、関係の整合性を確保するためにこのメソッドを呼び出すかどうかはユーザが決定します。MBean の登録が解除されたあとただちにパージが行われない場合、ObjectName が再利用され、関係内の参照対象の別の MBean に割り当てられるときにこの purgeRelations() メソッドを手動で呼び出すと、問題が発生します。これは、新しい MBean が認識されず、ObjectName が登録解除された MBean に対応すると見なされるからです。

動作は、登録解除された MBean が参照されるロールのカーディナリティによって決定されます。

- ロール内の MBean 参照を 1 つ削除したとき参照の数が最小値より少なくなる場合は、関係を削除する必要がある

- MBean 参照を削除したあと残った参照の数がカーディナリティ範囲内である場合は、関係を保持し、handleMBeanUnregistration() コールバックを呼び出して更新する

定義:
インタフェース RelationServiceMBean 内の purgeRelations
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合

findReferencingRelations

public Map findReferencingRelations(ObjectName theMBeanName,
                                    String theRelTypeName,
                                    String theRoleName)
                             throws IllegalArgumentException
指定された MBean が参照される関係を取得します。

これは、CIM の「Reference」および「ReferenceName」オペレーションに対応します。

定義:
インタフェース RelationServiceMBean 内の findReferencingRelations
パラメータ:
theMBeanName - MBean の ObjectName
theRelTypeName - null も可。指定した場合、検索ではその型の関係だけが考慮される。それ以外の場合、すべての関係型が考慮される
theRoleName - null も可。指定した場合、そのロール内の MBean が参照される関係だけが返される。それ以外の場合、すべてのロールが考慮される
戻り値:
HashMap。キーは、MBean が参照される関係の関係 ID。各キーの値はロール名の ArrayList (MBean は同じ関係の複数のロール内で参照可能)
例外:
IllegalArgumentException - パラメータが null の場合

findAssociatedMBeans

public Map findAssociatedMBeans(ObjectName theMBeanName,
                                String theRelTypeName,
                                String theRoleName)
                         throws IllegalArgumentException
関係内の指定された MBean に関連付けられた MBean を取得します。

これは、CIM の Associator および AssociatorName オペレーションに対応します。

定義:
インタフェース RelationServiceMBean 内の findAssociatedMBeans
パラメータ:
theMBeanName - MBean の ObjectName
theRelTypeName - null も可。指定した場合、検索ではその型の関係だけが考慮される。それ以外の場合、すべての関係型が考慮される
theRoleName - null も可。指定した場合、そのロール内の MBean が参照される関係だけが考慮される。それ以外の場合、すべてのロールが考慮される
戻り値:
HashMap。キーは指定された MBean に関連付けられた MBean の ObjectName。各キーの値は、キー MBean が指定された MBean に関連付けられている関係の関係 ID から成る ArrayList (これらは複数の異なった関係に関連付け可能)
例外:
IllegalArgumentException - パラメータが null の場合

findRelationsOfType

public List findRelationsOfType(String theRelTypeName)
                         throws IllegalArgumentException,
                                RelationTypeNotFoundException
指定された型の関係の関係 ID を返します。

定義:
インタフェース RelationServiceMBean 内の findRelationsOfType
パラメータ:
theRelTypeName - 関係型名
戻り値:
関係 ID の ArrayList
例外:
IllegalArgumentException - パラメータが null の場合
RelationTypeNotFoundException - その名前の関係型が存在しない場合

getRole

public List getRole(String theRelId,
                    String theRoleName)
             throws RelationServiceNotRegisteredException,
                    IllegalArgumentException,
                    RelationNotFoundException,
                    RoleNotFoundException
指定された関係に含まれる指定されたロール名のロール値を取得します。

定義:
インタフェース RelationServiceMBean 内の getRole
パラメータ:
theRelId - 関係 ID
theRoleName - ロール名
戻り値:
ロール値となる ObjectName オブジェクトの ArrayList
例外:
RelationServiceNotRegisteredException - 関係サービスが未登録の場合
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
RoleNotFoundException - 次の条件が成立する場合:

- 指定された名前のロールが存在しない場合

または

- ロールが読み取り不可な場合

関連項目:
setRole(java.lang.String, javax.management.relation.Role)

getRoles

public RoleResult getRoles(String theRelId,
                           String[] theRoleNameArray)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RelationNotFoundException
指定された関係に含まれる指定された名前のロールの値を取得します。

定義:
インタフェース RelationServiceMBean 内の getRoles
パラメータ:
theRelId - 関係 ID
theRoleNameArray - 取得されるロールの名前から成る配列
戻り値:
RoleResult オブジェクト。取得に成功したロールの RoleList と取得されなかったロールの RoleUnresolvedList を含む
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
関連項目:
setRoles(java.lang.String, javax.management.relation.RoleList)

getAllRoles

public RoleResult getAllRoles(String theRelId)
                       throws IllegalArgumentException,
                              RelationNotFoundException,
                              RelationServiceNotRegisteredException
関係に含まれるすべてのロールを返します。

定義:
インタフェース RelationServiceMBean 内の getAllRoles
パラメータ:
theRelId - 関係 ID
戻り値:
RoleResult オブジェクト。取得に成功したロールの RoleList と読み取れなかったロールの RoleUnresolvedList を含む
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合

getRoleCardinality

public Integer getRoleCardinality(String theRelId,
                                  String theRoleName)
                           throws IllegalArgumentException,
                                  RelationNotFoundException,
                                  RoleNotFoundException
指定されたロール内で現在参照されている MBean の数を取得します。

定義:
インタフェース RelationServiceMBean 内の getRoleCardinality
パラメータ:
theRelId - 関係 ID
theRoleName - ロール名
戻り値:
ロール内の現在参照されている MBean の数
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
RoleNotFoundException - 指定された名前のロールが存在しない場合

setRole

public void setRole(String theRelId,
                    Role theRole)
             throws RelationServiceNotRegisteredException,
                    IllegalArgumentException,
                    RelationNotFoundException,
                    RoleNotFoundException,
                    InvalidRoleValueException
指定された関係内の指定されたロールを設定します。

関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。

関係サービスは、関係の整合性を確保するため、参照対象の MBean の登録解除を処理することにより、変更を追跡します。

定義:
インタフェース RelationServiceMBean 内の setRole
パラメータ:
theRelId - 関係 ID
theRole - 設定されるロール (名前と新しい値)
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
RoleNotFoundException - ロールが存在しないか、書き込み不可である場合
InvalidRoleValueException - ロールに対して提供された値が無効な場合:

- 指定された値に含まれる参照対象の MBean の数が予想最小値より小さい場合

または

- 指定された値に含まれる参照対象の MBean の数が予想最大値を超えている場合

または

- 値に含まれる参照対象の MBean のうち 1 つが、そのロールの MBean クラスのオブジェクトでない場合

または

- そのロールの MBean が存在しない場合

関連項目:
getRole(java.lang.String, java.lang.String)

setRoles

public RoleResult setRoles(String theRelId,
                           RoleList theRoleList)
                    throws RelationServiceNotRegisteredException,
                           IllegalArgumentException,
                           RelationNotFoundException
指定された関係内の指定されたロールを設定します。

関係の関係型に含まれている対応するロール定義に従って、ロールをチェックします。

関係サービスは、関係の整合性を確保するため、参照対象の MBean の登録解除を処理することにより、変更を追跡します。

定義:
インタフェース RelationServiceMBean 内の setRoles
パラメータ:
theRelId - 関係 ID
theRoleList - 設定されるロールのリスト
戻り値:
RoleResult オブジェクト。設定に成功したロールの RoleList と設定されなかったロールの RoleUnresolvedList を含む
例外:
RelationServiceNotRegisteredException - 関係サービスが MBean Server に登録されていない場合
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された ID に対応する関係が存在しない場合
関連項目:
getRoles(java.lang.String, java.lang.String[])

getReferencedMBeans

public Map getReferencedMBeans(String theRelId)
                        throws IllegalArgumentException,
                               RelationNotFoundException
関係のさまざまなロールで参照される MBean を取得します。

定義:
インタフェース RelationServiceMBean 内の getReferencedMBeans
パラメータ:
theRelId - 関係 ID
戻り値:
HashMap マッピング:

ObjectName → String (ロール名) から成る ArrayList

例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID に対応する関係が存在しない場合

getRelationTypeName

public String getRelationTypeName(String theRelId)
                           throws IllegalArgumentException,
                                  RelationNotFoundException
指定された関係の関係型の名前を返します。

定義:
インタフェース RelationServiceMBean 内の getRelationTypeName
パラメータ:
theRelId - 関係 ID
戻り値:
関連付けられた関係型の名前
例外:
IllegalArgumentException - パラメータが null の場合
RelationNotFoundException - 指定された関係 ID に対応する関係が存在しない場合

handleNotification

public void handleNotification(Notification theNtf,
                               Object theHandback)
JMX 通知が発生したとき呼び出されます。一般に、関係ロール内の参照対象の MBean、または関係になる MBean の登録解除の通知を処理します。

定義:
インタフェース NotificationListener 内の handleNotification
パラメータ:
theNtf - 通知
theHandback - リスナーによる MBean エミッタの情報の関連付けに役立つ、不透明なオブジェクト

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
通知の Java クラス名と、送信される通知型を含む NotificationInfo オブジェクトを返します。

定義:
インタフェース NotificationBroadcaster 内の getNotificationInfo
オーバーライド:
クラス NotificationBroadcasterSupport 内の getNotificationInfo
戻り値:
通知の配列

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。