- すべての実装されたインタフェース:
NotificationBroadcaster
,NotificationEmitter
- 直系の既知のサブクラス:
JMXConnectorServer
,Monitor
,RelationService
,Timer
public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
NotificationEmitter
インタフェースの実装を提供します。 これは、通知を送信するMBeanのスーパー・クラスとして使用可能です。
デフォルトでは、通知ディスパッチ・モデルは同期的です。 つまり、スレッドがsendNotificationを呼び出すと、そのスレッド内で各リスナーのNotificationListener.handleNotification
メソッドが呼び出されます。 このデフォルトをオーバーライドするには、サブクラス内でhandleNotification
をオーバーライドするか、Executorをコンストラクタに渡します。
フィルタまたはリスナーのメソッド呼出しによりException
がスローされる場合、ほかのリスナーの呼出しはその例外により妨げられません。 ただし、フィルタ、Executor.execute
、またはhandleNotification
(Excecutor
が指定されていない場合)のメソッド呼出しによりError
がスローされる場合、このError
はsendNotification
の呼出し側に送られます。
通常、JMX Remote API (「JMXConnector」を参照)を使って追加されたリモート・リスナーは、同期的には呼び出されません。 つまり、sendNotificationの終了時点では、リモート・リスナーが通知を受け取ったかどうかは保証されません。
- 導入されたバージョン:
- 1.5
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 NotificationBroadcasterSupport()
NotificationBroadcasterSupportを構築します。ここで、各リスナーは通知を送信するスレッドにより呼び出されます。NotificationBroadcasterSupport(Executor executor)
NotificationBroadcasterSupportを構築します。ここで、各リスナーは指定したExecutor
を使って呼び出されます。NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。各リスナーは、指定したExecutor
を使って呼び出されます。NotificationBroadcasterSupport(MBeanNotificationInfo... info)
送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 void
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
リスナーを追加します。protected void
handleNotification(NotificationListener listener, Notification notif, Object handback)
このメソッドは、リスナーに通知を送信するため、sendNotification
によって呼び出されます。void
sendNotification(Notification notification)
通知を送信します。クラス java.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インタフェース javax.management.NotificationBroadcasterで宣言されたメソッド
getNotificationInfo, removeNotificationListener
インタフェース javax.management.NotificationEmitterで宣言されたメソッド
removeNotificationListener
-
コンストラクタの詳細
-
NotificationBroadcasterSupport
public NotificationBroadcasterSupport()NotificationBroadcasterSupportを構築します。ここで、各リスナーは通知を送信するスレッドにより呼び出されます。 このコンストラクタはNotificationBroadcasterSupport(null, null)
と同等です。 -
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor)NotificationBroadcasterSupportを構築します。ここで、各リスナーは指定したExecutor
を使って呼び出されます。 nullのNotificationFilter
を使ってリスナーが追加されたか、送信中の通知に対してisNotificationEnabled
がtrueを返す場合、sendNotification
の呼出し時にリスナーが選択されます。sendNotification
を呼び出したスレッド内で、NotificationFilter.isNotificationEnabled
の呼出しが実行されます。 次に、選択したリスナーごとに、handleNotificationメソッドを呼び出すコマンドを使って
executor.executeが呼び出されます。 このコンストラクタは
NotificationBroadcasterSupport(null, null)
と同等です。- パラメータ:
executor
-sendNotification
メソッドにより、各通知の送信に使用されるexecutor。 nullの場合、sendNotification
を呼び出すスレッドによりhandleNotification
メソッド自体が呼び出される。- 導入されたバージョン:
- 1.6
-
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(MBeanNotificationInfo... info)送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。 各リスナーは、通知を送信するスレッドにより呼び出されます。 このコンストラクタは
NotificationBroadcasterSupport(null, info)
と同等です。info
配列が空でない場合は、info.clone()
のようにコンストラクタによってクローンされ、NotificationBroadcaster.getNotificationInfo()
を呼び出すたびに新しいクローンが返されます。- パラメータ:
info
- このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知型を示す配列。 nullの場合、空の配列と同等。- 導入されたバージョン:
- 1.6
-
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。各リスナーは、指定した
Executor
を使って呼び出されます。nullの
NotificationFilter
を使ってリスナーが追加されたか、送信中の通知に対してisNotificationEnabled
がtrueを返す場合、sendNotification
の呼出し時にリスナーが選択されます。sendNotification
を呼び出したスレッド内で、NotificationFilter.isNotificationEnabled
の呼出しが実行されます。 次に、選択したリスナーごとに、handleNotification
メソッドを呼び出すコマンドを使ってexecutor.execute
が呼び出されます。info
配列が空でない場合は、info.clone()
のようにコンストラクタによってクローンされ、NotificationBroadcaster.getNotificationInfo()
を呼び出すたびに新しいクローンが返されます。- パラメータ:
executor
-sendNotification
メソッドにより、各通知の送信に使用されるexecutor。 nullの場合、sendNotification
を呼び出すスレッドによりhandleNotification
メソッド自体が呼び出される。info
- このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知型を示す配列。 nullの場合、空の配列と同等。- 導入されたバージョン:
- 1.6
-
-
メソッドの詳細
-
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)リスナーを追加します。- 定義:
addNotificationListener
、インタフェース:NotificationBroadcaster
- パラメータ:
listener
- 通知を受け取るリスナー。filter
- フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。handback
- 通知の発行時にリスナーに送信される不透明なオブジェクト。 Notificationブロードキャスタ・オブジェクトは、このオブジェクトを使用できない。 このオブジェクトは、手を加えない状態で、通知とともにリスナーへ送り返されなければならない。- 例外:
IllegalArgumentException
- リスナーがnullの場合。- 関連項目:
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)
-
sendNotification
public void sendNotification(Notification notification)通知を送信します。Executor
がコンストラクタ内で指定された場合、選択したリスナーに通知を配信するため、リスナーごとに1つのタスクが割り当てられます。- パラメータ:
notification
- 送信する通知。
-
handleNotification
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)このメソッドは、リスナーに通知を送信するため、
sendNotification
によって呼び出されます。 通知の配信方法を変更する場合、たとえば通知を別々のスレッドで配信する場合などは、サブクラス内でオーバーライドできます。このメソッドのデフォルト実装は、次と同等です。
listener.handleNotification(notif, handback);
- パラメータ:
listener
- 通知の配信先リスナー。notif
- リスナーに配信される通知。handback
- リスナーの追加時に指定されたハンドバック・オブジェクト。
-