モジュール java.management.rmi

インタフェースRMIConnection

  • すべてのスーパー・インタフェース:
    AutoCloseable, Closeable, Remote
    既知のすべての実装クラス:
    RMIConnectionImpl, RMIConnectionImpl_Stub


    public interface RMIConnection
    extends Closeable, Remote

    クライアントからサーバー側のMBeanServer実装へMBeanServer要求を転送するために使用されるRMIオブジェクトです。 RMIコネクタに接続されたリモート・クライアントごとに、このインタフェースを実装するRemoteオブジェクトが1つずつ提供されます。

    ユーザー・コードは、必ずしもこのインタフェースを参照しません。 このインタフェースは、APIの実装が異なる場合も相互運用できるように、公開APIの一部として指定されています。

    クライアント・パラメータを、サーバー側の正しいクラス・ローダーで直列化復元するため、クライアント・パラメータ(メソッド呼出しに使用されるパラメータなど)はMarshalledObjectにラップされます。 このインタフェースの実装は、まずオペレーションとそのターゲットの適切なクラス・ローダーを取得してから、このクラス・ローダーを使用して整列化パラメータを直列化復元します。 特に指定のないかぎり、パラメータMarshalledObjectまたはMarshalledObject[]をnullにしないでください。nullの場合、パラメータの動作は不定となります。

    クラスのロードに関する詳細は、『JMX仕様、バージョン1.4』のPDFドキュメントを参照してください。

    このインタフェースのほとんどのメソッドは、MBeanServerConnectionインタフェースの並行メソッドです。 メソッドの動作についてはここでは説明しませんが、対応するMBeanServerConnectionメソッドと同じです。

    導入されたバージョン:
    1.5
    • メソッドの詳細

      • getConnectionId

        String getConnectionId​()
                        throws IOException

        接続IDを返します。 この文字列は、指定のRMIコネクタ・サーバーへの開かれた接続ごとに異なります。

        戻り値:
        接続ID
        例外:
        IOException - 一般的な通信例外が発生した場合。
        関連項目:
        RMIConnector.connect
      • close

        void close​()
            throws IOException

        この接続を終了します。 このメソッドの終了時には、これ以上リモート呼出しの失敗が起こらないように、このインタフェースを実装するRMIオブジェクトがアンエクスポートされます。

        定義:
        close、インタフェース: AutoCloseable
        定義:
        close、インタフェース: Closeable
        例外:
        IOException - 接続を終了できなかった場合、Remoteオブジェクトをアンエクスポートできなかった場合、またはリモート終了要求の転送時に通信障害が発生した場合。
      • createMBean

        ObjectInstance createMBean​(String className,
                                   ObjectName name,
                                   MarshalledObject params,
                                   String[] signature,
                                   Subject delegationSubject)
                            throws ReflectionException,
                                   InstanceAlreadyExistsException,
                                   MBeanRegistrationException,
                                   MBeanException,
                                   NotCompliantMBeanException,
                                   IOException
        MBeanServerConnection.createMBean(String, ObjectName, Object[], String[])メソッドを処理します。 Object[]パラメータは、MarshalledObjectにラップされています。
        パラメータ:
        className - インスタンス化するMBeanのクラス名。
        name - MBeanのオブジェクト名。 nullも可。
        params - 呼び出されるコンストラクタのパラメータを含む配列。この配列は、MarshalledObjectにカプセル化されている。 カプセル化された配列がnullの場合、空配列と同じ意味になる。
        signature - 呼び出されるコンストラクタのシグニチャを含む配列。 nullの場合、空配列と同じ意味になる。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
        例外:
        ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
        InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
        MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
        MBeanException - MBeanのコンストラクタが例外をスローした場合。
        NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合。
        RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameにパターンが含まれているか、MBeanにObjectNameが指定されていない場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • createMBean

        ObjectInstance createMBean​(String className,
                                   ObjectName name,
                                   ObjectName loaderName,
                                   MarshalledObject params,
                                   String[] signature,
                                   Subject delegationSubject)
                            throws ReflectionException,
                                   InstanceAlreadyExistsException,
                                   MBeanRegistrationException,
                                   MBeanException,
                                   NotCompliantMBeanException,
                                   InstanceNotFoundException,
                                   IOException
        MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[])メソッドを処理します。 Object[]パラメータは、MarshalledObjectにラップされています。
        パラメータ:
        className - インスタンス化するMBeanのクラス名。
        name - MBeanのオブジェクト名。 nullも可。
        loaderName - 使用するクラス・ローダーのオブジェクト名。
        params - 呼び出されるコンストラクタのパラメータを含む配列。この配列は、MarshalledObjectにカプセル化されている。 カプセル化された配列がnullの場合、空配列と同じ意味になる。
        signature - 呼び出されるコンストラクタのシグニチャを含む配列。 nullの場合、空配列と同じ意味になる。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        新しくインスタンス化されたMBeanのObjectNameとJavaクラス名を含むObjectInstance 含まれるObjectNamenの場合、含まれるJavaクラス名はgetMBeanInfo(n).getClassName()
        例外:
        ReflectionException - MBeanのコンストラクタの呼出し時に発行されるjava.lang.ClassNotFoundExceptionまたはjava.lang.Exceptionをラップする場合。
        InstanceAlreadyExistsException - MBeanがすでにMBeanサーバーによって制御されている場合。
        MBeanRegistrationException - MBeanのpreRegister (MBeanRegistrationインタフェース)メソッドが例外をスローした場合。 MBeanは登録されない。
        MBeanException - MBeanのコンストラクタが例外をスローした場合。
        NotCompliantMBeanException - このクラスがJMX準拠のMBeanでない場合。
        InstanceNotFoundException - 指定されたクラス・ローダーがMBeanサーバーに登録されていない場合。
        RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータに渡されるclassNameがnullであるか、パラメータに渡されるObjectNameにパターンが含まれているか、MBeanにObjectNameが指定されていない場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • getObjectInstance

        ObjectInstance getObjectInstance​(ObjectName name,
                                         Subject delegationSubject)
                                  throws InstanceNotFoundException,
                                         IOException
        パラメータ:
        name - MBeanのオブジェクト名。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        nameで指定されたMBeanに関連付けられたObjectInstance 含まれるObjectNamenameで、含まれるクラス名はgetMBeanInfo(name).getClassName()
        例外:
        InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
        RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • queryMBeans

        Set<ObjectInstance> queryMBeans​(ObjectName name,
                                        MarshalledObject query,
                                        Subject delegationSubject)
                                 throws IOException
        MBeanServerConnection.queryMBeans(ObjectName, QueryExp)メソッドを処理します。 QueryExpは、MarshalledObjectにラップされています。
        パラメータ:
        name - 取得するMBeanを識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanが取得される。
        query - MBeanの選択に適用されるクエリー式。MarshalledObjectにカプセル化されている。 MarshalledObjectにnull値がカプセル化されている場合、MBeanの選択にクエリー式は適用されない。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        選択されたMBeanのObjectInstanceオブジェクトを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。
        例外:
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • queryNames

        Set<ObjectName> queryNames​(ObjectName name,
                                   MarshalledObject query,
                                   Subject delegationSubject)
                            throws IOException
        MBeanServerConnection.queryNames(ObjectName, QueryExp)メソッドを処理します。 QueryExpは、MarshalledObjectにラップされています。
        パラメータ:
        name - 取得するMBean名を識別するオブジェクト名パターン。 nullの場合、またはドメインやキーのプロパティが指定されていない場合は、登録されているすべてのMBeanの名前が取得される。
        query - MBeanの選択に適用されるクエリー式。MarshalledObjectにカプセル化されている。 MarshalledObjectにnull値がカプセル化されている場合、MBeanの選択にクエリー式は適用されない。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        選択されたMBeanのObjectNameを含むセット。 クエリーの条件を満たすMBeanが存在しない場合、空のリストが返される。
        例外:
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • isRegistered

        boolean isRegistered​(ObjectName name,
                             Subject delegationSubject)
                      throws IOException
        MBeanServerConnection.isRegistered(ObjectName)メソッドを処理します。
        パラメータ:
        name - チェック対象のMBeanのオブジェクト名。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        MBeanがすでにMBeanサーバーに登録されている場合はtrue、そうでない場合はfalse。
        例外:
        RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • getMBeanCount

        Integer getMBeanCount​(Subject delegationSubject)
                       throws IOException
        MBeanServerConnection.getMBeanCount()メソッドを処理します。
        パラメータ:
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        登録済みのMBeanの数。
        例外:
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • invoke

        Object invoke​(ObjectName name,
                      String operationName,
                      MarshalledObject params,
                      String[] signature,
                      Subject delegationSubject)
               throws InstanceNotFoundException,
                      MBeanException,
                      ReflectionException,
                      IOException
        MBeanServerConnection.invoke(ObjectName, String, Object[], String[])メソッドを処理します。 Object[]パラメータは、MarshalledObjectにラップされています。
        パラメータ:
        name - メソッドの呼出しが行われるMBeanのオブジェクト名。
        operationName - 呼び出されるオペレーションの名前。
        params - オペレーションが呼び出され、MarshalledObjectにカプセル化されたとき設定されるパラメータを含む配列。 カプセル化された配列がnullの場合、空配列と同じ意味になる。
        signature - オペレーションのシグニチャを含む配列。 クラス・オブジェクトのロードには、オペレーションを呼び出したMBeanをロードするときと同じクラス・ローダーが使用される。 nullの場合、空配列と同じ意味になる。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        オペレーションによって返されるオブジェクト。指定されたMBean上でオペレーションを呼び出した結果を表す。
        例外:
        InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
        MBeanException - MBeanの呼出しメソッドによってスローされる例外をラップする場合。
        ReflectionException - メソッドの呼出し時にスローされるjava.lang.Exceptionをラップする場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
        RuntimeOperationsException - nameまたはoperationNameがnullの場合、IllegalArgumentExceptionをラップする場合。
      • getDefaultDomain

        String getDefaultDomain​(Subject delegationSubject)
                         throws IOException
        MBeanServerConnection.getDefaultDomain()メソッドを処理します。
        パラメータ:
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        デフォルトのドメイン。
        例外:
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • getDomains

        String[] getDomains​(Subject delegationSubject)
                     throws IOException
        MBeanServerConnection.getDomains()メソッドを処理します。
        パラメータ:
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        ドメインのリスト。
        例外:
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • isInstanceOf

        boolean isInstanceOf​(ObjectName name,
                             String className,
                             Subject delegationSubject)
                      throws InstanceNotFoundException,
                             IOException
        パラメータ:
        name - MBeanのObjectName
        className - クラスの名前。
        delegationSubject - 委譲プリンシパルを含むSubject。認証プリンシパルが代わりに使用されている場合はnull
        戻り値:
        上記の規則に従って、指定されたMBeanが指定されたクラスのインスタンスである場合はtrue、そうでない場合はfalse。
        例外:
        InstanceNotFoundException - 指定されたMBeanがMBeanサーバーに登録されていない場合。
        SecurityException - クライアントまたは委譲されたSubjectが、このオペレーションの実行権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
        RuntimeOperationsException - java.lang.IllegalArgumentExceptionをラップする場合。すなわち、パラメータ内のオブジェクト名がnullの場合。
      • addNotificationListeners

        Integer[] addNotificationListeners​(ObjectName[] names,
                                           MarshalledObject[] filters,
                                           Subject[] delegationSubjects)
                                    throws InstanceNotFoundException,
                                           IOException

        MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)メソッドを処理します。

        指定されたフィルタに一致するMBeanからの通知を登録します。 リモート・クライアントは、その後、fetchNotificationsメソッドを使ってこれらの通知を取得できます。

        クライアント側には、リスナーごとに元のNotificationListenerhandbackが保持されます。クライアントがこれらを識別できるように、サーバーは一意のlistenerIDを生成し、返します。 このlistenerIDNotificationsとともにリモート・クライアントに転送されます。

        指定されたペア(名前、フィルタ)のいずれかを登録できない場合、オペレーションは例外を発行して終了します。この場合、名前もフィルタも登録されません。

        パラメータ:
        names - Notificationの発行元MBeanを識別するObjectNames
        filters - NotificationFiltersの整列化された表現から成る配列。 この配列の要素はnullでもよい。
        delegationSubjects - Subjects。このSubject (複数可)の代わりにリスナーが追加される。 この配列の要素はnullでもよい。 また、delegationSubjectsパラメータ自体がnullであってもよい。その場合、この配列は、names配列やfilters配列と同じサイズのnull値から成る配列と同等になる。
        戻り値:
        ローカル・リスナーを識別するlistenerIDsから成る配列。 この配列はパラメータと同じ数の要素を持つ。
        例外:
        IllegalArgumentException - namesまたはfiltersがnullの場合、namesにnull要素が含まれる場合、または3つの配列のサイズが異なる場合。
        ClassCastException - filtersのいずれかの要素がNotificationFilter以外の非nullオブジェクトとして非整列化する場合。
        InstanceNotFoundException - namesのいずれかが登録済みMBeanに対応していない場合。
        SecurityException - いずれかのMBeanで、クライアントまたは委譲されたSubjectが、リスナーを追加するアクセス権を持たない場合。
        IOException - 一般的な通信例外が発生した場合。
      • fetchNotifications

        NotificationResult fetchNotifications​(long clientSequenceNumber,
                                              int maxNotifications,
                                              long timeout)
                                       throws IOException

        コネクタ・サーバーから通知を受信します。 このメソッドは、1つ以上通知が発行されるか、指定されたタイム・アウトに達するまでブロックできます。 また、通知が0であればいつでも終了できます。

        シーケンス番号がclientSequenceNumber以上で、このクライアントが通知を受け付けるフィルタを使って通知の発行元MBeanのリスナーを1つ以上登録している場合、この通知を結果に含めることができます。 この通知を待機する各リスナーは、addNotificationListeners(ObjectName[], MarshalledObject[], Subject[])によって返された整数値のIDによって識別されます。

        パラメータ:
        clientSequenceNumber - クライアントが待機する最初のシーケンス番号。 負の値の場合、次の通知のシーケンス番号と解釈される。
        maxNotifications - 返される異なった通知の最大数。 同じ通知が繰返し発行される場合、返されるNotificationResultに含まれるTargetedNotification配列は、この値より多くの要素を持つことができる。 このパラメータの値が負の場合の動作は不定。
        timeout - 通知の着信を待つ最大時間(ミリ秒単位)。 0の場合、通知がないとメソッドは待機せず、ただちに終了する。 Long.MAX_VALUEの場合、タイム・アウトは設定されない。 このパラメータの値が負の場合の動作は不定。
        戻り値:
        NotificationResult
        例外:
        IOException - 一般的な通信例外が発生した場合。