クラスRMIConnectorServer
- すべての実装されたインタフェース:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean
リモート・クライアントからのRMIベースの接続を作成するJMX APIコネクタ・サーバーです。 通常、こうしたコネクタ・サーバーは、JMXConnectorServerFactoryで作成されます。 しかし、RMIServerImplオブジェクトなど、このクラスを直接使用できる特殊なアプリケーションもあります。
- 導入されたバージョン:
- 1.5
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringRMIServer.newClient()リモート・メソッド呼び出しで許容されるクラスをフィルタ処理するためのObjectInputFilterパターン文字列を指定する属性の名前。static final StringRMIコネクタ・サーバーを表すRMIServerスタブが同じアドレスの既存のスタブをオーバーライドするかどうかを指定する属性の名前です。static final String作成されたRMIオブジェクトのRMIClientSocketFactoryをこのコネクタに指定する属性の名前です。static final String作成されたRMIオブジェクトのRMIServerSocketFactoryをこのコネクタに指定する属性の名前です。static final Stringこの属性は、任意のクライアントがJMXConnectorServerに送信したオブジェクトを逆直列化するときに使用されるObjectInputFilterを作成するパターンを定義します。クラスで宣言されたフィールド JMXConnectorServer
AUTHENTICATOR -
コンストラクタのサマリー
コンストラクタコンストラクタ説明RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment) RMIConnectorServerを作成します。RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment, MBeanServer mbeanServer) 指定されたMBeanサーバーのRMIConnectorServerを作成します。RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) 指定されたMBeanサーバーのRMIConnectorServerを作成します。 -
メソッドのサマリー
クラスで宣言されたメソッド JMXConnectorServer
connectionClosed, connectionFailed, connectionOpened, getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder修飾子と型メソッド説明protected voidconnectionClosed(String connectionId, String message, Object userData) クライアント接続が正常に終了したときサブクラスによって呼び出されます。protected voidconnectionFailed(String connectionId, String message, Object userData) クライアント接続に失敗したときサブクラスによって呼び出されます。protected voidconnectionOpened(String connectionId, String message, Object userData) 新しいクライアント接続が開かれるとサブクラスによって呼び出されます。String[]このコネクタ・サーバーへの現在開いている接続のIDのリストです。このコネクタ・サーバーの接続先MBeanサーバーを返します。このMBeanから送信される通知を示す配列を返します。voidMBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。voidpostRegister(Boolean registrationDone) MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。voidこのコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。preRegister(MBeanServer mbs, ObjectName name) このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。voidこのコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。クラスで宣言されたメソッド NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification修飾子と型メソッド説明voidaddNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) リスナーを追加します。protected voidhandleNotification(NotificationListener listener, Notification notif, Object handback) このメソッドは、リスナーに通知を送信するため、sendNotificationによって呼び出されます。voidこのMBeanからリスナーを削除します。voidremoveNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) このMBeanからリスナーを削除します。voidsendNotification(Notification notification) 通知を送信します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
-
フィールド詳細
-
JNDI_REBIND_ATTRIBUTE
-
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE作成されたRMIオブジェクトの
RMIClientSocketFactoryをこのコネクタに指定する属性の名前です。 この属性にはRMIClientSocketFactory型の値を関連付ける必要があり、その値はコネクタ・サーバーの作成時に指定されたMap引数内にのみ指定できます。- 関連項目:
-
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE作成されたRMIオブジェクトの
RMIServerSocketFactoryをこのコネクタに指定する属性の名前です。 この属性にはRMIServerSocketFactory型の値を関連付ける必要があり、その値はコネクタ・サーバーの作成時に指定されたMap引数内にのみ指定できます。- 関連項目:
-
CREDENTIALS_FILTER_PATTERN
public static final String CREDENTIALS_FILTER_PATTERNRMIServer.newClient()リモート・メソッド呼び出しで許容されるクラスをフィルタ処理するためのObjectInputFilterパターン文字列を指定する属性の名前。フィルタ・パターンは、
ObjectInputFilter.Config.createFilter(String)で使用されているものと同じ形式である必要がありますフィルタによって許可されるこのクラスのリストは、RMIServer実装に関連してインストールされたJMXAuthenticatorによって使用される資格証明クラス(またはクラス)の推移的クロージャに対応する必要があります。 属性が設定されていない場合、クラスは受け入れ可能とみなされます。
- 導入されたバージョン:
- 10
- 関連項目:
-
SERIAL_FILTER_PATTERN
public static final String SERIAL_FILTER_PATTERNこの属性は、任意のクライアントがJMXConnectorServerに送信したオブジェクトを逆直列化するときに使用されるObjectInputFilterを作成するパターンを定義します。フィルタは、すべてのJMX定義クラス(
ObjectNameなど)、すべてのメソッド・パラメータ、およびストリーム内に存在する場合は、直列化復元されたオブジェクトの直列化形式によって推移的に参照されるすべてのクラスを含む、クライアントによってサーバーに送信される直列化ストリームで検出されたすべてのクラス。 パターンは、ObjectInputFilter.Config.createFilter(String)で使用されているものと同じ形式である必要があります。 許可されたクラスの許可リスト、拒否されたクラスの拒否リスト、直列化復元されたオブジェクトの最大深度などを定義できます。機能するためには、
RMIConnectionインタフェースのパラメータと呼ばれるすべてのJMXクラスと、clientがラップして送信する必要があるすべてのクラスを直列化するときに直列化される可能性のあるすべてのオブジェクトの推移的クロージャの少なくともすべての具体的な型をフィルタで許可する必要がありますMBeanServerに登録されているMBeanと相互運用するために「マーシャルされたオブジェクト」を使用します。 これには、具体的なJMX OpenTypesとそれらが直列化形式で使用するクラスがすべて含まれる可能性があります。このようなフィルタを定義する際には注意が必要です。狭すぎる許可リストや広すぎる拒否リストを定義すると、正規のクライアントが
JMXConnectorServerと相互運用できなくなる可能性があります。- 導入されたバージョン:
- 10
- 関連項目:
-
-
コンストラクタの詳細
-
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment) throws IOExceptionRMIConnectorServerを作成します。 これは、RMIConnectorServer(directoryURL,environment,null,null)の呼び出しと同等です。- パラメータ:
url- コネクタ・サーバーの作成方法を定義するURL。 nullは不可。environment- RMIオブジェクトの作成と格納を管理する属性。 nullも可、その場合は空マップと同等。- スロー:
IllegalArgumentException-urlがnullである場合。MalformedURLException-urlがRMIコネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。 このコンストラクタを使用する場合、"rmi"のみが有効です。IOException- 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。
-
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment, MBeanServer mbeanServer) throws IOException指定されたMBeanサーバーの
RMIConnectorServerを作成します。 これは、RMIConnectorServer(directoryURL,environment,null,mbeanServer)の呼び出しと同等です。- パラメータ:
url- コネクタ・サーバーの作成方法を定義するURL。 nullは不可。environment- RMIオブジェクトの作成と格納を管理する属性。 nullも可、その場合は空マップと同等。mbeanServer- 新しいコネクタ・サーバーの接続先MBeanサーバー。このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。- スロー:
IllegalArgumentException-urlがnullである場合。MalformedURLException-urlがRMIコネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。 このコンストラクタを使用する場合、"rmi"のみが有効です。IOException- 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。
-
RMIConnectorServer
public RMIConnectorServer(JMXServiceURL url, Map<String, ?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) throws IOException指定されたMBeanサーバーの
RMIConnectorServerを作成します。- パラメータ:
url- コネクタ・サーバーの作成方法を定義するURL。 nullは不可。environment- RMIオブジェクトの作成と格納を管理する属性。 nullも可、その場合は空マップと同等。rmiServerImpl- urlに指定されたプロトコル型に準拠した、RMIServerインタフェースの実装。 このパラメータの値がnull以外の場合、urlに指定されたプロトコル・タイプは強制されず、有効と見なされる。 それ以外の場合は、"rmi"のみが認識されます。mbeanServer- 新しいコネクタ・サーバーの接続先MBeanサーバー。このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。- スロー:
IllegalArgumentException-urlがnullである場合。MalformedURLException-urlがRMIコネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。 rmiServerImplがnullの場合、"rmi"のみが認識されます。IOException- 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。- 関連項目:
-
-
メソッドの詳細
-
toJMXConnector
public JMXConnector toJMXConnector(Map<String, ?> env) throws IOExceptionこのコネクタ・サーバーのクライアント・スタブを返します。 クライアント・スタブは直列化可能なオブジェクトです。このオブジェクトの
connectメソッドを使用して、このコネクタ・サーバーとの新しい接続を1つ確立できます。- 定義:
toJMXConnector、インタフェースJMXConnectorServerMBean- オーバーライド:
toJMXConnector、クラスJMXConnectorServer- パラメータ:
env-JMXConnector.connect(Map)に提供可能な同じ種類のクライアント接続パラメータ。 nullも可、その場合は空マップと同等。- 戻り値:
- このコネクタ・サーバーとの新しい接続を確立するために使用できるクライアント・スタブ。
- スロー:
UnsupportedOperationException- このコネクタ・サーバーがクライアント・スタブの生成機能をサポートしない場合。IllegalStateException- JMXConnectorServerが起動していない場合(isActive()を参照)。IOException- 通信障害により、スタブを作成できない場合。
-
start
public void start() throws IOExceptionアクティブになったコネクタ・サーバーは、クライアント接続の待機を開始します。 コネクタ・サーバーがすでにアクティブな場合は、このメソッドを呼び出しても何も起こりません。 コネクタ・サーバーが停止している状態でこのメソッドを呼び出すと、
IOExceptionが生成されます。初期呼出し時のこのメソッドの動作は、次のように、構築時に指定されたパラメータに依存します。
まず、RMIからコネクタ・サーバーをエクスポートするため、
RMIServerImplのサブクラスのオブジェクトが要求されます。- コンストラクタに
RMIServerImplが指定されていた場合は、これが使用されます。 - それ以外の場合、
JMXServiceURLがnullであるか、そのプロトコル部分がrmiであれば、RMIJRMPServerImpl型のオブジェクトが作成されます。 - それ以外の場合、実装は実装固有の
RMIServerImplを作成できるか、またはMalformedURLExceptionをスローできます。
指定されたアドレスに、
javax.management.remote.rmiのパッケージ・ドキュメントに指定されたとおりのJNDIディレクトリURLが含まれる場合、このRMIConnectorServerは、指定されたアドレスにRMIServerImplをバインドすることにより、ブートストラップします。JMXServiceURLのURLパス部分が空または単一のスラッシュ(/)である場合、RMIオブジェクトはディレクトリにバインドされません。 代わりに、その参照が、getAddress()から返されるRMIConnectorServerアドレスのURLパス内にエンコードされます。rmiのエンコーディングについては、javax.management.remote.rmiのパッケージ・ドキュメントを参照してください。URLパスが空でもJNDIディレクトリURLでもない場合、またはプロトコルが
rmiでない場合の動作が実装定義され、コネクタ・サーバーの作成時または起動時にMalformedURLExceptionのスローが含まれる場合があります。- スロー:
IllegalStateException- コネクタ・サーバーがMBeanサーバーに接続されていない場合。IOException- コネクタ・サーバーを起動できない場合。
- コンストラクタに
-
stop
public void stop() throws IOExceptionコネクタ・サーバーを終了して、クライアント接続の待機を停止します。 このメソッドを呼び出すと、このサーバーで作成されたすべてのクライアント接続が終了します。 このメソッドが正常に終了した場合も、例外を生成して終了した場合も、コネクタ・サーバーは新しいクライアント接続を作成しなくなります。
いったん停止したコネクタ・サーバーを再度起動することはできません。
コネクタ・サーバーがすでに停止している場合は、このメソッドを呼び出しても何も起こりません。 コネクタ・サーバーがまだ起動していない状態でこのメソッドを呼び出すと、コネクタ・サーバー・オブジェクトが永続的に無効化されます。
クライアント接続の終了時に生成された例外は、このメソッドからはスローされません。 このMBeanからは、
JMXConnectionNotificationと、終了できなかった接続の接続IDが発行されます。コネクタ・サーバーの終了は、時間のかかるオペレーションです。 たとえば有効な接続を持っているクライアント・マシンがクラッシュした場合、終了オペレーションはネットワーク・プロトコルのタイム・アウトまで中断される可能性があります。 終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。
このメソッドは、コネクタ・サーバーの
RMIServerImplオブジェクト上でcloseメソッドを呼び出します。startメソッドでRMIServerImplがJNDIディレクトリにバインドされている場合、このメソッドでバインドが解除されます。- スロー:
IOException- サーバーを正常に終了できない場合、またはディレクトリからRMIServerImplのバインドを解除できない場合。 この例外がスローされたとき、サーバーはすでにすべてのクライアント接続の終了(該当する場合)、RMIServerImpl.close()の呼び出し、およびディレクトリからのRMIServerImplのバインド解除(該当する場合)を試行している。 サーバーが終了を試行したとき例外が生成されたものを除いて、すべてのクライアント接続が終了している。
-
isActive
public boolean isActive()次のインタフェースからコピーされた説明:JMXConnectorServerMBeanコネクタ・サーバーがアクティブかどうかを判定します。
startメソッドが正常に終了すると、コネクタ・サーバーはアクティブになります。その後、stopメソッドが呼び出されるか、障害が発生するまで、コネクタ・サーバーはアクティブな状態を維持します。- 戻り値:
- コネクタ・サーバーがアクティブな場合はtrue。
-
getAddress
public JMXServiceURL getAddress()次のインタフェースからコピーされた説明:JMXConnectorServerMBeanこのコネクタ・サーバーのアドレス。
コネクタ・サーバーの作成時に指定されたアドレスが完全であるとは限らないため、返されるアドレスは元の
JMXServiceURLとは一致しない可能性があります。 たとえば、ポート番号はコネクタ・サーバーの起動時に動的に割り当てられることがあります。 このため、返されるアドレスはJMXConnectorServerの実際のJMXServiceURLです。 これは、クライアントがJMXConnectorFactory.connect(JMXServiceURL)に指定するアドレスです。JMXConnectorServerがまだactiveでない場合、返されるアドレスはnullになります。- 戻り値:
- このコネクタ・サーバーのアドレス。存在しない場合はnull。
-
getAttributes
次のインタフェースからコピーされた説明:JMXConnectorServerMBeanこのコネクタ・サーバーの属性。
- 戻り値:
- このコネクタ・サーバーの属性を含む読取り専用マップ。 直列化可能な値を持つ属性は、このマップから除外される。 直列化可能な属性が存在しない場合、空のマップが返される。
-