- すべてのスーパー・インタフェース:
NotificationBroadcaster
- 既知のすべての実装クラス:
CounterMonitor
,GaugeMonitor
,JMXConnectorServer
,MBeanServerDelegate
,Monitor
,NotificationBroadcasterSupport
,RelationService
,RequiredModelMBean
,RMIConnectorServer
,StandardEmitterMBean
,StringMonitor
,Timer
Notificationを発行するMBeanが実装しているインタフェースです。 このインタフェースにより、リスナーを通知リスナーとしてMBeanに登録できます。
通知ディスパッチ
MBeanは、通知の発行時に、addNotificationListener
を使って追加され、かつremoveNotificationListener
を使って削除されていない各リスナーを考慮に入れます。 リスナーに対してフィルタが提供された場合、およびフィルタのisNotificationEnabled
メソッドがfalseを返す場合、そのリスナーは無視されます。 それ以外の場合、通知、およびaddNotificationListener
に提供されたハンドバック・オブジェクトを使って、リスナーのhandleNotification
メソッドが呼び出されます。
同一のリスナーが複数回追加される場合、追加された数だけ考慮されます。 これは、1つのリスナーを異なるフィルタやハンドバック・オブジェクトを使って追加する場合に、しばしば役立ちます。
このインタフェースの実装は、フィルタやリスナーのメソッドが呼び出されるスレッドにより異なることがあります。
フィルタまたはリスナーのメソッド呼出しによりException
がスローされる場合、他のリスナーの呼出しがその例外により妨げられないようにする必要があります。 ただし、メソッド呼出しによりError
がスローされる場合は、その時点で通知の処理を停止することが推奨されています。また、Error
を通知の送信側に送ることが可能であれば、そうしてください。
新しいコードは、このインタフェースを、NotificationBroadcaster
インタフェースより優先します。
このインタフェースおよびNotificationBroadcaster
の実装では、同期を注意深く行う必要があります。 特に、実装がリスナーの呼出し時にロックを保持するのは、良い方法ではありません。 通知のディスパッチ中にリスナーのリストが変更される可能性に対処する良い方法は、このリストでCopyOnWriteArrayList
を使用することです。
- 導入されたバージョン:
- 1.5
-
メソッドのサマリー
修飾子と型メソッド説明void
removeNotificationListener
(NotificationListener listener, NotificationFilter filter, Object handback) このMBeanからリスナーを削除します。インタフェース javax.management.NotificationBroadcasterで宣言されたメソッド
addNotificationListener, getNotificationInfo, removeNotificationListener
-
メソッドの詳細
-
removeNotificationListener
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException このMBeanからリスナーを削除します。 MBeanは、指定された
listener
、filter
、およびhandback
パラメータと正確に一致するリスナーを持っている必要があります。 該当するリスナーが複数存在する場合、そのうちの1つだけが削除されます。削除されるリスナー内でnullが指定されている場合にのみ、
filter
およびhandback
パラメータはnullになります。- パラメータ:
listener
- 以前にこのMBeanに追加されたリスナー。filter
- リスナーの追加時に指定されたフィルタ。handback
- リスナーの追加時に指定されたハンドバック。- 例外:
ListenerNotFoundException
- リスナーがMBeanに登録されていない場合、または指定されたフィルタおよびハンドバックで登録されていない場合。
-