- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- javax.management.remote.JMXConnectorServer
-
- すべての実装されたインタフェース:
MBeanRegistration,NotificationBroadcaster,NotificationEmitter,JMXAddressable,JMXConnectorServerMBean
- 直系の既知のサブクラス:
RMIConnectorServer
public abstract class JMXConnectorServer extends NotificationBroadcasterSupport implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable
すべてのコネクタ・サーバーのスーパー・クラスです。 コネクタ・サーバーはMBeanサーバーに接続されます。 コネクタ・サーバーはクライアント接続要求を待機し、要求ごとに1つずつ接続を作成します。
コネクタ・サーバーとMBeanサーバーの関連付けは、コネクタ・サーバーをMBeanサーバーに登録するか、MBeanサーバーをコネクタ・サーバーのコンストラクタに渡すことによって行われます。
コネクタ・サーバーは作成された時点では非アクティブであり、
startメソッドが呼び出された時点でクライアント接続の待機を開始します。 その後、stopメソッドが呼び出されるか、MBeanサーバーから登録解除されると、コネクタ・サーバーはクライアント接続の待機を停止します。コネクタ・サーバーを停止しても、MBeanサーバーから登録解除されることはありません。 いったん停止したコネクタ・サーバーを再起動することはできません。
クライアント接続が確立または終了するたびに、
JMXConnectionNotificationクラスの通知が発行されます。- 導入されたバージョン:
- 1.5
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringAUTHENTICATORコネクタ・サーバーのオーセンティケータを指定する属性の名前です。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 JMXConnectorServer()接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。JMXConnectorServer(MBeanServer mbeanServer)指定されたMBeanサーバーに接続するコネクタ・サーバーを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 protected voidconnectionClosed(String connectionId, String message, Object userData)クライアント接続が正常に終了したときサブクラスによって呼び出されます。protected voidconnectionFailed(String connectionId, String message, Object userData)クライアント接続に失敗したときサブクラスによって呼び出されます。protected voidconnectionOpened(String connectionId, String message, Object userData)新しいクライアント接続が開かれるとサブクラスによって呼び出されます。String[]getConnectionIds()このコネクタ・サーバーへの現在開いている接続のIDのリストです。MBeanServergetMBeanServer()このコネクタ・サーバーの接続先MBeanサーバーを返します。MBeanNotificationInfo[]getNotificationInfo()このMBeanから送信される通知を示す配列を返します。voidpostDeregister()MBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。voidpostRegister(Boolean registrationDone)MBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。voidpreDeregister()このコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。ObjectNamepreRegister(MBeanServer mbs, ObjectName name)このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。voidsetMBeanServerForwarder(MBeanServerForwarder mbsf)このコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。JMXConnectortoJMXConnector(Map<String,?> env)このコネクタ・サーバーのクライアント・スタブを返します。-
インタフェース javax.management.remote.JMXAddressableから継承されたメソッド
getAddress
-
インタフェース javax.management.remote.JMXConnectorServerMBeanから継承されたメソッド
getAddress, getAttributes, isActive, start, stop
-
クラス javax.management.NotificationBroadcasterSupportから継承されたメソッド
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
-
-
-
-
フィールドの詳細
-
AUTHENTICATOR
public static final String AUTHENTICATOR
コネクタ・サーバーのオーセンティケータを指定する属性の名前です。 この属性に値が関連付けられている場合、その値は、
JMXAuthenticatorインタフェースを実装するオブジェクトである必要があります。- 関連項目:
- 定数フィールド値
-
-
コンストラクタの詳細
-
JMXConnectorServer
public JMXConnectorServer()
接続先のMBeanサーバーにMBeanとして登録されるコネクタ・サーバーを構築します。 このコンストラクタは、通常、リモートで利用できるコネクタ・サーバーがMBeanサーバー内で作成されるとき、いずれかの
createMBeanメソッドによって呼び出されます。
-
JMXConnectorServer
public JMXConnectorServer(MBeanServer mbeanServer)
指定されたMBeanサーバーに接続するコネクタ・サーバーを構築します。 この方法で作成されたコネクタ・サーバーを別のMBeanサーバーに登録することもできます。または、いずれのMBeanサーバーにも登録しないこともできます。
- パラメータ:
mbeanServer- このコネクタ・サーバーの接続先MBeanサーバー。 このコネクタ・サーバーをMBeanサーバーに登録することによってMBeanサーバーに接続する場合はnull。
-
-
メソッドの詳細
-
getMBeanServer
public MBeanServer getMBeanServer()
このコネクタ・サーバーの接続先MBeanサーバーを返します。
- 戻り値:
- このコネクタ・サーバーの接続先MBeanサーバー。これがMBeanサーバーに接続されていない場合はnull。
-
setMBeanServerForwarder
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
次のインタフェースからコピーされた説明:JMXConnectorServerMBeanこのコネクタ・サーバー経由で着信したMBeanサーバーへの要求を遮断するオブジェクトを挿入します。 このオブジェクトは、このコネクタ・サーバーによって作成された新しい接続の
MBeanServerとして指定されます。 既存の接続に影響はありません。このメソッドは、異なる
MBeanServerForwarderオブジェクトを使って繰返し呼び出すことができます。 結果はフォワーダのチェーンになります。 最後に追加されたフォワーダが、チェーンの先頭になります。 詳細は次のとおりです。このコネクタ・サーバーがすでに
MBeanServerオブジェクトに関連付けられている場合は、mbsf.setMBeanServerにこのオブジェクトが渡されます。 この処理で例外が生成された場合、このメソッドはその例外をスローします。このコネクタがまだ
MBeanServerオブジェクトに関連付けられていない場合、またはmbsf.setMBeanServer呼出しが成功した場合、mbsfがこのコネクタ・サーバーのMBeanServerになります。
- 定義:
setMBeanServerForwarder、インタフェース:JMXConnectorServerMBean- パラメータ:
mbsf- 新しいMBeanServerForwarder。
-
getConnectionIds
public String[] getConnectionIds()
次のインタフェースからコピーされた説明:JMXConnectorServerMBeanこのコネクタ・サーバーへの現在開いている接続のIDのリストです。
- 定義:
getConnectionIds、インタフェース:JMXConnectorServerMBean- 戻り値:
- IDリストを含む新しい文字配列。 現在有効になっている接続がない場合、この配列は空になる。
-
toJMXConnector
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
このコネクタ・サーバーのクライアント・スタブを返します。 クライアント・スタブは直列化可能なオブジェクトです。このオブジェクトの
connectメソッドを使用して、このコネクタ・サーバーとの新しい接続を1つ確立できます。指定されたコネクタが、クライアント・スタブの生成機能をサポートしない場合もあります。 ただし、JMXリモートAPIによって指定されたコネクタ(JMXMPコネクタとRMIコネクタ)は、この機能をサポートします。
このメソッドのデフォルト実装は、
JMXConnectorServerMBean.getAddress()とJMXConnectorFactoryを使って、次のようなコードのスタブを生成します。JMXServiceURL addr =
getAddress(); returnJMXConnectorFactory.newJMXConnector(addr, env);これが適切でないコネクタ・サーバーは、適切なロジックを実装するか、
UnsupportedOperationExceptionをスローするために、このメソッドをオーバーライドする必要があります。- 定義:
toJMXConnector、インタフェース:JMXConnectorServerMBean- パラメータ:
env-JMXConnector.connect(Map)に提供可能な同じ種類のクライアント接続パラメータ。 nullも可、その場合は空マップと同等。- 戻り値:
- このコネクタ・サーバーとの新しい接続を確立するために使用できるクライアント・スタブ。
- 例外:
UnsupportedOperationException- このコネクタ・サーバーがクライアント・スタブの生成機能をサポートしない場合。IllegalStateException- JMXConnectorServerが起動していない場合(JMXConnectorServerMBean.isActive()を参照)。IOException- 通信障害により、スタブを作成できない場合。
-
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
このMBeanから送信される通知を示す配列を返します。
JMXConnectorServer内の実装は、要素1個の配列を返します。これは、JMXConnectionNotificationクラスの通知(そのクラスにタイプが定義される)を発行できることを示します。 その他の通知を発行できるサブクラスは、この要素とその他の通知の説明を含む配列を返します。- 定義:
getNotificationInfo、インタフェース:NotificationBroadcaster- オーバーライド:
getNotificationInfo、クラス:NotificationBroadcasterSupport- 戻り値:
- 可能な通知の配列。
-
connectionOpened
protected void connectionOpened(String connectionId, String message, Object userData)
新しいクライアント接続が開かれるとサブクラスによって呼び出されます。
getConnectionIds()によって返されるリストにconnectionIdを追加し、JMXConnectionNotification.OPENED型のJMXConnectionNotificationを発行します。- パラメータ:
connectionId- 新しい接続のID。 以前にこのコネクタ・サーバーによって開かれた接続のIDとは異なる必要がある。message- 発行されたJMXConnectionNotificationのメッセージ。 nullも可。Notification.getMessage()を参照してください。userData- 発行されたJMXConnectionNotificationのuserData。 nullも可。Notification.getUserData()を参照してください。- 例外:
NullPointerException-connectionIdがnullである場合。
-
connectionClosed
protected void connectionClosed(String connectionId, String message, Object userData)
クライアント接続が正常に終了したときサブクラスによって呼び出されます。
getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.CLOSED型のJMXConnectionNotificationを発行します。- パラメータ:
connectionId- 終了した接続のID。message- 発行されたJMXConnectionNotificationのメッセージ。 nullも可。Notification.getMessage()を参照してください。userData- 発行されたJMXConnectionNotificationのuserData。 nullも可。Notification.getUserData()を参照してください。- 例外:
NullPointerException-connectionIdがnullである場合。
-
connectionFailed
protected void connectionFailed(String connectionId, String message, Object userData)
クライアント接続に失敗したときサブクラスによって呼び出されます。
getConnectionIds()によって返されるリストからconnectionIdを削除し、JMXConnectionNotification.FAILED型のJMXConnectionNotificationを発行します。- パラメータ:
connectionId- 失敗した接続のID。message- 発行されたJMXConnectionNotificationのメッセージ。 nullも可。Notification.getMessage()を参照してください。userData- 発行されたJMXConnectionNotificationのuserData。 nullも可。Notification.getUserData()を参照してください。- 例外:
NullPointerException-connectionIdがnullである場合。
-
preRegister
public ObjectName preRegister(MBeanServer mbs, ObjectName name)
このコネクタ・サーバーがMBeanサーバーに登録されているとき、登録先のMBeanサーバーによって呼び出されます。 このコネクタ・サーバーがMBeanサーバーに接続され、その
getMBeanServer()メソッドはmbsを返します。このコネクタ・サーバーがすでにMBeanサーバーに接続されている場合、このメソッドは何も実行しません。 接続先のMBeanサーバーが、登録先のMBeanサーバーに一致している必要はありません。
- 定義:
preRegister、インタフェース:MBeanRegistration- パラメータ:
mbs- このコネクタ・サーバーの登録先MBeanサーバー。name- MBeanのオブジェクト名。- 戻り値:
- MBeanの登録名。
- 例外:
NullPointerException-mbsまたはnameがnullの場合。
-
postRegister
public void postRegister(Boolean registrationDone)
次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーへの登録が成功または失敗したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が
RuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postRegisterで例外をスローしてもMBeanの状態は変化しません。MBeanがすでに登録されている(registrationDoneがtrueである)場合、MBeanの登録は解除されません。createMBean()またはregisterMBean()を呼び出すコードでは、このような例外が発行されたときにMBeanの登録が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostRegisterの実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
postRegister、インタフェース:MBeanRegistration- パラメータ:
registrationDone- MBeanがMBeanサーバーに正常に登録されたかどうかを示す。 登録に失敗した場合の値はfalse。
-
preDeregister
public void preDeregister() throws Exceptionこのコネクタ・サーバーがMBeanサーバーから登録解除されるとき、そのMBeanサーバーによって呼び出されます。 登録によってMBeanサーバーに接続していたコネクタ・サーバーがまだアクティブな場合、登録を解除すると
stopメソッドが呼び出されます。stopメソッドが例外をスローした場合、登録解除は失敗します。stopメソッドは、MBeanの登録解除前に、明示的に呼び出すことをお勧めします。- 定義:
preDeregister、インタフェース:MBeanRegistration- 例外:
IOException-stopメソッドによってスローされた場合。Exception- この例外は、MBeanサーバーにキャッチされ、MBeanRegistrationExceptionとして再スローされる。
-
postDeregister
public void postDeregister()
次のインタフェースからコピーされた説明:MBeanRegistrationMBeanサーバーから登録解除したあと、MBeanが必要なオペレーションを実行できるようにします。このメソッドの実装が
RuntimeExceptionまたはErrorをスローする場合、MBeanサーバーはRuntimeMBeanExceptionまたはRuntimeErrorExceptionの内部でこれらをそれぞれ再スローします。 ただし、postDeregisterで例外をスローしてもMBeanの状態は変化しません。MBeanはすでに正常に登録解除されており、その状態のままになります。unregisterMBean()を呼び出すコードでは、MBeanの登録解除が失敗したとみなされることがあるため、これによって混乱が生じる可能性があります。 したがって、回避できる場合はpostDeregisterの実装で実行時例外またはエラーをスローしないことをお勧めします。- 定義:
postDeregister、インタフェース:MBeanRegistration
-
-