- 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
CREDENTIAL_TYPES
RMIServer.newClient()
リモート・メソッド呼び出しのパラメータとして受け入れ可能なクラス名のリストを指定する属性の名前。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
-
-
-
-
フィールドの詳細
-
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
引数内にのみ指定できます。- 関連項目:
- 定数フィールド値
-
CREDENTIAL_TYPES
public static final String CREDENTIAL_TYPES
RMIServer.newClient()
リモート・メソッド呼び出しのパラメータとして受け入れ可能なクラス名のリストを指定する属性の名前。このクラスのリストは、RMIServer実装に関連してインストールされたJMXAuthenticatorによって使用される資格証明クラス(またはクラス)の推移的クロージャに対応する必要があります。
属性が設定されていない場合、またはnullの場合、任意のクラスは受け入れ可能とみなされます。
- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
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"のみが有効です。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
メソッドの失敗を避けられない場合。- 関連項目:
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
public Map<String,?> getAttributes()
次のインタフェースからコピーされた説明:JMXConnectorServerMBean
このコネクタ・サーバーの属性。
- 戻り値:
- このコネクタ・サーバーの属性を含む読取り専用マップ。 直列化可能な値を持つ属性は、このマップから除外される。 直列化可能な属性が存在しない場合、空のマップが返される。
-
setMBeanServerForwarder
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
次のインタフェースからコピーされた説明:JMXConnectorServerMBean
このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。 このオブジェクトは、このコネクタ・サーバーによって作成された新しい接続の
MBeanServer
として指定されます。 既存の接続に影響はありません。このメソッドは、異なる
MBeanServerForwarder
オブジェクトを使って繰返し呼び出すことができます。 結果はフォワーダのチェーンになります。 最後に追加されたフォワーダが、チェーンの先頭になります。 詳細は次のとおりです。このコネクタ・サーバーがすでに
MBeanServer
オブジェクトに関連付けられている場合は、mbsf.setMBeanServer
にこのオブジェクトが渡されます。 この処理で例外が生成された場合、このメソッドはその例外をスローします。このコネクタがまだ
MBeanServer
オブジェクトに関連付けられていない場合、またはmbsf.setMBeanServer
呼出しが成功した場合、mbsf
がこのコネクタ・サーバーのMBeanServer
になります。
- 定義:
setMBeanServerForwarder
、インタフェース:JMXConnectorServerMBean
- オーバーライド:
setMBeanServerForwarder
、クラス:JMXConnectorServer
- パラメータ:
mbsf
- 新しいMBeanServerForwarder
。
-
connectionOpened
protected void connectionOpened(String connectionId, String message, Object userData)
次のクラスからコピーされた説明:JMXConnectorServer
新しいクライアント接続が開かれるとサブクラスによって呼び出されます。
JMXConnectorServer.getConnectionIds()
によって返されるリストにconnectionId
を追加し、JMXConnectionNotification.OPENED
型のJMXConnectionNotification
を発行します。- オーバーライド:
connectionOpened
、クラス:JMXConnectorServer
- パラメータ:
connectionId
- 新しい接続のID。 以前にこのコネクタ・サーバーによって開かれた接続のIDとは異なる必要がある。message
- 発行されたJMXConnectionNotification
のメッセージ。 nullも可。Notification.getMessage()
を参照してください。userData
- 発行されたJMXConnectionNotification
のuserData
。 nullも可。Notification.getUserData()
を参照してください。
-
connectionClosed
protected void connectionClosed(String connectionId, String message, Object userData)
次のクラスからコピーされた説明:JMXConnectorServer
クライアント接続が正常に終了したときサブクラスによって呼び出されます。
JMXConnectorServer.getConnectionIds()
によって返されるリストからconnectionId
を削除し、JMXConnectionNotification.CLOSED
型のJMXConnectionNotification
を発行します。- オーバーライド:
connectionClosed
、クラス:JMXConnectorServer
- パラメータ:
connectionId
- 終了した接続のID。message
- 発行されたJMXConnectionNotification
のメッセージ。 nullも可。Notification.getMessage()
を参照してください。userData
- 発行されたJMXConnectionNotification
のuserData
。 nullも可。Notification.getUserData()
を参照してください。
-
connectionFailed
protected void connectionFailed(String connectionId, String message, Object userData)
次のクラスからコピーされた説明:JMXConnectorServer
クライアント接続に失敗したときサブクラスによって呼び出されます。
JMXConnectorServer.getConnectionIds()
によって返されるリストからconnectionId
を削除し、JMXConnectionNotification.FAILED
型のJMXConnectionNotification
を発行します。- オーバーライド:
connectionFailed
、クラス:JMXConnectorServer
- パラメータ:
connectionId
- 失敗した接続のID。message
- 発行されたJMXConnectionNotification
のメッセージ。 nullも可。Notification.getMessage()
を参照してください。userData
- 発行されたJMXConnectionNotification
のuserData
。 nullも可。Notification.getUserData()
を参照してください。
-
-