JavaTM 2 Platform
Standard Ed. 6

javax.management.modelmbean
介面 ModelMBeanNotificationBroadcaster

所有父級介面:
NotificationBroadcaster
所有已知子介面:
ModelMBean
所有已知實作類別:
RequiredModelMBean

public interface ModelMBeanNotificationBroadcaster
extends NotificationBroadcaster

ModelMBean 必須實作此介面。此介面的實作必須與每個 JMX Agent 一起發佈。

Java 資源使用 MBeanServer 的 createMBean 方法來實例化 ModelMBean,以便具有可管理性。然後該資源設置 ModelMBean 實例的 ModelMBeanInfo(帶有 Descriptor)。通過 ModelMBean 的 ModelMBeanInfo 公開的屬性和操作像其他 MBean 一樣,可以從 MBean、連接器/適配器進行存取。通過 ModelMBeanInfo Descriptor,可以定義托管應用程序中的值和方法,並可以將它們映射到 ModelMBean 的屬性和操作。此映射可以在 XML 格式的檔案的開發過程中定義,也可以以程式方式在運行時動態定義。

MBeanServer 中實例化的每個 ModelMBean 都是可管理的:通過連接到該 MBeanServer 的連接器/適配器可以遠端存取其屬性和操作。Java 物件不能在 MBeanServer 中進行註冊,除非它是 JMX 相容的 MBean。通過實例化 ModelMBean,資源可保證 MBean 是有效的。

每個公共方法必須拋出 MBeanException 和 RuntimeOperationsException。這允許包裹來自分佈式通信(RMI 和 EJB 等)的異常。除規範和 javadoc 中描述的情況外,這些異常不必由實作拋出。

從以下版本開始:
1.5

方法摘要
 void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback)
          註冊一個將 NotificationListener 介面實作為偵聽器的物件。
 void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName)
          從 RequiredModelMBean 移除一個 attributeChangeNotifications 的偵聽器。
 void sendAttributeChangeNotification(Attribute oldValue, Attribute newValue)
          將包含屬性的原有值和新值的 attributeChangeNotification 發送到 ModelMBean 上已註冊的 AttributeChangeNotification 偵聽器。
 void sendAttributeChangeNotification(AttributeChangeNotification notification)
          將傳入的 attributeChangeNotification 發送到 ModelMBean 上已註冊的 attributeChangeNotification 偵聽器。
 void sendNotification(Notification ntfyObj)
          以 jmx.modelmbean.generic 通知形式將傳入的 Notification 發送到 ModelMBean 上已註冊的 Notification 偵聽器。
 void sendNotification(String ntfyText)
          將包含傳入文本字元串的 Notification 發送到 ModelMBean 上已註冊的 Notification 偵聽器。
 
從介面 javax.management.NotificationBroadcaster 繼承的方法
addNotificationListener, getNotificationInfo, removeNotificationListener
 

方法詳細資訊

sendNotification

void sendNotification(Notification ntfyObj)
                      throws MBeanException,
                             RuntimeOperationsException
以 jmx.modelmbean.generic 通知形式將傳入的 Notification 發送到 ModelMBean 上已註冊的 Notification 偵聽器。

參數:
ntfyObj - 要傳遞給偵聽器物件的 'handleNotification' 方法的通知。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException:傳入參數中的 Notification 物件為 null。

sendNotification

void sendNotification(String ntfyText)
                      throws MBeanException,
                             RuntimeOperationsException
將包含傳入文本字元串的 Notification 發送到 ModelMBean 上已註冊的 Notification 偵聽器。

參數:
ntfyText - Notification 中要傳遞到偵聽器物件的 'handleNotification' 方法的文本。 所建構的 Notification 將為: 型別 "jmx.modelmbean.generic" 源 此 ModelMBean 實例 序列 1
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException:傳入參數中的 Notification 文本字元串為 null。

sendAttributeChangeNotification

void sendAttributeChangeNotification(AttributeChangeNotification notification)
                                     throws MBeanException,
                                            RuntimeOperationsException
將傳入的 attributeChangeNotification 發送到 ModelMBean 上已註冊的 attributeChangeNotification 偵聽器。

參數:
notification - 要傳遞給偵聽器物件的 'handleNotification' 方法的通知。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException:傳入參數中的 AttributeChangeNotification 物件為 null。

sendAttributeChangeNotification

void sendAttributeChangeNotification(Attribute oldValue,
                                     Attribute newValue)
                                     throws MBeanException,
                                            RuntimeOperationsException
將包含屬性的原有值和新值的 attributeChangeNotification 發送到 ModelMBean 上已註冊的 AttributeChangeNotification 偵聽器。

參數:
oldValue - 屬性的原始值
newValue - 屬性的當前值

  
所建構的 attributeChangeNotification 將為:
型別     "jmx.attribute.change"
源      此 ModelMBean 實例
序列    1
   attributeName oldValue.getName()
   attributeType oldValue's class
   attributeOldValue oldValue.getValue()
   attributeNewValue newValue.getValue()
 
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException:傳入參數中的 Attribute 物件為 null,或參數中兩個 Attribute 物件的名稱不同。

addAttributeChangeNotificationListener

void addAttributeChangeNotificationListener(NotificationListener listener,
                                            String attributeName,
                                            Object handback)
                                            throws MBeanException,
                                                   RuntimeOperationsException,
                                                   IllegalArgumentException
註冊一個將 NotificationListener 介面實作為偵聽器的物件。當通過或由 ModelMBean 發佈任何 attributeChangeNotification 時,將調用此物件的 'handleNotification()' 方法。這不包括其他 Notification。它們必須獨立註冊。將為此 attributeName 產生一個 AttributeChangeNotification。

參數:
listener - 將處理由已註冊的 MBean 發出的通知的偵聽器物件。
attributeName - 要為其接收更改通知的 ModelMBean 屬性名稱。如果參數為 null,則所有更改將導致發佈 attributeChangeNotification。
handback - 當發出通知時,要發送到帶有通知的偵聽器的上下文。
拋出:
IllegalArgumentException - 偵聽器不可以為 null。
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException。傳入參數中的屬性名稱不存在。
另請參見:
removeAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String)

removeAttributeChangeNotificationListener

void removeAttributeChangeNotificationListener(NotificationListener listener,
                                               String attributeName)
                                               throws MBeanException,
                                                      RuntimeOperationsException,
                                                      ListenerNotFoundException
從 RequiredModelMBean 移除一個 attributeChangeNotifications 的偵聽器。

參數:
listener - 正在處理由註冊的 MBean 發出的通知的偵聽器名稱。此方法將移除與此偵聽器相關的所有資訊。
attributeName - 偵聽器不再為其接收 attributeChangeNotifications 的屬性。如果為 null,則將移除所有 attributeChangeNotifications 的偵聽器。
拋出:
ListenerNotFoundException - 偵聽器未在 MBean 中註冊,或為 null。
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝一個 IllegalArgumentException 如果 inAttributeName 參數沒有對應一個屬性名稱。
另請參見:
addAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String, java.lang.Object)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only