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

クラスJMXConnectorServerFactory



  • public class JMXConnectorServerFactory
    extends Object

    JMX APIコネクタ・サーバーを作成するファクトリです。 このクラスのインスタンスは存在しません。

    各コネクタ・サーバーは、JMXConnectorServerProviderのインスタンスによって作成されます。 このインスタンスは次のようにして見つけられます。 指定されたJMXServiceURL"service:jmx:protocol:remainder"のようだったとします。 ファクトリは、そのprotocolに適切なJMXConnectorServerProviderの検索を行います。 protocolに含まれる文字+-は、それぞれ._で置き換えられます。

    プロバイダ・パッケージ・リストの検索手順は次のとおりです。

    1. newJMXConnectorServerenvironmentパラメータにキーjmx.remote.protocol.provider.pkgsが含まれる場合、関連付けられている値がプロバイダ・パッケージ・リストになります。
    2. それ以外の場合で、システム・プロパティjmx.remote.protocol.provider.pkgsが存在する場合、その値がプロバイダ・パッケージ・リストになります。
    3. それ以外の場合、プロバイダ・パッケージ・リストは存在しません。

    プロバイダ・パッケージ・リストは、縦棒(|)で区切られた空でないJavaパッケージ名のリストと解釈される文字列です。 この文字列が空の場合、プロバイダ・パッケージ・リストも空になります。 プロバイダ・パッケージ・リストがStringでない場合、または空文字列を要素として含む場合、JMXProviderExceptionがスローされます。

    空でないプロバイダ・パッケージ・リストが存在する場合、ファクトリにより、リストの各pkg要素に対して、クラスのロードが試行されます。

    pkg.protocol.ServerProvider

    newJMXConnectorServerenvironmentパラメータにキーjmx.remote.protocol.provider.class.loaderが含まれる場合、関連付けられた値がプロバイダをロードするためのクラス・ローダーになります。 関連付けられた値がClassLoaderのインスタンスでない場合は、IllegalArgumentExceptionがスローされます。

    environmentパラメータ内にjmx.remote.protocol.provider.class.loaderキーが含まれない場合、呼出しスレッドのコンテンツ・クラス・ローダーが使用されます。

    このクラスのロード時にClassNotFoundExceptionがスローされた場合、ハンドラの検索はリスト内の次の要素に引き継がれます。

    それ以外の場合、JMXProviderExceptionにより、検出されたプロバイダに関する問題が報告されます。この例外のcauseは、次のように潜在的な例外を示します。

    • クラスのロード時にClassNotFoundException以外の例外がスローされた場合、これがcauseになります。
    • クラスのClass.newInstance()によって例外がスローされた場合、これがcauseになります。

    プロバイダ・パッケージ・リストが存在しないデフォルト状態を含めて、前述の手順でプロバイダが検出されなかった場合、実装はprotocolに対して固有のプロバイダを使用します。固有のプロバイダがない場合は、MalformedURLExceptionをスローします。 その他の方法でプロバイダを検索することもできます。 たとえば、サービス・インタフェースがJMXConnectorServerProvider「サービス・プロバイダ」をサポートします。

    すべての実装は、文字列rmiで指定される、デフォルトのRMIトランスポートを使用するRMIコネクタ・プロトコルをサポートしている必要があります。

    プロバイダが見つかった場合、newJMXConnectorServerメソッドの結果が、そのプロバイダ上でnewJMXConnectorServerを呼び出した結果に一致します。

    JMXConnectorServerProviderに渡されたMapパラメータは、JMXConnectorServerFactory.newJMXConnectorServerenvironmentパラメータ内にあったすべてのエントリを含む、新しい読取り専用Mapになります。 さらに、environmentパラメータ内にjmx.remote.protocol.provider.class.loaderキーが存在しない場合、新しい読取り専用Mapに追加されます。 呼出しスレッドのコンテキスト・クラス・ローダーが値として関連付けられます。

    導入されたバージョン:
    1.5
    • フィールドの詳細

      • DEFAULT_CLASS_LOADER

        public static final String DEFAULT_CLASS_LOADER

        デフォルトのクラス・ローダーを指定する属性の名前です。 このクラス・ローダーは、MBean固有のクラス・ローダーの照会後(任意)、クライアントから受信した要求に含まれるオブジェクトを直列化復元するために使用されます。 この属性には、値として、ClassLoaderのインスタンスが関連付けられます。

        関連項目:
        定数フィールド値
      • DEFAULT_CLASS_LOADER_NAME

        public static final String DEFAULT_CLASS_LOADER_NAME

        デフォルトのクラス・ローダーMBean名を指定する属性の名前です。 このクラス・ローダーは、MBean固有のクラス・ローダーの照会後(任意)、クライアントから受信した要求に含まれるオブジェクトを直列化復元するために使用されます。 この属性には、値として、ObjectNameのインスタンスが関連付けられます。

        関連項目:
        定数フィールド値
      • PROTOCOL_PROVIDER_PACKAGES

        public static final String PROTOCOL_PROVIDER_PACKAGES

        プロトコル・ハンドラの検索時に照会されるプロバイダ・パッケージを指定する属性の名前です。 この属性には、値として、縦棒(|)で区切られたパッケージ名から成る文字列が関連付けられます。

        関連項目:
        定数フィールド値
      • PROTOCOL_PROVIDER_CLASS_LOADER

        public static final String PROTOCOL_PROVIDER_CLASS_LOADER

        プロトコル・プロバイダをロードするクラス・ローダーを指定する属性の名前です。 この属性には、値として、ClassLoaderのインスタンスが関連付けられます。

        関連項目:
        定数フィールド値
    • メソッドの詳細

      • newJMXConnectorServer

        public static JMXConnectorServer newJMXConnectorServer​(JMXServiceURL serviceURL,
                                                               Map<String,?> environment,
                                                               MBeanServer mbeanServer)
                                                        throws IOException

        指定されたアドレスのコネクタ・サーバーを作成します。 作成されたサーバーは、startメソッドが呼び出されるまで起動しません。

        パラメータ:
        serviceURL - 新しいコネクタ・サーバーのアドレス。 getAddressメソッドによって返される新しいコネクタ・サーバーの実際のアドレスは、厳密に同じであるとは限らない。 たとえば、元のアドレスに含まれていないポート番号が含まれている場合がある。
        environment - 新しいコネクタ・サーバーの動作を制御する属性のセット。 このパラメータはnullも可。 このマップ内のキーはStringでなければならない。 関連付けられている個々の値にどの型が適切かは、属性によって決定される。 この呼出しがenvironmentを変更することはない。
        mbeanServer - このコネクタ・サーバーの接続先MBeanサーバー。 このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。
        戻り値:
        新しいコネクタ・サーバーを表すJMXConnectorServer このメソッドが正常に呼び出されると、そのたびに異なったオブジェクトが生成される。
        例外:
        NullPointerException - serviceURLがnullである場合。
        IOException - 通信障害によりコネクタ・サーバーを作成できない場合。
        MalformedURLException - serviceURL内にプロトコルのプロバイダが存在しない場合。
        JMXProviderException - serviceURL内にプロトコルのプロバイダが存在するが、何らかの理由で使用できない場合。