JavaTM 2 Platform
Standard Ed. 5.0

javax.management.remote.rmi
クラス RMIConnectorServer

java.lang.Object
  上位を拡張 javax.management.NotificationBroadcasterSupport
      上位を拡張 javax.management.remote.JMXConnectorServer
          上位を拡張 javax.management.remote.rmi.RMIConnectorServer
すべての実装されたインタフェース:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, 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 start()
          コネクタサーバをアクティブにします。
 void stop()
          コネクタサーバを終了して、クライアント接続の待機を停止します。
 JMXConnector toJMXConnector(Map<String,?> env)
          このコネクタサーバのクライアントスタブを返します。
 
クラス javax.management.remote.JMXConnectorServer から継承されたメソッド
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder
 
クラス 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 の場合、空の Map と同等
例外:
IllegalArgumentException - url が null の場合
MalformedURLException - url が RMI コネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。このコンストラクタの使用時には、rmi と jrmp のみが有効
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 の場合、空の Map と同等
mbeanServer - 新しいコネクタサーバの接続先 MBean サーバ。このコネクタサーバを MBean サーバに登録することによって MBean サーバに接続する場合は null
例外:
IllegalArgumentException - url が null の場合
MalformedURLException - url が RMI コネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。このコンストラクタの使用時には、rmi と jrmp のみが有効
IOException - 何らかの理由でコネクタサーバを作成できない場合、または start メソッドの失敗を避けられない場合

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL url,
                          Map<String,?> environment,
                          RMIServerImpl rmiServerImpl,
                          MBeanServer mbeanServer)
                   throws IOException

指定された MBean サーバの RMIConnectorServer を作成します。

パラメータ:
url - コネクタサーバの作成方法を定義する URL。null は不可
environment - RMI オブジェクトの作成と格納を管理する属性。null の場合、空の Map と同等
rmiServerImpl - url に指定されたプロトコル型に準拠した、RMIServer インタフェースの実装。このパラメータの値が null 以外の場合、url に指定されたプロトコル型は強制されず、有効と見なされる。それ以外の場合、rmi と iiop のみが認識される
mbeanServer - 新しいコネクタサーバの接続先 MBean サーバ。このコネクタサーバを MBean サーバに登録することによって MBean サーバに接続する場合は null
例外:
IllegalArgumentException - url が null の場合
MalformedURLException - url が RMI コネクタの構文に準拠していない場合、またはそのプロトコルがこの実装で認識されない場合。rmiServerImpl が null のときは rmi と jrmp のみが認識される
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 の記述:

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

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

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 2 Platform
Standard Ed. 5.0

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

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