モジュール java.management
パッケージ 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

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

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

  • メソッドの詳細

    • isActive

      public void isActive() throws RelationServiceNotRegisteredException
      関係サービスがアクティブかどうかをチェックします。 現在、関係サービスをMBean Serverに登録する必要があります。
      定義:
      isActive、インタフェース: RelationServiceMBean
      例外:
      RelationServiceNotRegisteredException - 関係サービスが未登録の場合
    • getPurgeFlag

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

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

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

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

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

      定義:
      setPurgeFlag、インタフェース: RelationServiceMBean
      パラメータ:
      purgeFlag - フラグ
      関連項目:
      getPurgeFlag()
    • createRelationType

      public void createRelationType​(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
      RoleInfoオブジェクトから提供されたロール情報を使って、関係タイプ(RelationTypeSupportオブジェクト)を作成し、関係サービスへ追加します。
      定義:
      createRelationType、インタフェース: RelationServiceMBean
      パラメータ:
      relationTypeName - 関係タイプの名前
      roleInfoArray - ロール情報の配列
      例外:
      IllegalArgumentException - パラメータがnullの場合
      InvalidRelationTypeException - 次の場合:

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

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

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

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

    • addRelationType

      public void addRelationType​(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
      指定されたオブジェクトを関係タイプとして追加します。 このオブジェクトは、RelationTypeインタフェースを実装する必要があります。
      定義:
      addRelationType、インタフェース: RelationServiceMBean
      パラメータ:
      relationTypeObj - 関係タイプ・オブジェクト(RelationTypeインタフェースを実装)
      例外:
      IllegalArgumentException - パラメータがnullである場合、またはrelationTypeObj.getRelationTypeName()がnullを返す場合
      InvalidRelationTypeException - 次の場合:

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

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

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

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

    • getAllRelationTypeNames

      public List<String> getAllRelationTypeNames()
      既知のすべての関係タイプの名前を取得します。
      定義:
      getAllRelationTypeNames、インタフェース: RelationServiceMBean
      戻り値:
      関係タイプの名前(String)のArrayList
    • getRoleInfos

      public List<RoleInfo> getRoleInfos​(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
      指定された関係タイプのロール情報(RoleInfoオブジェクト)のリストを取得します。
      定義:
      getRoleInfos、インタフェース: RelationServiceMBean
      パラメータ:
      relationTypeName - 関係タイプの名前
      戻り値:
      RoleInfoのArrayList
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationTypeNotFoundException - その名前の関係タイプが存在しない場合
    • getRoleInfo

      public RoleInfo getRoleInfo​(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
      指定された関係タイプの指定されたロール名のロール情報を取得します。
      定義:
      getRoleInfo、インタフェース: RelationServiceMBean
      パラメータ:
      relationTypeName - 関係タイプの名前
      roleInfoName - ロール名
      戻り値:
      RoleInfoオブジェクト
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationTypeNotFoundException - 関係サービスにとって未知の関係タイプである場合
      RoleInfoNotFoundException - 関係タイプにロールが含まれていない場合
    • removeRelationType

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

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

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

      指定された関係タイプの単純な関係(RelationSupportオブジェクト)を作成し、これを関係サービスに追加します。

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

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

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

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

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

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

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

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

    • addRelation

      ユーザーによって作成されてMBean Serverに登録されるMBeanを、関係として関係サービスに追加します。

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

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

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

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

      - 関係タイプ用として関係サービス内で作成された関係タイプを持っている

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

      定義:
      addRelation、インタフェース: RelationServiceMBean
      パラメータ:
      relationObjectName - 追加される関係MBeanのObjectName
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationServiceNotRegisteredException - 関係サービスがMBeanサーバーに登録されていない場合
      NoSuchMethodException - MBeanがRelationインタフェースを実装していない場合
      InvalidRelationIdException - 次の場合:

      - MBean内に関係識別子が存在しない

      - 関係識別子が関係サービスですでに使用されている場合

      InstanceNotFoundException - 指定されたObjectNameのMBeanが登録されていない場合
      InvalidRelationServiceException - 次の場合:

      - MBean内に関係サービス名が存在しない場合

      - MBean内の関係サービス名が現在の関係サービスの関係サービス名でない場合

      RelationTypeNotFoundException - 次の場合:

      - MBean内に関係タイプ名が存在しない場合

      - MBean内の関係タイプ名が関係サービス内に作成された関係タイプに対応していない場合

      InvalidRoleValueException - 次の場合:

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

      - ロールに含まれる参照対象のMBeanの数が予想最大値を超えている場合

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

      - ロールに提供されたMBeanが存在しない場合

      RoleNotFoundException - 関係タイプ内に存在しないロールに値が提供された場合
    • isRelationMBean

      public ObjectName isRelationMBean​(String relationId) throws IllegalArgumentException, RelationNotFoundException
      関係がMBean (ユーザーによって作成され、関係として関係サービスに追加されたもの)によって表される場合、MBeanのObjectNameを返します。
      定義:
      isRelationMBean、インタフェース: RelationServiceMBean
      パラメータ:
      relationId - 関係を識別する関係ID
      戻り値:
      対応する関係MBeanのObjectName。関係がMBeanでない場合はnull
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationNotFoundException - このIDに関係が関連付けられていない場合
    • isRelation

      public String isRelation​(ObjectName objectName) throws IllegalArgumentException
      MBeanが関係として関係サービスに追加されている場合、指定されたObjectNameに関連付けられる関係IDを返します。
      定義:
      isRelation、インタフェース: RelationServiceMBean
      パラメータ:
      objectName - 仮定された関係のObjectName
      戻り値:
      関係ID (String)。ObjectNameが関係サービスによって処理される関係でない場合はnull
      例外:
      IllegalArgumentException - パラメータがnullの場合
    • hasRelation

      public Boolean hasRelation​(String relationId) throws IllegalArgumentException
      関係サービス内に指定された関係IDで識別される関係があるかどうかをチェックします。
      定義:
      hasRelation、インタフェース: RelationServiceMBean
      パラメータ:
      relationId - 関係を識別する関係ID
      戻り値:
      boolean型。関係が存在する場合はtrue、存在しない場合はfalse
      例外:
      IllegalArgumentException - パラメータがnullの場合
    • getAllRelationIds

      public List<String> getAllRelationIds()
      関係サービスによって処理されるすべての関係のすべての関係IDを返します。
      定義:
      getAllRelationIds、インタフェース: RelationServiceMBean
      戻り値:
      StringのArrayList
    • checkRoleReading

      public Integer checkRoleReading​(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
      指定された型の関係で、指定されたRoleの読取りが可能かどうかをチェックします。
      定義:
      checkRoleReading、インタフェース: RelationServiceMBean
      パラメータ:
      roleName - チェックされるロールの名前
      relationTypeName - 関係タイプの名前
      戻り値:
      発生の可能性がある問題に対応する整数型(RoleUnresolved内の定数で表される)をラップするInteger

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

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

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

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

      public Integer checkRoleWriting​(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
      指定された型の関係で、指定されたRoleの設定が可能かどうかをチェックします。
      定義:
      checkRoleWriting、インタフェース: RelationServiceMBean
      パラメータ:
      role - チェックされるロール
      relationTypeName - 関係タイプの名前
      initFlag - ロールの初期化のためにチェックが行われたことを示すフラグ。書込みアクセスの検証は行われない
      戻り値:
      発生の可能性がある問題に対応する整数型(RoleUnresolved内の定数で表される)をラップするInteger

      - ロールの設定が可能な場合は0

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

      - RoleStatus.ROLE_NOT_WRITABLEの整数型

      - RoleStatus.LESS_THAN_MIN_ROLE_DEGREEの整数型

      - RoleStatus.MORE_THAN_MAX_ROLE_DEGREEの整数型

      - RoleStatus.REF_MBEAN_OF_INCORRECT_CLASSの整数型

      - RoleStatus.REF_MBEAN_NOT_REGISTEREDの整数型

      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationTypeNotFoundException - 未知の関係タイプの場合
    • sendRelationCreationNotification

      public void sendRelationCreationNotification​(String relationId) throws IllegalArgumentException, RelationNotFoundException
      関係作成の通知(RelationNotification)を送信します。 通知型は次のとおりです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      public void updateRoleMap​(String relationId, Role newRole, List<ObjectName> oldValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
      指定された関係内の指定されたロールを更新するため、関係サービス・ロール・マップの更新を処理します。

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

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

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

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

      指定された関係タイプを関係サービスから削除します。

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

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

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

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

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

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

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

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

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

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

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

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

      public Map<String,​List<String>> findReferencingRelations​(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
      指定されたMBeanが参照される関係を取得します。

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

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

      public Map<ObjectName,​List<String>> findAssociatedMBeans​(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
      関係内の指定されたMBeanに関連付けられたMBeanを取得します。

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

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

      public List<String> findRelationsOfType​(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
      指定された型の関係の関係IDを返します。
      定義:
      findRelationsOfType、インタフェース: RelationServiceMBean
      パラメータ:
      relationTypeName - 関係タイプの名前
      戻り値:
      関係IDのArrayList
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationTypeNotFoundException - その名前の関係タイプが存在しない場合
    • getRole

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

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

      または

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

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

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

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

      public Integer getRoleCardinality​(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
      指定されたロール内で現在参照されているMBeanの数を取得します。
      定義:
      getRoleCardinality、インタフェース: RelationServiceMBean
      パラメータ:
      relationId - 関係ID
      roleName - ロール名
      戻り値:
      ロール内の現在参照されているMBeanの数
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationNotFoundException - 指定されたIDに対応する関係が存在しない場合
      RoleNotFoundException - 指定された名前のロールが存在しない場合
    • setRole

      指定された関係内の指定されたロールを設定します。

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

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

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

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

      または

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

      または

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

      または

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

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

      指定された関係内の指定されたロールを設定します。

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

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

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

      public Map<ObjectName,​List<String>> getReferencedMBeans​(String relationId) throws IllegalArgumentException, RelationNotFoundException
      関係のさまざまなロールで参照されるMBeanを取得します。
      定義:
      getReferencedMBeans、インタフェース: RelationServiceMBean
      パラメータ:
      relationId - 関係ID
      戻り値:
      HashMapマッピング:

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

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

      public String getRelationTypeName​(String relationId) throws IllegalArgumentException, RelationNotFoundException
      指定された関係の関係タイプの名前を返します。
      定義:
      getRelationTypeName、インタフェース: RelationServiceMBean
      パラメータ:
      relationId - 関係ID
      戻り値:
      関連付けられた関係タイプの名前
      例外:
      IllegalArgumentException - パラメータがnullの場合
      RelationNotFoundException - 指定された関係IDに対応する関係が存在しない場合
    • handleNotification

      public void handleNotification​(Notification notif, Object handback)
      JMX通知が発生したとき呼び出されます。 一般に、関係ロール内の参照対象のMBean、または関係になるMBeanの登録解除の通知を処理します。
      定義:
      handleNotification、インタフェース: NotificationListener
      パラメータ:
      notif - 通知
      handback - リスナーによるMBeanエミッタの情報の関連付けに役立つ、不透明なオブジェクト(nullも使用可能)。
    • getNotificationInfo

      public MBeanNotificationInfo[] getNotificationInfo()
      送信される通知のJavaクラス名と通知タイプを含むNotificationInfoオブジェクトを返します。
      定義:
      getNotificationInfo、インタフェース: NotificationBroadcaster
      戻り値:
      可能な通知の配列。