JavaTM Platform
Standard Ed. 6

javax.management.remote.rmi
クラス RMIConnectorServer

java.lang.Object
  上位を拡張 javax.management.NotificationBroadcasterSupport
      上位を拡張 javax.management.remote.JMXConnectorServer
          上位を拡張 javax.management.remote.rmi.RMIConnectorServer
すべての実装されたインタフェース:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean

public class RMIConnectorServer
extends JMXConnectorServer

リモートクライアントからの RMI ベースの接続を作成する JMX API コネクタサーバーです。通常、こうしたコネクタサーバーの作成には、JMXConnectorServerFactory が使用されます。しかし、RMIServerImpl オブジェクトなど、このクラスを使用できる特殊なアプリケーションもあります。

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

フィールドの概要
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 をこのコネクタに指定する属性の名前です。
 
クラス javax.management.remote.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 を作成します。
 
メソッドの概要
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)
          このコネクタサーバーのクライアントスタブを返します。
 
クラス javax.management.remote.JMXConnectorServer から継承されたメソッド
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister
 
クラス javax.management.NotificationBroadcasterSupport から継承されたメソッド
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

JNDI_REBIND_ATTRIBUTE

public static final String JNDI_REBIND_ATTRIBUTE

RMI コネクタサーバーを表す RMIServer スタブが同じアドレスの既存のスタブをオーバーライドするかどうかを指定する属性の名前です。この属性に値を関連付ける場合、"true" または "false" と同等の文字列 (英字の大文字と小文字の区別はしない) を指定する必要があります。デフォルト値は false です。

関連項目:
定数フィールド値

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 引数内にしか指定できません。

関連項目:
定数フィールド値
コンストラクタの詳細

RMIConnectorServer

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 メソッドの失敗を 避けられない場合

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 と iiop のみが有効
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 と iiop のみが認識される
mbeanServer - 新しいコネクタサーバーの接続先 MBean サーバー。 このコネクタサーバーを MBean サーバーに登録することによって MBean サーバーに接続する場合は null
例外:
IllegalArgumentException - url が null の場合
MalformedURLException - url が RMI コネクタの構文に準拠していない場合、 またはそのプロトコルがこの実装で認識されない場合。rmiServerImpl が null のときは、 rmi と iiop のみが認識される
IOException - 何らかの理由でコネクタサーバーを作成できない場合、 または start メソッドの失敗を 避けられない場合
関連項目:
start()
メソッドの詳細

toJMXConnector

public JMXConnector toJMXConnector(Map<String,?> env)
                            throws IOException

このコネクタサーバーのクライアントスタブを返します。クライアントスタブは直列化可能なオブジェクトです。 このオブジェクトの connect メソッドを使って、このコネクタサーバーとの新しい接続を 1 つ確立できます。

定義:
インタフェース JMXConnectorServerMBean 内の toJMXConnector
オーバーライド:
クラス JMXConnectorServer 内の toJMXConnector
パラメータ:
env - JMXConnector.connect(Map) に提供可能な 同じ種類のクライアント接続パラメータ。 このパラメータが null の場合、 空のマップを指定した場合と同じことになる
戻り値:
このコネクタサーバーとの新しい接続を確立するために使用できる クライアントスタブ
例外:
UnsupportedOperationException - このコネクタサーバーが クライアントスタブの生成機能をサポートしない場合
IllegalStateException - JMXConnectorServer が起動していない場合 (isActive() を参照)
IOException - 通信障害により、 スタブを作成できない場合

start

public void start()
           throws IOException

アクティブになったコネクタサーバーは、クライアント接続の待機を開始します。コネクタサーバーがすでにアクティブな場合は、このメソッドを呼び出しても何も起こりません。コネクタサーバーが停止している状態でこのメソッドを呼び出すと、IOException が生成されます。

初期呼び出し時のこのメソッドの動作は、以下のように、構築時に指定されたパラメータに依存します。

