JavaTM Platform
Standard Ed. 6

javax.management
クラス NotificationBroadcasterSupport

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 がスローされる場合、この ErrorsendNotification の呼び出し側に送られます。

 

通常、JMX Remote API (「JMXConnector」を参照) を使って追加されたリモートリスナーは、同期的には呼び出されません。つまり、sendNotification の終了時点では、リモートリスナーが通知を受け取ったかどうかは保証されません。

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

コンストラクタの概要
NotificationBroadcasterSupport()
          NotificationBroadcasterSupport を構築します。
NotificationBroadcasterSupport(Executor executor)
          NotificationBroadcasterSupport を構築します。
NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
           送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
           送信可能な通知に関する情報を使って、NotificationBroadcasterSupport を構築します。
 
メソッドの概要
 void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          リスナーを追加します。
 MBeanNotificationInfo[] getNotificationInfo()
           この MBean が送信する可能性のある各通知について、その通知の Java クラス名と通知型を示す配列を返します。
protected  void handleNotification(NotificationListener listener, Notification notif, Object handback)
           このメソッドは、リスナーに通知を送信するため、sendNotification によって呼び出されます。
 void removeNotificationListener(NotificationListener listener)
          この MBean からリスナーを削除します。
 void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
           この MBean からリスナーを削除します。
 void sendNotification(Notification notification)
          通知を送信します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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(executor, 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)
リスナーを追加します。

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

removeNotificationListener

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

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

removeNotificationListener

public void removeNotificationListener(NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws ListenerNotFoundException
インタフェース NotificationEmitter の記述:
 

この MBean からリスナーを削除します。MBean は、指定された listenerfilter、および handback パラメータと正確に一致するリスナーを持っている必要があります。該当するリスナーが複数存在する場合、そのうちの 1 つだけが削除されます。

 

削除されるリスナー内で null が指定されている場合、filter および handback パラメータは null になります。

定義:
インタフェース NotificationEmitter 内の removeNotificationListener
パラメータ:
listener - 以前にこの MBean に追加されたリスナー
filter - リスナーの追加時に指定されたフィルタ
handback - リスナーの追加時に指定されたハンドバック
例外:
ListenerNotFoundException - リスナーが MBean に 登録されていない場合、または指定されたフィルタおよびハンドバックで 登録されていない場合

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
インタフェース NotificationBroadcaster の記述:
 

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

 

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

定義:
インタフェース NotificationBroadcaster 内の getNotificationInfo
戻り値:
通知の配列

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 - リスナーの追加時に指定された ハンドバックオブジェクト

JavaTM Platform
Standard Ed. 6

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

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