- すべての実装されたインタフェース:
NotificationBroadcaster
,NotificationEmitter
- 直系の既知のサブクラス:
JMXConnectorServer
,Monitor
,RelationService
,Timer
NotificationEmitter
インタフェースの実装を提供します。 これは、通知を送信するMBeanのスーパー・クラスとして使用可能です。
デフォルトでは、通知ディスパッチ・モデルは同期的です。 つまり、スレッドがsendNotificationを呼び出すと、そのスレッド内で各リスナーのNotificationListener.handleNotification
メソッドが呼び出されます。 このデフォルトをオーバーライドするには、サブクラス内でhandleNotification
をオーバーライドするか、Executorをコンストラクタに渡します。
フィルタまたはリスナーのメソッド呼出しによりException
がスローされる場合、ほかのリスナーの呼出しはその例外により妨げられません。 ただし、フィルタ、Executor.execute
、またはhandleNotification
(Excecutor
が指定されていない場合)のメソッド呼出しによりError
がスローされる場合、このError
はsendNotification
の呼出し側に送られます。
通常、JMX Remote API (「JMXConnector」を参照)を使って追加されたリモート・リスナーは、同期的には呼び出されません。 つまり、sendNotificationの終了時点では、リモート・リスナーが通知を受け取ったかどうかは保証されません。
- 導入されたバージョン:
- 1.5
-
コンストラクタのサマリー
コンストラクタ説明NotificationBroadcasterSupportを構築します。ここで、各リスナーは通知を送信するスレッドにより呼び出されます。NotificationBroadcasterSupport
(Executor executor) NotificationBroadcasterSupportを構築します。ここで、各リスナーは指定したExecutor
を使って呼び出されます。NotificationBroadcasterSupport
(Executor executor, MBeanNotificationInfo... info) 送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。各リスナーは、指定したExecutor
を使って呼び出されます。送信可能な通知に関する情報を使って、NotificationBroadcasterSupportを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明void
addNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) リスナーを追加します。このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知タイプを示す配列を返します。protected void
handleNotification
(NotificationListener listener, Notification notif, Object handback) このメソッドは、リスナーに通知を送信するため、sendNotification
によって呼び出されます。void
このMBeanからリスナーを削除します。void
removeNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) このMBeanからリスナーを削除します。void
sendNotification
(Notification notification) 通知を送信します。
-
コンストラクタの詳細
-
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()
によるのと同様にこれが複製されます。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()
によるのと同様にこれが複製されます。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の場合。- 関連項目:
-
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException インタフェースからコピーされた説明:NotificationBroadcaster
このMBeanからリスナーを削除します。 リスナーが別のハンドバック・オブジェクトまたは通知フィルタに登録されている場合、このリスナーに対応するすべてのエントリが削除されます。- 定義:
removeNotificationListener
、インタフェースNotificationBroadcaster
- パラメータ:
listener
- 以前にこのMBeanに追加されたリスナー。- 例外:
ListenerNotFoundException
- リスナーがMBeanに登録されていない場合。- 関連項目:
-
removeNotificationListener
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException インタフェースからコピーされた説明:NotificationEmitter
このMBeanからリスナーを削除します。 MBeanは、指定された
listener
、filter
、およびhandback
パラメータと正確に一致するリスナーを持っている必要があります。 該当するリスナーが複数存在する場合、そのうちの1つだけが削除されます。削除されるリスナー内でnullが指定されている場合にのみ、
filter
およびhandback
パラメータはnullになります。- 定義:
removeNotificationListener
、インタフェースNotificationEmitter
- パラメータ:
listener
- 以前にこのMBeanに追加されたリスナー。filter
- リスナーの追加時に指定されたフィルタ。handback
- リスナーの追加時に指定されたハンドバック。- 例外:
ListenerNotFoundException
- リスナーがMBeanに登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。
-
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()インタフェースからコピーされた説明:NotificationBroadcaster
このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知タイプを示す配列を返します。
この配列に記述されていない通知をMBeanが送信しても、不正ではありません。 ただし一部のMBeanサーバー・クライアントは、正しく機能するために、作成される配列に依存する場合があります。
- 定義:
getNotificationInfo
、インタフェースNotificationBroadcaster
- 戻り値:
- 可能な通知の配列。
-
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
- リスナーの追加時に指定されたハンドバック・オブジェクト。
-