圖 4. MXBean 接口
在我們的管理模型例子中,我們可以看到如何增強(qiáng) MXBean ,來支持狀態(tài)管理、事件、量度和包容功能。
ServletMXBean 及相關(guān)接口
清單 1. 這個(gè) ServletMXBean 接口符合開放類型,開放類型包括原始類型( int, long 和 boolean )以及它們的包裝類、枚舉、 CompositeData 類型和 Map and List 類型。
public interface ServletMXBean {
public boolean isStateManageable();
public boolean isStatisticsProvider();
public boolean isEventProvider();
public boolean isContainerMXBean();
public List getEventTypes();
public Stats getStats();
public String getImplClass();
}
public interface Stats {
public Statistic getStatistic(String name);
public Map getStatistics();
}
public interface Statistic {
public String getName();
public String getUnit();
public String getDescription();
public long getStartTime();
public long getLastSampleTime();
}
使用量度、統(tǒng)計(jì)信息、狀態(tài)管理和關(guān)系,是 SOMA 的重要方面。沒有這些功能,提供一個(gè)用于監(jiān)控和管理 Java 應(yīng)用程序的一致管理接口,就成為了一件困難的事情。在您自己的開發(fā)項(xiàng)目中,要注意使用一些這樣的 J2EE 管理機(jī)制。
最佳實(shí)踐 4 :使用 JMX 通知進(jìn)行通信。 JMX 為托管對象定義了一個(gè)事件模型,您可以使用這個(gè)模型來接收或生成事件。事件機(jī)制對于處理,由托管資源生成的關(guān)鍵事件,以及監(jiān)控狀態(tài)變化,是必不可少的。事件還可以用于為托管資源去監(jiān)控服務(wù)級別的違規(guī)。 JMX 通知機(jī)制允許 Mbean 發(fā)送通知給其他 Mbean 或其他管理應(yīng)用程序。以通知為中心的設(shè)計(jì)原則,可以應(yīng)用于我們的示例管理模型。例如,我們可能需要,在某個(gè)屬性出現(xiàn)變化或者加入新的模塊時(shí),生成通知。
清單 2 顯示了 WebAppServerMXBean 類的實(shí)現(xiàn),其中包括給應(yīng)用服務(wù)添加新的 WebModule 時(shí),要調(diào)用的 addWebModule() 方法。注意 Notification 對象的創(chuàng)建和對 sendNotification() 方法的調(diào)用。這個(gè)方法是從基類繼承而來的,使用一個(gè)實(shí)用程序類( javax.management.NotificationBroadcasterSupport )來發(fā)送通知。
相關(guān)推薦:計(jì)算機(jī)等級考試二級Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |