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

クラスJMXConnectorFactory

java.lang.Object
javax.management.remote.JMXConnectorFactory

public class JMXConnectorFactory
extends Object

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

通常、接続は、このクラスのconnectメソッドにより確立されます。 高度なアプリケーションでは、コネクタ・クライアントの作成(newJMXConnectorを使用)と接続自体の確立(JMXConnector.connect(Map)を使用)を分けることができます。

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

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

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

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

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

pkg.protocol.ClientProvider

newJMXConnectorenvironmentパラメータにキー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をスローします。 その他の方法でプロバイダを検索することもできます。 たとえば、サービス・インタフェースがJMXConnectorProvider「サービス・プロバイダ」をサポートします。

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

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

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

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

    • DEFAULT_CLASS_LOADER

      public static final String DEFAULT_CLASS_LOADER

      デフォルトのクラス・ローダーを指定する属性の名前です。 このクラス・ローダーは、リモートMBeanServerConnection呼び出しからの戻り値と例外を直列化復元するために使用されます。 この属性には、値として、ClassLoaderのインスタンスが関連付けられます。

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

      public static final String PROTOCOL_PROVIDER_PACKAGES

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

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

      public static final String PROTOCOL_PROVIDER_CLASS_LOADER

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

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

    • connect

      public static JMXConnector connect​(JMXServiceURL serviceURL) throws IOException

      指定されたアドレスのコネクタ・サーバーとの接続を作成します。

      このメソッドは、connect(serviceURL, null)と同等です。

      パラメータ:
      serviceURL - 接続先コネクタ・サーバーのアドレス。
      戻り値:
      connectメソッドが呼び出されたJMXConnector
      例外:
      NullPointerException - serviceURLがnullである場合。
      IOException - 通信障害によりコネクタ・クライアントを作成できない場合、または接続を確立できない場合。
      SecurityException - セキュリティ上の理由により接続を確立できない場合。
    • connect

      public static JMXConnector connect​(JMXServiceURL serviceURL, Map<String,​?> environment) throws IOException

      指定されたアドレスのコネクタ・サーバーとの接続を作成します。

      このメソッドは、次と同等です。

       JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL,
                                                               environment);
       conn.connect(environment);
       
      パラメータ:
      serviceURL - 接続先コネクタ・サーバーのアドレス。
      environment - 接続の確立方法を決定付ける属性のセット。 このパラメータはnullも可。 このマップ内のキーはStringでなければならない。 関連付けられている個々の値にどの型が適切かは、属性によって決定される。 この呼出しがenvironmentを変更することはない。
      戻り値:
      新しく確立された接続を表すJMXConnector このメソッドが正常に呼び出されると、そのたびに異なったオブジェクトが生成される。
      例外:
      NullPointerException - serviceURLがnullである場合。
      IOException - 通信障害によりコネクタ・クライアントを作成できない場合、または接続を確立できない場合。
      SecurityException - セキュリティ上の理由により接続を確立できない場合。
    • newJMXConnector

      public static JMXConnector newJMXConnector​(JMXServiceURL serviceURL, Map<String,​?> environment) throws IOException

      指定されたアドレスのコネクタ・サーバーのコネクタ・クライアントを作成します。 作成されたクライアントは、connectメソッドが呼び出されるまで接続されません。

      パラメータ:
      serviceURL - 接続先コネクタ・サーバーのアドレス。
      environment - 接続の確立方法を決定付ける属性のセット。 このパラメータはnullも可。 このマップ内のキーはStringでなければならない。 関連付けられている個々の値にどの型が適切かは、属性によって決定される。 この呼出しがenvironmentを変更することはない。
      戻り値:
      新しいコネクタ・クライアントを表すJMXConnector このメソッドが正常に呼び出されると、そのたびに異なったオブジェクトが生成される。
      例外:
      NullPointerException - serviceURLがnullである場合。
      IOException - 通信障害によりコネクタ・クライアントを作成できない場合。
      MalformedURLException - serviceURL内にプロトコルのプロバイダが存在しない場合。
      JMXProviderException - serviceURL内にプロトコルのプロバイダが存在するが、何らかの理由で使用できない場合。