|
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。