JMX

JMX(Java Management Extensions,即Java管理擴充功能)是Java平台上為應用程式、裝置、系統等植入管理功能的框架。JMX可以跨越一系列異構作業系統平台、系統體系結構和網路傳輸協定,靈活的開發無縫整合的系統、網路和服務管理應用。

代管Bean

代管Bean英語:Managed BeanMBean)是一種通過依賴注入建立的JavaBean。代管Bean主要用在Java管理擴充功能技術中。在Java EE 6的規範中,對代管Bean做了更具體的規定。

MBean代表了執行在Java虛擬機器上的資源,例如應用程式或Java EE服務(事務監控、JDBC驅動程式等)。其可以用於收集如效能、資源使用率、問題資訊等關鍵的統計資訊(通過拉取英語Pull technology),取得或設定應用程式的配置或屬性(通過推播或拉取英語Pull technology),以及對故障或狀態變化等的通知事件(通過推播)。

Java EE 6規定,代管Bean是一種Bean類。如果一個Java的外部類被其他Java EE規範(例如JavaServer Faces規範)定義為代管Bean,或者它滿足下述所有條件,那麼這個類就是一個代管Bean:

  1. 它不是一個非靜態內部類。
  2. 它是一個具體類,或者是被@Decorator註解。
  3. 它沒有被EJB元件定義註解註解,或在ejb-jar.xml中被聲明為EJB 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,它具體化英語Reification (computer science)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>

參見

  • SNMP,JMX
  • J2EE

參考文獻

外部連結