JavaTM Platform
Standard Ed. 6

javax.management
インタフェース NotificationBroadcaster

既知のサブインタフェースの一覧:
ModelMBean, ModelMBeanNotificationBroadcaster, NotificationEmitter
既知の実装クラスの一覧:
CounterMonitor, GaugeMonitor, JMXConnectorServer, MBeanServerDelegate, Monitor, NotificationBroadcasterSupport, RelationService, RequiredModelMBean, RMIConnectorServer, StandardEmitterMBean, StringMonitor, Timer

public interface NotificationBroadcaster

Notification を発行する MBean が実装しているインタフェース。このインタフェースにより、リスナーを通知リスナーとして MBean に登録できます。

通知ディスパッチ

MBean は、通知の発行時に、addNotificationListener を使って追加され、かつ removeNotificationListener を使って削除されていない各リスナーを考慮に入れます。リスナーに対してフィルタが提供され、そのフィルタの isNotificationEnabled メソッドが false を返す場合、そのリスナーは無視されます。それ以外の場合、通知、および addNotificationListener に提供されたハンドバックオブジェクトを使って、リスナーの handleNotification メソッドが呼び出されます。

同一のリスナーが複数回追加される場合、追加されるたびに考慮されます。これは、1 つのリスナーを異なるフィルタやハンドバックオブジェクトを使って追加する場合に、しばしば役立ちます。

このインタフェースの実装は、フィルタやリスナーのメソッドが呼び出されるスレッドにより異なることがあります。

フィルタまたはリスナーのメソッド呼び出しにより Exception がスローされる場合、ほかのリスナーの呼び出しがその例外により妨げられないようにする必要があります。ただし、メソッド呼び出しにより Error がスローされる場合は、その時点で通知の処理を停止することが推奨されています。また、Error を通知の送信側に送ることが可能であれば、そうしてください。

新しいコードは、NotificationEmitter インタフェースを使用する必要があります。

このインタフェースおよび NotificationEmitter の実装では、同期を注意深く行う必要があります。特に、実装がリスナーの呼び出し時にロックを保持するのは、良い方法ではありません。通知のディスパッチ中にリスナーのリストが変更される可能性に対処する良い方法は、このリストで CopyOnWriteArrayList を使用することです。

導入されたバージョン:
1.5

メソッドの概要
 void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          この MBean にリスナーを追加します。
 MBeanNotificationInfo[] getNotificationInfo()
          この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。
 void removeNotificationListener(NotificationListener listener)
          この MBean からリスナーを削除します。
 

メソッドの詳細

addNotificationListener

void addNotificationListener(NotificationListener listener,
                             NotificationFilter filter,
                             Object handback)
                             throws IllegalArgumentException
この MBean にリスナーを追加します。

パラメータ:
listener - ブロードキャスタが発行した通知を 処理するリスナーオブジェクト
filter - フィルタオブジェクト。フィルタが null の場合、 通知処理の前にフィルタは適用されない
handback - 通知の発行時にリスナーに送信される 不透明なオブジェクト。Notification ブロードキャスタオブジェクトは、 このオブジェクトを使用できない。このオブジェクトは、手を加えない状態で、 通知とともにリスナーへ送り返されなければならない
例外:
IllegalArgumentException - リスナーパラメータが null の場合
関連項目:
removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

void removeNotificationListener(NotificationListener listener)
                                throws ListenerNotFoundException
この MBean からリスナーを削除します。リスナーが別のハンドバックオブジェクトまたは通知フィルタに登録されている場合、このリスナーに対応するすべてのエントリが削除されます。

パラメータ:
listener - 以前にこの MBean に追加された リスナー
例外:
ListenerNotFoundException - リスナーが MBean に 登録されていない場合
関連項目:
addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

getNotificationInfo

MBeanNotificationInfo[] getNotificationInfo()

この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。

この配列に記述されていない通知を MBean が送信しても、不正ではありません。ただし一部の MBean サーバークライアントは、正しく機能するために、作成される配列に依存する場合があります。

戻り値:
通知の配列

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。