- 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
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。代わりにCREDENTIALS_FILTER_PATTERN
を「フィルタ・パターン」文字列で使用してください。static String
CREDENTIALS_FILTER_PATTERN
RMIServer.newClient()
リモート・メソッド呼び出しで許容されるクラスをフィルタ処理するためのObjectInputFilter
パターン文字列を指定する属性の名前。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
をこのコネクタに指定する属性の名前です。static String
SERIAL_FILTER_PATTERN
この属性は、任意のクライアントがJMXConnectorServer
に送信したオブジェクトを逆シリアル化するときに使用されるObjectInputFilter
を作成するパターンを定義します。-
クラス 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
を作成します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 void
start()
アクティブになったコネクタ・サーバーは、クライアント接続の待機を開始します。void
stop()
コネクタ・サーバーを終了して、クライアント接続の待機を停止します。JMXConnector
toJMXConnector(Map<String,?> env)
このコネクタ・サーバーのクライアント・スタブを返します。-
クラス javax.management.remote.JMXConnectorServerで宣言されたメソッド
connectionClosed, connectionFailed, connectionOpened, getMBeanServer, getNotificationInfo, preDeregister, preRegister
-
クラス javax.management.NotificationBroadcasterSupportで宣言されたメソッド
addNotificationListener, handleNotification, sendNotification
-
クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、toString、wait、wait、wait
-
インタフェース javax.management.remote.JMXAddressableで宣言されたメソッド
getAddress
-
インタフェース javax.management.remote.JMXConnectorServerMBeanで宣言されたメソッド
getAddress, getAttributes, getConnectionIds, isActive, setMBeanServerForwarder
-
インタフェース javax.management.MBeanRegistrationで宣言されたメソッド
postDeregister, postRegister
-
インタフェース javax.management.NotificationBroadcasterで宣言されたメソッド
removeNotificationListener
-
インタフェース javax.management.NotificationEmitterで宣言されたメソッド
removeNotificationListener
-
-
-
-
フィールドの詳細
-
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
@Deprecated(since="10", forRemoval=true) public static final String CREDENTIAL_TYPES
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。代わりにCREDENTIALS_FILTER_PATTERN
を「フィルタ・パターン」文字列で使用してください。RMIServer.newClient()
リモート・メソッド呼び出しのパラメータとして受け入れ可能なクラス名のリストを指定する属性の名前。このクラスのリストは、RMIServer実装に関連してインストールされたJMXAuthenticatorによって使用される資格証明クラス(またはクラス)の推移的クロージャに対応する必要があります。
属性が設定されていない場合、またはnullの場合、任意のクラスは受け入れ可能とみなされます。
- 関連項目:
- 定数フィールド値
-
CREDENTIALS_FILTER_PATTERN
public static final String CREDENTIALS_FILTER_PATTERN
RMIServer.newClient()
リモート・メソッド呼び出しで許容されるクラスをフィルタ処理するためのObjectInputFilter
パターン文字列を指定する属性の名前。フィルタ・パターンは、
ObjectInputFilter.Config.createFilter(java.lang.String)
で使用されているものと同じ形式でなければなりませんフィルタによって許可されるこのクラスのリストは、RMIServer実装に関連してインストールされたJMXAuthenticatorによって使用される資格証明クラス(またはクラス)の推移的クロージャに対応する必要があります。 属性が設定されていない場合、クラスは受け入れ可能とみなされます。
- 関連項目:
ObjectInputFilter
, 「定数フィールド値」
-
SERIAL_FILTER_PATTERN
public static final String SERIAL_FILTER_PATTERN
この属性は、任意のクライアントがJMXConnectorServer
に送信したオブジェクトを逆シリアル化するときに使用されるObjectInputFilter
を作成するパターンを定義します。フィルタは、すべてのJMX定義クラス(
ObjectName
など)、すべてのメソッド・パラメータ、およびストリーム内に存在する場合は、直列化復元されたオブジェクトのシリアル形式によって推移的に参照されるすべてのクラスを含む、クライアントによってサーバーに送信される直列化ストリームで検出されたすべてのクラス。 パターンは、ObjectInputFilter.Config.createFilter(java.lang.String)
で使用されているものと同じ形式でなければなりません。 許可されたクラスのホワイトリスト、拒否されたクラスのブラックリスト、直列化復元オブジェクトの最大深度などを定義することができます。機能するためには、
RMIConnection
インタフェースのパラメータと呼ばれるすべてのJMXクラスと、client
がラップして送信する必要があるすべてのクラスを直列化するときに直列化される可能性のあるすべてのオブジェクトの推移的クロージャの少なくともすべての具体的な型をフィルタで許可する必要がありますMBeanServer
に登録されているMBeanと相互運用するために「マーシャルされたオブジェクト」を使用します。 これには、具体的なJMX OpenTypesとそれらがシリアル形式で使用するクラスがすべて含まれる可能性があります。このようなフィルタを定義するときは注意が必要です。白いリストをあまりにも制限的に定義するか、または黒いリストを広範囲に指定すると、正当なクライアントが
JMXConnectorServer
と相互運用できなくなる可能性があります。- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
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が起動していない場合(JMXConnectorServerMBean.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オブジェクトはディレクトリにバインドされません。 代わりに、RMIConnectorServerのアドレス(JMXConnectorServerMBean.getAddress()
によって返されました)の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
のバインド解除(該当する場合)を試行している。 サーバーが終了を試行したとき例外が生成されたものを除いて、すべてのクライアント接続が終了している。
-
-