|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
public interface NotificationBroadcaster
由發出 Notifications 的 MBean 實作的介面。它允許某個偵聽器在該 MBean 中註冊為通知偵聽器。
MBean 發出通知時,它會考慮每個已經使用 addNotificationListener 添加、且之後沒有使用 removeNotificationListener 移除的偵聽器。如果該偵聽器同時提供一個過濾器,且過濾器的 isNotificationEnabled 方法返回 false,則忽略該偵聽器。否則,將利用通知調用偵聽器的 handleNotification 方法,同時向 addNotificationListener 提供 handback 物件。
如果多次添加同一個偵聽器,則認為該偵聽器被添加的次數等於實際被添加的次數。在添加相同的偵聽器的同時使用不同的過濾器或 handback 物件常常很有用。
根據調用過濾器和偵聽器方法的執行緒,此介面的實作可能有所不同。
如果過濾器或偵聽器的方法調用拋出 Exception,則該異常不應該阻止調用其他偵聽器。但是,如果方法調用拋出 Error,則建議在此處停止對通知的處理,如果 Error 可以傳播到通知的發送方,則更應該這樣做。
新的程式碼應該使用 NotificationEmitter 介面。
應該注意保持此介面的實作與 NotificationEmitter 的實作之間同步。需要特別指出的是,讓某個實作在調用偵聽器時持有鎖不是一個好主意。偵聽器列表在排程通知時可能發生更改,處理這種可能性的一個好的策略是對列表使用 CopyOnWriteArrayList。
| 方法摘要 | |
|---|---|
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
在此 MBean 中添加一個偵聽器。 |
MBeanNotificationInfo[] |
getNotificationInfo()
返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。 |
void |
removeNotificationListener(NotificationListener listener)
從此 MBean 移除一個偵聽器。 |
| 方法詳細資訊 |
|---|
void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
throws IllegalArgumentException
listener - 將處理廣播者發出的通知的偵聽器物件。filter - 過濾器物件。如果 filter 為 null,則處理通知前不執行過濾。handback - 發出通知時要發送回偵聽器的不透明物件。Notification 廣播者物件不能使用此物件。應該將通知不作更改地重新發送到偵聽器。
IllegalArgumentException - 如果 Listener 參數為 null。removeNotificationListener(javax.management.NotificationListener)
void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
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)MBeanNotificationInfo[] getNotificationInfo()
返回一個陣列,指示此 MBean 可能發送的每個通知的 Java 類別名和通知型別。
MBean 發送此陣列中未描述的通知是合法的。但是,某些 MBean 伺服器的客戶端要想正常運行,可能要依賴完整的陣列。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。