- 既知のすべてのサブインタフェース:
- 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
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidaddNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)このMBeanにリスナーを追加します。MBeanNotificationInfo[]getNotificationInfo()このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知型を示す配列を返します。voidremoveNotificationListener(NotificationListener listener)このMBeanからリスナーを削除します。
- 
メソッドの詳細- 
addNotificationListenervoid addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentExceptionこのMBeanにリスナーを追加します。- パラメータ:
- listener- ブロードキャスタが発行した通知を処理するリスナー・オブジェクト。
- filter- フィルタ・オブジェクト。 フィルタがnullの場合、通知処理の前にフィルタは適用されない。
- handback- 通知の発行時にリスナーに送信される不透明なオブジェクト。 Notificationブロードキャスタ・オブジェクトは、このオブジェクトを使用できない。 このオブジェクトは、手を加えない状態で、通知とともにリスナーへ送り返されなければならない。
- 例外:
- IllegalArgumentException- リスナー・パラメータがnullの場合。
- 関連項目:
- removeNotificationListener(javax.management.NotificationListener)
 
- 
removeNotificationListenervoid 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)
 
- 
getNotificationInfoMBeanNotificationInfo[] getNotificationInfo()このMBeanが送信する可能性のある各通知について、その通知のJavaクラス名と通知型を示す配列を返します。 この配列に記述されていない通知をMBeanが送信しても、不正ではありません。 ただし一部のMBeanサーバー・クライアントは、正しく機能するために、作成される配列に依存する場合があります。 - 戻り値:
- 可能な通知の配列。
 
 
-