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