JMX
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
JMX(英語:Java Management Extensions,即Java管理擴展)是Java平台上為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。
託管Bean
託管Bean(英語:Managed Bean,MBean)是一種通過依賴注入創建的JavaBean。託管Bean主要用在Java管理擴展技術中。在Java EE 6的規範中,對託管Bean做了更具體的規定。
MBean代表了運行在Java虛擬機上的資源,例如應用程序或Java EE服務(事務監控、JDBC驅動程序等)。其可以用於收集如性能、資源使用率、問題信息等關鍵的統計信息(通過拉取),獲取或設置應用程序的配置或屬性(通過推送或拉取),以及對故障或狀態變化等的通知事件(通過推送)。
Java EE 6規定,託管Bean是一種Bean類。如果一個Java的外部類被其他Java EE規範(例如JavaServer Faces規範)定義為託管Bean,或者它滿足下述所有條件,那麼這個類就是一個託管Bean:
定義託管Bean時無需特殊的聲明(如註解等)。
一個實現了javax.management.NotificationEmitter
的MBean,其內部的變化(針對屬性)可以通知MBeanServer。對MBean的變化感興趣的應用程序可以註冊一個到MBeanServer的監聽器(javax.management.NotificationListener
)。注意,JMX並不保證所有通知都會被監聽器接收。[1]
類型
有兩種基本類型的MBean:
- 標準MBean(Standard MBeans):實現了業務接口,其包含屬性的getter和setter和操作(即方法)。
- 動態MBean(Dynamic MBeans):實現javax.management.DynamicMBean接口,其提供了列出屬性和操作,以及獲取和設置屬性值的方式。
附加的類型有開放MBean(Open MBeans)、模型MBean(Model MBeans)和監視器MBean(Monitor MBeans)。 開放MBean是限定為基本數據類型的動態MBean,因而可移植性較好。 模型MBean是可以在運行期間配置的動態MBean。一般的MBean類也提供了用於在程序運行期間動態地配置資源的功能。
MXBean(Platform MBean,平台MBean)是一種特殊類型的MBean,它具體化了Java虛擬機子系統,例如垃圾回收、即時編譯、內存池、多線程等。
MLet(Management applet,管理小程序)是一個實用程序MBean,在MBeanServer用來從XML描述中加載、實例化和註冊MBean。這種XML描述符的格式是:[2]
<MLET CODE = ''class'' | OBJECT = ''serfile'' ARCHIVE = ''archiveList'' [CODEBASE = ''codebaseURL''] [NAME = ''objectName''] [VERSION = ''version''] > [arglist] </MLET>
參見
參考文獻
- ^ Java Management Extensions (JMX) - Best Practices. [2014-08-23]. (原始內容存檔於2019-05-02).
- ^ MLet (Java 2 Platform SE 5.0). Sun Microsystems. [2008-06-22]. (原始內容存檔於2010-02-10).