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 - コネクタサーバーを起動できない場合。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, 2013, Oracle and/or its affiliates. All rights reserved.