モジュール java.management
パッケージ javax.management.relation

インタフェースRelationServiceMBean

  • 既知のすべての実装クラス:
    RelationService


    public interface RelationServiceMBean
    関係サービスは、関係タイプと関係を作成および削除し、整合性を処理し、およびクエリー・メカニズムを提供します。
    導入されたバージョン:
    1.5
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      void addRelation​(ObjectName relationObjectName)
      ユーザーによって作成されてMBean Serverに登録されるMBeanを、関係として関係サービスに追加します。
      void addRelationType​(RelationType relationTypeObj)
      指定されたオブジェクトを関係タイプとして追加します。
      Integer checkRoleReading​(String roleName, String relationTypeName)
      指定された型の関係で、指定されたRoleの読取りが可能かどうかをチェックします。
      Integer checkRoleWriting​(Role role, String relationTypeName, Boolean initFlag)
      指定された型の関係で、指定されたRoleの設定が可能かどうかをチェックします。
      void createRelation​(String relationId, String relationTypeName, RoleList roleList)
      指定された関係タイプの単純な関係(RelationSupportオブジェクト)を作成し、これを関係サービスに追加します。
      void createRelationType​(String relationTypeName, RoleInfo[] roleInfoArray)
      RoleInfoオブジェクトから提供されたロール情報を使って、関係タイプ(RelationTypeSupportオブジェクト)を作成し、関係サービスへ追加します。
      Map<ObjectName,List<String>> findAssociatedMBeans​(ObjectName mbeanName, String relationTypeName, String roleName)
      関係内の指定されたMBeanに関連付けられたMBeanを取得します。
      Map<String,List<String>> findReferencingRelations​(ObjectName mbeanName, String relationTypeName, String roleName)
      指定されたMBeanが参照される関係を取得します。
      List<String> findRelationsOfType​(String relationTypeName)
      指定された型の関係の関係IDを返します。
      List<String> getAllRelationIds​()
      関係サービスによって処理されるすべての関係のすべての関係IDを返します。
      List<String> getAllRelationTypeNames​()
      既知のすべての関係タイプの名前を取得します。
      RoleResult getAllRoles​(String relationId)
      関係に含まれるすべてのロールを返します。
      boolean getPurgeFlag​()
      関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを返します。
      Map<ObjectName,List<String>> getReferencedMBeans​(String relationId)
      関係のさまざまなロールで参照されるMBeanを取得します。
      String getRelationTypeName​(String relationId)
      指定された関係の関係タイプの名前を返します。
      List<ObjectName> getRole​(String relationId, String roleName)
      指定された関係に含まれる指定されたロール名のロール値を取得します。
      Integer getRoleCardinality​(String relationId, String roleName)
      指定されたロール内で現在参照されているMBeanの数を取得します。
      RoleInfo getRoleInfo​(String relationTypeName, String roleInfoName)
      指定された関係タイプの指定されたロールの情報を取得します。
      List<RoleInfo> getRoleInfos​(String relationTypeName)
      指定された関係タイプのロール情報(RoleInfoオブジェクト)のリストを取得します。
      RoleResult getRoles​(String relationId, String[] roleNameArray)
      指定された関係に含まれる指定された名前のロールの値を取得します。
      Boolean hasRelation​(String relationId)
      関係サービス内に指定された関係IDで識別される関係があるかどうかをチェックします。
      void isActive​()
      関係サービスがアクティブかどうかをチェックします。
      String isRelation​(ObjectName objectName)
      MBeanが関係として関係サービスに追加されている場合、指定されたObjectNameに関連付けられる関係IDを返します。
      ObjectName isRelationMBean​(String relationId)
      関係がMBean (ユーザーによって作成され、関係として関係サービスに追加されたもの)によって表される場合、MBeanのObjectNameを返します。
      void purgeRelations​()
      関係をパージします。
      void removeRelation​(String relationId)
      指定された関係タイプを関係サービスから削除します。
      void removeRelationType​(String relationTypeName)
      指定された関係タイプを関係サービスから削除します。
      void sendRelationCreationNotification​(String relationId)
      関係作成の通知(RelationNotification)を送信します。
      void sendRelationRemovalNotification​(String relationId, List<ObjectName> unregMBeanList)
      関係削除の通知(RelationNotification)を送信します。
      void sendRoleUpdateNotification​(String relationId, Role newRole, List<ObjectName> oldRoleValue)
      指定された関係内のロール更新の通知(RelationNotification)を送信します。
      void setPurgeFlag​(boolean purgeFlag)
      関係内の参照対象のMBeanの登録解除の通知をいつ受信したか、関係をただちに「パージ」(有効でなくなった関係を検索)する必要があるかどうか、またはpurgeRelationsメソッドが明示的に呼び出される場合にのみパージが実行されるかどうかを示すフラグを設定します。
      void setRole​(String relationId, Role role)
      指定された関係内の指定されたロールを設定します。
      RoleResult setRoles​(String relationId, RoleList roleList)
      指定された関係内の指定されたロールを設定します。
      void updateRoleMap​(String relationId, Role newRole, List<ObjectName> oldRoleValue)
      指定された関係内の指定されたロールを更新するため、関係サービス・ロール・マップの更新を処理します。
    • メソッドの詳細

      • getPurgeFlag

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

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

        戻り値:
        ただちにパージを行う必要がある場合はtrue
        関連項目:
        setPurgeFlag(boolean)
      • setPurgeFlag

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

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

        パラメータ:
        purgeFlag - フラグ
        関連項目:
        getPurgeFlag()
      • createRelationType

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

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

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

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

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

      • getAllRelationTypeNames

        List<String> getAllRelationTypeNames​()
        既知のすべての関係タイプの名前を取得します。
        戻り値:
        関係タイプの名前(String)のArrayList
      • createRelation

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

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

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

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

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

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

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

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

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

      • addRelation

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

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

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

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

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

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

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

        パラメータ:
        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

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

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

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

        List<String> getAllRelationIds​()
        関係サービスによって処理されるすべての関係のすべての関係IDを返します。
        戻り値:
        StringのArrayList
      • checkRoleReading

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

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

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

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

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

        Integer checkRoleWriting​(Role role,
                                 String relationTypeName,
                                 Boolean initFlag)
                          throws IllegalArgumentException,
                                 RelationTypeNotFoundException
        指定された型の関係で、指定されたRoleの設定が可能かどうかをチェックします。
        パラメータ:
        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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        例外:
        RelationServiceNotRegisteredException - 関係サービスがMBeanサーバーに登録されていない場合
      • findReferencingRelations

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

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

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

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

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

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