javax.management.monitor

javax.management.monitor

javax.management.monitor是一個電腦系統檔案。

基本介紹

  • 中文名:javax.management.monitor
  • 性質:一個電腦系統檔案
  • 依據:《JMX 規範》
  • 套用:1sendNotification
簡介,monitor 類的定義,提供 MBean 所傳送的屬性更改通知的定義,類 MBeanServerNotification,套用,1sendNotification,handleNotification,isNotificationEnabled,enableAttribute,disableAttribute,disableAllAttributes,getEnabledAttributes,

簡介

monitor 類的定義

\提供 。Monitor 是一個 MBeans,它定期觀察一個或多個其他 MBeans 中的屬性值。如果某個屬性滿足特定的條件,則 Monitor 將發出一個 MonitorNotification。
《JMX 規範》中詳細敘述了監視器的具體行為。下面是有關的概述。
共有三種監視器:
CounterMonitor 觀察整數類型的屬性。假定這些屬性為非負數,並且單調遞增(以指定的模 進行的可能回滾 除外)。每個 observed 屬性都具有相關的閾值。當屬性超過其閾值時將發出一個通知。
可以指定一個偏移量 值。當被觀察值超過其閾值時,該閾值應按偏移量遞增,或者按偏移量的倍數遞增,以使其閾值足大於新的被觀察值。
CounterMonitor 可以在不同的模式 下操作。在本模式中,與閾值比較所得的值就是對屬性的兩次連續觀察值之間的差分。
GaugeMonitor 觀察數字類型的屬性。每個被觀察屬性都具有相關的高閾值 和低閾值。
當 observed 屬性超過高閾值時,如果 notify high 標記為 true,則傳送一個通知。在尺度值變得小於或等於低閾值之前,後續的超出高閾值的情況不會觸發更多的通知。
當 observed 屬性低於低閾值時,如果 notify low 標記為 true,則傳送一個通知。在尺度值變得小於或等於高閾值之前,後續的超出低閾值的情況不會觸發更多的通知。
一般情況下,僅設定 notify high 和 notify low 標誌中的一個。使用其他閾值來提供滯後 機制,以避免屬性值在閾值附近進行小幅度擺動時重複觸發通知。
GaugeMonitor 可以在不同的模式 操作。在本模式中,與高、低閾值相比得出的值就是對屬性的兩次連續觀察值之間的差分。
StringMonitor 觀察類型為 String 的屬性。當 observed 屬性變得等於和/或不等於指定的字元串時,將發出一個通知。
包規範
JMX API 規範,1.2 版(第 9 章, Monitoring)
從以下版本開始:
1.5

提供 MBean 所傳送的屬性更改通知的定義

當屬性發生更改時,由擁有相關屬性的 MBean 負責創建並傳送屬性更改通知。所以必須由發生屬性更改的 MBean 來實現 NotificationBroadcaster 接口。 示例:如果一個稱為 myMbean 的 MBean 在其屬性
String myString被修改時通知已註冊的偵聽器,則 myMbean 創建並忽略以下通知:new AttributeChangeNotification(myMbean, sequenceNumber, timeStamp, msg, "myString", "String", oldValue, newValue); 從以下版本開始:1.5

類 MBeanServerNotification

public class MBeanServerNotificationextends Notification表示 MBean 伺服器通過 MBeanServerDelegate MBean 所發出的通知。MBean 伺服器發出下列類型的通知:MBean 註冊、MBean 註銷。 要想接收 MBeanServerNotifications,需要聲明為表示 MBeanServer 的 javax.management.MBeanServerDelegate MBean 的偵聽器。MBeanServerDelegate 的 ObjectName 是:JMImplementation:type=MBeanServerDelegate。 從以下版本開始:1.5

套用

1sendNotification

public void sendNotification(Notification notification)傳送一個通知。如果在構造方法中指定了一個 Executor,則為每個選定的偵聽器提供一項任務,以便將通知傳送給該偵聽器。 參數: notification - 要傳送的通知。protected void handleNotification(NotificationListener listener, Notification notif, Object handback)為了向偵聽器傳送通知,由該偵聽器的 sendNotification 調用此方法。在子類中可重寫此方法,以更改通知傳遞的行為,例如在一個單獨的執行緒中傳遞該通知。此方法的默認實現等效於 listener.handleNotification(notif, handback); 參數: listener - 要接收通知的偵聽器。 notif - 傳遞給偵聽器的通知。 handback - 添加偵聽器時提供的回調對象。

handleNotification

void handleNotification(Notification notification, Object handback)出現 JMX 通知時調用。此方法的實現應該儘快返回,以避免阻塞其通知廣播者。 參數: notification - 通知。 handback - 一個不透明對象,用於幫助偵聽器關聯關於 MBean 發出者的信息。在 addListener 調用期間將此對象傳遞到 MBean,並在不經修改的情況下重發到偵聽器。MBean 對象不應使用或修改該對象。

isNotificationEnabled

public boolean isNotificationEnabled(Notification notification)向偵聽器傳送指定的通知之前調用。此過濾器將指定屬性更改通知的屬性名稱與每個已啟用屬性名稱進行比較。如果該屬性名稱等於某個已啟用屬性名稱,則必須將該通知傳送到偵聽器,並且此方法返回 true。 指定者: 接口 NotificationFilter 中的 isNotificationEnabled參數: notification - 要傳送的屬性更改通知。 返回: 如果必須將通知傳送到偵聽器,則返回 true;否則返回 false。

enableAttribute

public void enableAttribute(String name) throws IllegalArgumentException啟用所有屬性更改通知,這些通知的屬性名稱等於要傳送到偵聽器的指定名稱。如果指定的名稱已在已啟用屬性名稱列表中,則此方法無效。 參數: name - 屬性名稱。 拋出: IllegalArgumentException - 如果屬性名稱的參數為 null。

disableAttribute

public void disableAttribute(String name)禁用所有屬性更改通知,這些通知的屬性名稱等於要傳送到偵聽器的指定屬性名稱。如果指定的名稱不在已啟用屬性名稱列表中,則此方法無效。 參數: name - 屬性名稱。

disableAllAttributes

public void disableAllAttributes()禁用所有屬性名稱。

getEnabledAttributes

public Vector<String> getEnabledAttributes()獲得此過濾器的所有已啟用屬性名稱。 返回: 包含所有已啟用屬性名稱的列表。

相關詞條

熱門詞條

聯絡我們