- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- すべての実装されたインタフェース:
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を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)リスナーを追加します。protected voidhandleNotification(NotificationListener listener, Notification notif, Object handback)このメソッドは、リスナーに通知を送信するため、sendNotificationによって呼び出されます。voidsendNotification(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- リスナーの追加時に指定されたハンドバック・オブジェクト。
-
-