public class JMXConnectorFactory extends Object
JMX API コネクタクライアントを作成するファクトリです。このクラスのインスタンスは存在しません。
通常、接続は、このクラスの connect
メソッドにより確立されます。高度なアプリケーションでは、コネクタクライアントの作成 (newJMXConnector
を使用) と接続自体の確立 (JMXConnector.connect(Map)
を使用) を分けることができます。
各クライアントは、JMXConnectorProvider
のインスタンスによって作成されます。このインスタンスは次のようにして見つけられます。指定された JMXServiceURL
が "service:jmx:protocol:remainder"
のようだったとします。ファクトリは、その protocol
に適切な JMXConnectorProvider
の検索を行います。protocol
に含まれる文字 +
と -
は、それぞれ .
と _
で置き換えられます。
プロバイダパッケージリストの検索手順は次のとおりです。
newJMXConnector
の environment
パラメータにキー jmx.remote.protocol.provider.pkgs
が含まれる場合、関連付けられている値がプロバイダパッケージリストになります。
jmx.remote.protocol.provider.pkgs
が存在する場合、その値がプロバイダパッケージリストになります。
プロバイダパッケージリストは、縦棒 (|
) で区切られた空でない Java パッケージ名のリストと解釈される文字列です。この文字列が空の場合、プロバイダパッケージリストも空になります。プロバイダパッケージリストが String でない場合、または空文字列を要素として含む場合、JMXProviderException
がスローされます。
空でないプロバイダパッケージリストが存在する場合、ファクトリにより、リストの各 pkg
要素に対して、クラスのロードが試行されます。
pkg.protocol.ClientProvider
newJMXConnector
の environment
パラメータにキー 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
を使用するサービスプロバイダの JAR 規約がサポートされています。
すべての実装は、文字列 rmi
または iiop
で指定される RMI コネクタプロトコルをサポートしていなければいけません。
プロバイダが見つかった場合、newJMXConnector
メソッドの結果が、そのプロバイダ上で newJMXConnector
を呼び出した結果に一致します。
JMXConnectorProvider
に渡された Map
パラメータは、JMXConnectorFactory.newJMXConnector
の environment
パラメータ内にあったすべてのエントリを含む、新しい読み取り専用 Map
になります。さらに、environment
パラメータ内に jmx.remote.protocol.provider.class.loader
キーが存在しない場合、新しい読み取り専用 Map
に追加されます。呼び出しスレッドのコンテキストクラスローダーが値として関連付けられます。
修飾子と型 | フィールドと説明 |
---|---|
static String |
DEFAULT_CLASS_LOADER
デフォルトのクラスローダーを指定する属性の名前です。
|
static String |
PROTOCOL_PROVIDER_CLASS_LOADER
プロトコルプロバイダをロードするクラスローダーを指定する属性の名前です。
|
static String |
PROTOCOL_PROVIDER_PACKAGES
プロトコルハンドラの検索時に照会されるプロバイダパッケージを指定する属性の名前です。
|
修飾子と型 | メソッドと説明 |
---|---|
static JMXConnector |
connect(JMXServiceURL serviceURL)
指定されたアドレスのコネクタサーバーとの接続を作成します。
|
static JMXConnector |
connect(JMXServiceURL serviceURL, Map<String,?> environment)
指定されたアドレスのコネクタサーバーとの接続を作成します。
|
static JMXConnector |
newJMXConnector(JMXServiceURL serviceURL, Map<String,?> environment)
指定されたアドレスのコネクタサーバーのコネクタクライアントを作成します。
|
public static final String DEFAULT_CLASS_LOADER
デフォルトのクラスローダーを指定する属性の名前です。このクラスローダーは、リモート MBeanServerConnection
呼び出しからの戻り値と例外を直列化復元するために使用されます。この属性には、値として、ClassLoader
のインスタンスが関連付けられます。
public static final String PROTOCOL_PROVIDER_PACKAGES
プロトコルハンドラの検索時に照会されるプロバイダパッケージを指定する属性の名前です。この属性には、値として、縦棒 (|
) で区切られたパッケージ名から成る文字列が関連付けられます。
public static final String PROTOCOL_PROVIDER_CLASS_LOADER
プロトコルプロバイダをロードするクラスローダーを指定する属性の名前です。この属性には、値として、ClassLoader
のインスタンスが関連付けられます。
public static JMXConnector connect(JMXServiceURL serviceURL) throws IOException
指定されたアドレスのコネクタサーバーとの接続を作成します。
このメソッドは、connect(serviceURL, null)
と同等です。
serviceURL
- 接続先コネクタサーバーのアドレス。connect
メソッドが呼び出された JMXConnector
。NullPointerException
- serviceURL
が null である場合。IOException
- 通信障害によりコネクタクライアントを作成できない場合、または接続を確立できない場合。SecurityException
- セキュリティー上の理由により接続を確立できない場合。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
- セキュリティー上の理由により接続を確立できない場合。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
内にプロトコルのプロバイダが存在するが、何らかの理由で使用できない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.