public class RMIConnectorServer extends JMXConnectorServer
リモート・クライアントからのRMIベースの接続を作成するJMX APIコネクタ・サーバーです。 通常、こうしたコネクタ・サーバーは、JMXConnectorServerFactoryで作成されます。 しかし、RMIServerImplオブジェクトなど、このクラスを直接使用できる特殊なアプリケーションもあります。
| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static String |
JNDI_REBIND_ATTRIBUTE |
RMIコネクタ・サーバーを表す
RMIServerスタブが同じアドレスの既存のスタブをオーバーライドするかどうかを指定する属性の名前です。 |
static String |
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE |
作成されたRMIオブジェクトの
RMIClientSocketFactoryをこのコネクタに指定する属性の名前です。 |
static String |
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE |
作成されたRMIオブジェクトの
RMIServerSocketFactoryをこのコネクタに指定する属性の名前です。 |
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を作成します。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
protected void |
connectionClosed(String connectionId, String message, Object userData) |
クライアント接続が正常に終了したときサブクラスによって呼び出されます。
|
protected void |
connectionFailed(String connectionId, String message, Object userData) |
クライアント接続に失敗したときサブクラスによって呼び出されます。
|
protected void |
connectionOpened(String connectionId, String message, Object userData) |
新しいクライアント接続が開かれるとサブクラスによって呼び出されます。
|
JMXServiceURL |
getAddress() |
このコネクタ・サーバーのアドレス。
|
Map<String,?> |
getAttributes() |
このコネクタ・サーバーの属性。
|
boolean |
isActive() |
コネクタ・サーバーがアクティブかどうかを判定します。
|
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf) |
このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。
|
void |
start() |
アクティブになったコネクタ・サーバーは、クライアント接続の待機を開始します。
|
void |
stop() |
コネクタ・サーバーを終了して、クライアント接続の待機を停止します。
|
JMXConnector |
toJMXConnector(Map<String,?> env) |
このコネクタ・サーバーのクライアント・スタブを返します。
|
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegisteraddNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotificationpublic static final String JNDI_REBIND_ATTRIBUTE
RMIコネクタ・サーバーを表すRMIServerスタブが同じアドレスの既存のスタブをオーバーライドするかどうかを指定する属性の名前です。 この属性に値を関連付ける場合、"true"または"false"と同等の文字列(英字の大文字と小文字の区別はしない)を指定する必要があります。 デフォルト値はfalseです。
public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
作成されたRMIオブジェクトのRMIClientSocketFactoryをこのコネクタに指定する属性の名前です。 この属性にはRMIClientSocketFactory型の値を関連付ける必要があり、その値はコネクタ・サーバーの作成時に指定されたMap引数内にのみ指定できます。
public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
作成されたRMIオブジェクトのRMIServerSocketFactoryをこのコネクタに指定する属性の名前です。 この属性にはRMIServerSocketFactory型の値を関連付ける必要があり、その値はコネクタ・サーバーの作成時に指定されたMap引数内にのみ指定できます。
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment) throws IOException
RMIConnectorServerを作成します。 これは、RMIConnectorServer(directoryURL,environment,null,null)の呼び出しと同等です。
url - コネクタ・サーバーの作成方法を定義するURL。 nullは不可。 environment - RMIオブジェクトの作成と格納を管理する属性。 nullも可、その場合は空マップと同等。 IllegalArgumentException - urlがnullである場合。MalformedURLException - urlがRMIコネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。 このコンストラクタの使用時には、rmiとiiopのみが有効。 IOException - 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。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とiiopのみが有効。 IOException - 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。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」と「iiop」のみが認識される。 mbeanServer - 新しいコネクタ・サーバーの接続先MBeanサーバー。このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。IllegalArgumentException - urlがnullである場合。MalformedURLException - urlがRMIコネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。 rmiServerImplがnullのときは、「rmi」と「iiop」のみが認識される。 IOException - 何らかの理由でコネクタ・サーバーを作成できない場合、またはstartメソッドの失敗を避けられない場合。start()public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
このコネクタ・サーバーのクライアント・スタブを返します。 クライアント・スタブは直列化可能なオブジェクトです。このオブジェクトのconnectメソッドを使用して、このコネクタ・サーバーとの新しい接続を1つ確立できます。
toJMXConnector、インタフェースJMXConnectorServerMBeantoJMXConnector、クラスJMXConnectorServerenv - JMXConnector.connect(Map)に提供可能な同じ種類のクライアント接続パラメータ。 nullも可、その場合は空マップと同等。 UnsupportedOperationException - このコネクタ・サーバーがクライアント・スタブの生成機能をサポートしない場合。IllegalStateException - JMXConnectorServerが起動していない場合(isActive()を参照)。IOException - 通信障害により、スタブを作成できない場合。public void start()
throws IOException
アクティブになったコネクタ・サーバーは、クライアント接続の待機を開始します。 コネクタ・サーバーがすでにアクティブな場合は、このメソッドを呼び出しても何も起こりません。 コネクタ・サーバーが停止している状態でこのメソッドを呼び出すと、IOExceptionが生成されます。
初期呼出し時のこのメソッドの動作は、次のように、構築時に指定されたパラメータに依存します。
まず、RMIからコネクタ・サーバーをエクスポートするため、RMIServerImplのサブクラスのオブジェクトが要求されます。
RMIServerImplが指定されていた場合は、これが使用されます。
JMXServiceURLのプロトコル部分がiiopであれば、RMIIIOPServerImpl型のオブジェクトが作成されます。
JMXServiceURLがnullであるか、そのプロトコル部分がrmiであれば、RMIJRMPServerImpl型のオブジェクトが作成されます。
RMIServerImplを作成できるか、またはMalformedURLExceptionをスローできます。
指定されたアドレスに、javax.management.remote.rmiのパッケージ・ドキュメントに指定されたとおりのJNDIディレクトリURLが含まれる場合、このRMIConnectorServerは、指定されたアドレスにRMIServerImplをバインドすることにより、ブートストラップします。
JMXServiceURLのURLパス部分が空または単一のスラッシュ(/)である場合、RMIオブジェクトはディレクトリにバインドされません。 代わりに、その参照が、getAddress()から返されるRMIConnectorServerアドレスのURLパス内にエンコードされます。 rmiおよびiiopのエンコーディングについては、javax.management.remote.rmiのパッケージ・ドキュメントに記載されています。
URLパスが空でなく、JNDIディレクトリURLでもない場合、またはプロトコルがrmiでもiiopでもない場合の動作は、実装ごとに定義されており、コネクタ・サーバーの作成時または起動時にMalformedURLExceptionをスローする動作が含まれている場合もあります。
IllegalStateException - コネクタ・サーバーがMBeanサーバーに接続されていない場合。IOException - コネクタ・サーバーを起動できない場合、またはiiopプロトコルでRMI/IIOPがサポートされていない場合。public void stop()
throws IOException
コネクタ・サーバーを終了して、クライアント接続の待機を停止します。 このメソッドを呼び出すと、このサーバーで作成されたすべてのクライアント接続が終了します。 このメソッドが正常に終了した場合も、例外を生成して終了した場合も、コネクタ・サーバーは新しいクライアント接続を作成しなくなります。
いったん停止したコネクタ・サーバーを再度起動することはできません。
コネクタ・サーバーがすでに停止している場合は、このメソッドを呼び出しても何も起こりません。 コネクタ・サーバーがまだ起動していない状態でこのメソッドを呼び出すと、コネクタ・サーバー・オブジェクトが永続的に無効化されます。
クライアント接続の終了時に生成された例外は、このメソッドからはスローされません。 このMBeanからは、JMXConnectionNotificationと、終了できなかった接続の接続IDが発行されます。
コネクタ・サーバーの終了は、時間のかかるオペレーションです。 たとえば有効な接続を持っているクライアント・マシンがクラッシュした場合、終了オペレーションはネットワーク・プロトコルのタイム・アウトまで中断される可能性があります。 終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。
このメソッドは、コネクタ・サーバーのRMIServerImplオブジェクト上でcloseメソッドを呼び出します。
startメソッドでRMIServerImplがJNDIディレクトリにバインドされている場合、このメソッドでバインドが解除されます。
IOException - サーバーを正常に終了できない場合、またはディレクトリからRMIServerImplのバインドを解除できない場合。 この例外がスローされたとき、サーバーはすでにすべてのクライアント接続の終了(該当する場合)、RMIServerImpl.close()の呼び出し、およびディレクトリからのRMIServerImplのバインド解除(該当する場合)を試行している。 サーバーが終了を試行したとき例外が生成されたものを除いて、すべてのクライアント接続が終了している。 public boolean isActive()
JMXConnectorServerMBeanコネクタ・サーバーがアクティブかどうかを判定します。 startメソッドが正常に終了すると、コネクタ・サーバーはアクティブになります。その後、stopメソッドが呼び出されるか、障害が発生するまで、コネクタ・サーバーはアクティブな状態を維持します。
public JMXServiceURL getAddress()
JMXConnectorServerMBeanこのコネクタ・サーバーのアドレス。
コネクタ・サーバーの作成時に指定されたアドレスが完全であるとは限らないため、返されるアドレスは元のJMXServiceURLとは一致しない可能性があります。 たとえば、ポート番号はコネクタ・サーバーの起動時に動的に割り当てられることがあります。 このため、返されるアドレスはJMXConnectorServerの実際のJMXServiceURLです。 これは、クライアントがJMXConnectorFactory.connect(JMXServiceURL)に指定するアドレスです。
JMXConnectorServerがまだactiveでない場合、返されるアドレスはnullになります。
public Map<String,?> getAttributes()
JMXConnectorServerMBeanこのコネクタ・サーバーの属性。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBeanこのコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。 このオブジェクトは、このコネクタ・サーバーによって作成された新しい接続のMBeanServerとして指定されます。 既存の接続に影響はありません。
このメソッドは、異なるMBeanServerForwarderオブジェクトを使って繰返し呼び出すことができます。 結果はフォワーダのチェーンになります。 最後に追加されたフォワーダが、チェーンの先頭になります。 詳細は次のとおりです。
このコネクタ・サーバーがすでにMBeanServerオブジェクトに関連付けられている場合は、mbsf.setMBeanServerにこのオブジェクトが渡されます。 この処理で例外が生成された場合、このメソッドはその例外をスローします。
このコネクタがまだMBeanServerオブジェクトに関連付けられていない場合、またはmbsf.setMBeanServer呼出しが成功した場合、mbsfがこのコネクタ・サーバーのMBeanServerになります。
setMBeanServerForwarder、インタフェースJMXConnectorServerMBeansetMBeanServerForwarder、クラスJMXConnectorServermbsf - 新しいMBeanServerForwarder。protected void connectionOpened(String connectionId, String message, Object userData)
JMXConnectorServer新しいクライアント接続が開かれるとサブクラスによって呼び出されます。 JMXConnectorServer.getConnectionIds()によって返されるリストにconnectionIdを追加し、JMXConnectionNotification.OPENED型のJMXConnectionNotificationを発行します。
connectionOpened、クラスJMXConnectorServerconnectionId - 新しい接続のID。 以前にこのコネクタ・サーバーによって開かれた接続のIDとは異なる必要がある。 message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。 userData - 発行されたJMXConnectionNotificationのuserData。 nullも可。 Notification.getUserData()を参照してください。 protected void connectionClosed(String connectionId, String message, Object userData)
JMXConnectorServerクライアント接続が正常に終了したときサブクラスによって呼び出されます。 JMXConnectorServer.getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.CLOSED型のJMXConnectionNotificationを発行します。
connectionClosed、クラスJMXConnectorServerconnectionId - 終了した接続のID。message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。 userData - 発行されたJMXConnectionNotificationのuserData。 nullも可。 Notification.getUserData()を参照してください。 protected void connectionFailed(String connectionId, String message, Object userData)
JMXConnectorServerクライアント接続に失敗したときサブクラスによって呼び出されます。 JMXConnectorServer.getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.FAILED型のJMXConnectionNotificationを発行します。
connectionFailed、クラスJMXConnectorServerconnectionId - 失敗した接続のID。message - 発行されたJMXConnectionNotificationのメッセージ。 nullも可。 Notification.getMessage()を参照してください。 userData - 発行されたJMXConnectionNotificationのuserData。 nullも可。 Notification.getUserData()を参照してください。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。