JavaTM Platform
Standard Ed. 6

javax.management.remote
クラス JMXConnectorServerFactory

java.lang.Object
  上位を拡張 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 は、次のように潜在的な例外を示します。

 

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

 

すべての実装は、文字列 rmi または iiop で指定される RMI コネクタプロトコルをサポートしていなければいけません。

 

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

 

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

導入されたバージョン:
1.5

フィールドの概要
static String DEFAULT_CLASS_LOADER
           デフォルトのクラスローダーを指定する属性の名前です。
static String DEFAULT_CLASS_LOADER_NAME
           デフォルトのクラスローダー MBean 名を指定する属性の名前です。
static String PROTOCOL_PROVIDER_CLASS_LOADER
           プロトコルプロバイダをロードするクラスローダーを指定する属性の名前です。
static String PROTOCOL_PROVIDER_PACKAGES
           プロトコルハンドラの検索時に照会されるプロバイダパッケージを指定する属性の名前です。
 
メソッドの概要
static JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer)
           指定されたアドレスのコネクタサーバーを作成します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

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 内に プロトコルのプロバイダが存在するが、 何らかの理由で使用できない場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。