まず、RMI からコネクタサーバーをエクスポートするため、RMIServerImpl のサブクラスのオブジェクトが要求されます。

指定されたアドレスに、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 - コネクタサーバーを 起動できない場合

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 の記述:

このコネクタサーバーのアドレス

戻り値:
このコネクタサーバーのアドレス。 存在しない場合は null

getAttributes

public Map<String,?> getAttributes()
インタフェース JMXConnectorServerMBean の記述:

このコネクタサーバーの属性

戻り値:
このコネクタサーバーの属性を含む 読み取り専用マップ。直列化可能な値を持つ属性は、 このマップから除外される。直列化可能な属性が存在しない場合、 空のマップが返される

setMBeanServerForwarder

public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
インタフェース JMXConnectorServerMBean の記述:

このコネクタサーバー経由で着信した MBean サーバーへの要求を遮断するオブジェクトを追加します。このオブジェクトは、このコネクタサーバーによって作成された新しい接続の MBeanServer として指定されます。既存の接続に影響はありません。

このコネクタサーバーがすでに MBeanServer オブジェクトに関連付けられている場合は、mbsf.setMBeanServer にこのオブジェクトが渡されます。この処理で例外が生成された場合、このメソッドはその例外をスローします。

スローされる例外は、何の影響も持ちません。 このコネクタがまだ MBeanServer オブジェクトに関連付けられていない場合、または mbsf.setMBeanServer 呼び出しが成功した場合、mbsf がこのコネクタサーバーの MBeanServer になります。

定義:
インタフェース JMXConnectorServerMBean 内の setMBeanServerForwarder
オーバーライド:
クラス JMXConnectorServer 内の setMBeanServerForwarder
パラメータ:
mbsf - 新しい MBeanServerForwarder

connectionOpened

protected void connectionOpened(String connectionId,
                                String message,
                                Object userData)
クラス JMXConnectorServer の記述:

新しいクライアント接続を有効にしたときサブクラスによって呼び出されます。JMXConnectorServer.getConnectionIds() によって返されるリストに connectionId を追加し、JMXConnectionNotification.OPENED 型の JMXConnectionNotification を発行します。

オーバーライド:
クラス JMXConnectorServer 内の connectionOpened
パラメータ:
connectionId - 新しい接続の ID。以前にこのコネクタサーバーによって 有効になった接続の ID とは 異なっていなければならない
message - 発行された JMXConnectionNotification のメッセージ。null も可Notification.getMessage() を参照
userData - 発行された JMXConnectionNotificationuserData。null も可Notification.getUserData() を参照

connectionClosed

protected void connectionClosed(String connectionId,
                                String message,
                                Object userData)
クラス JMXConnectorServer の記述:

クライアント接続が正常に終了したときサブクラスによって呼び出されます。JMXConnectorServer.getConnectionIds() によって返されるリストから connectionId を削除し、JMXConnectionNotification.CLOSED 型の JMXConnectionNotification を発行します。

オーバーライド:
クラス JMXConnectorServer 内の connectionClosed
パラメータ:
connectionId - 終了した接続の ID
message - 発行された JMXConnectionNotification のメッセージ。null も可Notification.getMessage() を参照
userData - 発行された JMXConnectionNotificationuserData。null も可Notification.getUserData() を参照

connectionFailed

protected void connectionFailed(String connectionId,
                                String message,
                                Object userData)
クラス JMXConnectorServer の記述:

クライアント接続に失敗したときサブクラスによって呼び出されます。JMXConnectorServer.getConnectionIds() によって返されるリストから connectionId を削除し、JMXConnectionNotification.FAILED 型の JMXConnectionNotification を発行します。

オーバーライド:
クラス JMXConnectorServer 内の connectionFailed
パラメータ:
connectionId - 失敗した接続の ID
message - 発行された JMXConnectionNotification のメッセージ。null も可Notification.getMessage() を参照
userData - 発行された JMXConnectionNotificationuserData。null も可Notification.getUserData() を参照

JavaTM Platform
Standard Ed. 6

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

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