JavaTM 2 Platform
Standard Ed. 6

javax.management.modelmbean
介面 ModelMBeanInfo

所有已知實作類別:
ModelMBeanInfoSupport

public interface ModelMBeanInfo

此介面由每個 ModelMBean 的 ModelMBeanInfo 實作。此介面的實作必須與每個 JMX Agent 一起發佈。

Java 資源使用 MBeanServer 的 createMBean 方法來實例化 ModelMBean,以便具有可管理性。然後該資源設置 ModelMBean 實例的 ModelMBeanInfo 和 Descriptor。通過 ModelMBean 的 ModelMBeanInfo 公開的屬性、操作和通知組成了管理介面,並且像其他 MBean 一樣可以從 MBean、連接器/適配器進行存取。通過 Descriptor,可以定義托管應用程序中的值和方法,並可以將它們映射到 ModelMBean 的屬性和操作。此映射可以在檔案的開發過程中定義,也可以以程式方式在運行時動態定義。

MBeanServer 中實例化的每個 ModelMBean 都是可管理的:通過連接到該 MBeanServer 的連接器/適配器,可以遠端存取其屬性、操作和通知。Java 物件不能在 MBeanServer 中進行註冊,除非它是 JMX 相容的 MBean。通過實例化 ModelMBean,資源可保證 MBean 是有效的。 每個公共方法必須拋出 MBeanException 和 RuntimeOperationsException。這允許包裹來自分佈式通信(RMI 和 EJB 等)的異常。

從以下版本開始:
1.5

方法摘要
 Object clone()
          創建並返回此物件的一個副本。
 ModelMBeanAttributeInfo getAttribute(String inName)
          返回通過名稱請求的 ModelMBeanAttributeInfo。
 MBeanAttributeInfo[] getAttributes()
          返回為管理公開的屬性列表。
 String getClassName()
          返回此 MBeanInfo 所描述的 MBean 的 Java 類別名稱。
 MBeanConstructorInfo[] getConstructors()
          返回 MBean 的公共建構子列表。
 String getDescription()
          返回 MBean 的可讀描述。
 Descriptor getDescriptor(String inDescriptorName, String inDescriptorType)
          返回通過 name 和 descriptorType 請求的 Descriptor。
 Descriptor[] getDescriptors(String inDescriptorType)
          返回由 inDescriptorType 型別的 ModelMBeanInfo 的所有 Descriptor 組成的 Descriptor 陣列。
 Descriptor getMBeanDescriptor()
          返回包含 MBean 級策略的 ModelMBean 的描述符。
 ModelMBeanNotificationInfo getNotification(String inName)
          返回通過名稱請求的 ModelMBeanNotificationInfo。
 MBeanNotificationInfo[] getNotifications()
          返回 MBean 所發送的通知列表。
 ModelMBeanOperationInfo getOperation(String inName)
          返回通過名稱請求的 ModelMBeanOperationInfo。
 MBeanOperationInfo[] getOperations()
          返回 MBean 的操作列表。
 void setDescriptor(Descriptor inDescriptor, String inDescriptorType)
          設置 inDescriptorType 型別的 ModelMBean 的 info 陣列中的描述符。
 void setDescriptors(Descriptor[] inDescriptors)
          添加或替換 ModelMBeanInfo 中的描述符。
 void setMBeanDescriptor(Descriptor inDescriptor)
          設置 ModelMBean 的描述符。
 

方法詳細資訊

getDescriptors

Descriptor[] getDescriptors(String inDescriptorType)
                            throws MBeanException,
                                   RuntimeOperationsException
返回由 inDescriptorType 型別的 ModelMBeanInfo 的所有 Descriptor 組成的 Descriptor 陣列。

參數:
inDescriptorType - 必須為要返回的描述符設置的 descriptorType 欄位值。必須為 "mbean"、"attribute"、"operation"、"constructor" 或 "notification"。如果它為 null 或空,則將返回全部類別型。
返回:
包含 inDescriptorType 型別的 ModelMBean 的所有描述符的 Descriptor 陣列。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 當參數中的 descriptorType 不是以下值之一時,包裹一個 IllegalArgumentException:"mbean"、"attribute"、"operation"、"constructor"、"notification"、空、 null。
另請參見:
setDescriptors(javax.management.Descriptor[])

setDescriptors

void setDescriptors(Descriptor[] inDescriptors)
                    throws MBeanException,
                           RuntimeOperationsException
添加或替換 ModelMBeanInfo 中的描述符。

參數:
inDescriptors - ModelMBeanInfo 中要設置的描述符。忽略列表中的 null 元素。所有描述符必須具有 name 和 descriptorType 欄位。
拋出:
RuntimeOperationsException - 套件裝 null 或無效描述符的 IllegalArgumentException。
MBeanException - 套件裝一個分佈式通信異常。
另請參見:
getDescriptors(java.lang.String)

getDescriptor

Descriptor getDescriptor(String inDescriptorName,
                         String inDescriptorType)
                         throws MBeanException,
                                RuntimeOperationsException
返回通過 name 和 descriptorType 請求的 Descriptor。

參數:
inDescriptorName - 描述符的名稱。
inDescriptorType - 要請求的描述符的型別。如果它為 null 或空,就搜尋全部類別型。有效的型別有 'mbean'、'attribute'、'constructor'、'operation'、'notification'。此值將等於所返回的描述符中的 'descriptorType' 欄位。
返回:
包含具有相同 name 和 descriptorType 的 ModelMBean 描述符的 Descriptor。如果未找到描述符,則返回 null。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝描述符的名稱為 null 的 IllegalArgumentException,或者 null 或無效型別的 IllegalArgumentException。型別必須為 "mbean"、"attribute"、"constructor"、"operation" 或 "notification"。
另請參見:
setDescriptor(javax.management.Descriptor, java.lang.String)

setDescriptor

void setDescriptor(Descriptor inDescriptor,
                   String inDescriptorType)
                   throws MBeanException,
                          RuntimeOperationsException
設置 inDescriptorType 型別的 ModelMBean 的 info 陣列中的描述符。將調用對應 ModelMBean*Info 的 setDescriptor 方法來設置指定的描述符。

參數:
inDescriptor - ModelMBean 中要設置的描述符。它必須不為 null。所有描述符必須有 name 和 descriptorType 欄位。
inDescriptorType - 要設置的描述符型別。如果它為 null,則使用描述符中的 descriptorType 欄位。如果此值是指定的,則必須在描述符的 descriptorType 欄位中設置它。必須為 "mbean"、"attribute"、"constructor"、"operation" 或 "notification"。
拋出:
RuntimeOperationsException - 套件裝非法或 null 參數的 IllegalArgumentException,或者如果在對應的 MBeanAttributeInfo、MBeanConstructorInfo、MBeanNotificationInfo 或 MBeanOperationInfo 中找不到描述符的 name 欄位。
MBeanException - 套件裝一個分佈式通信異常。
另請參見:
getDescriptor(java.lang.String, java.lang.String)

getMBeanDescriptor

Descriptor getMBeanDescriptor()
                              throws MBeanException,
                                     RuntimeOperationsException
返回包含 MBean 級策略的 ModelMBean 的描述符。此描述符包含關於 MBean 和預設持久性及快取記憶體策略的元資料。

描述符中的欄位定義如下,但不限於此:

 name           : MBean 名稱  
 descriptorType : 必須為 "mbean"   
 displayName    : 要在顯示中使用的屬性名稱
 persistPolicy  : OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never  
 persistLocation : 應在其中保持 MBean 的完全限定目錄名(如果適當)。
 persistFile    : 應在其中保持 MBean 的檔案名稱。
 persistPeriod  : 秒數 -  OnTime 和 NoMoreOftenThan PersistPolicy 的保持週期的頻率
 currencyTimeLimit : 值保持有效的時間,<0 為無效,=0 為總是有效,>0 為有效的秒數
 log            : 其中 t:記錄所有通知;f:不記錄通知
 logfile        : 要記錄事件的完全限定檔案名
 visibility     : 1-4,其中 1:總是可見;4:幾乎不可見
 export         : 要用於導出/公開此 MBean 的名稱,以便其他 JMX Agent 可以找到它
                     
 presentationString : 允許資料與 MBean 關聯的 xml 格式的字元串。 
 

預設描述符為:name=mbeanName、descriptorType=mbean、displayName=this.getClassName()、persistPolicy=never、log=F、export=F、visibility=1 如果描述符不包含所有這些欄位,則將以這些預設值添加它們。

註:由於與此規範的以前版本不一致,因此對於 currencyTimeLimit,推薦不使用負值或零。要指示某個快取記憶體的值永遠無效,請忽略 currencyTimeLimit 欄位。要指示它總是有效,請為此欄位使用一個非常大的值。

返回:
MBean 描述符。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 如果獲取描述符時發生 RuntimeException
另請參見:
setMBeanDescriptor(javax.management.Descriptor)

setMBeanDescriptor

void setMBeanDescriptor(Descriptor inDescriptor)
                        throws MBeanException,
                               RuntimeOperationsException
設置 ModelMBean 的描述符。此描述符包含預設的、關於 MBean 和預設持久性及快取記憶體策略的 MBean 級元資料。此操作執行描述符的完全替換,不執行合併。如果要設置的描述符為 null,則將創建預設描述符。預設描述符為:name=mbeanName、descriptorType=mbean、displayName=this.getClassName()、 persistPolicy=never、log=F、export=F、visibility=1 如果描述符不包含所有這些欄位,則將以這些預設值添加它們。 有關有效欄位名稱的描述,請參閱 getMBeanDescriptor 方法的 javadoc。

參數:
inDescriptor - 要設置的描述符。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝無效描述符的 IllegalArgumentException。
另請參見:
getMBeanDescriptor()

getAttribute

ModelMBeanAttributeInfo getAttribute(String inName)
                                     throws MBeanException,
                                            RuntimeOperationsException
返回通過名稱請求的 ModelMBeanAttributeInfo。

參數:
inName - 要獲取的 ModelMBeanAttributeInfo 名稱。如果不存在此名稱的 ModelMBeanAttributeInfo,則返回 null。
返回:
指定屬性的屬性資訊,如果沒有,則返回 null。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝 null 屬性名稱的 IllegalArgumentException。

getOperation

ModelMBeanOperationInfo getOperation(String inName)
                                     throws MBeanException,
                                            RuntimeOperationsException
返回通過名稱請求的 ModelMBeanOperationInfo。

參數:
inName - 要獲取的 ModelMBeanOperationInfo 名稱。如果不存在此名稱的 ModelMBeanOperationInfo,則返回 null。
返回:
指定操作的操作資訊,如果沒有,則返回 null。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝 null 操作名稱的 IllegalArgumentException。

getNotification

ModelMBeanNotificationInfo getNotification(String inName)
                                           throws MBeanException,
                                                  RuntimeOperationsException
返回通過名稱請求的 ModelMBeanNotificationInfo。

參數:
inName - 要獲取的 ModelMBeanNotificationInfo 名稱。如果不存在此名稱的 ModelMBeanNotificationInfo,則返回 null。
返回:
指定通知的資訊,如果沒有,則返回 null。
拋出:
MBeanException - 套件裝一個分佈式通信異常。
RuntimeOperationsException - 套件裝 null 通知名稱的 IllegalArgumentException。

clone

Object clone()
創建並返回此物件的一個副本。


getAttributes

MBeanAttributeInfo[] getAttributes()
返回為管理公開的屬性列表。每個屬性由一個 MBeanAttributeInfo 物件描述。

返回:
MBeanAttributeInfo 物件的陣列。

getClassName

String getClassName()
返回此 MBeanInfo 所描述的 MBean 的 Java 類別名稱。

返回:
Java 類別名稱。

getConstructors

MBeanConstructorInfo[] getConstructors()
返回 MBean 的公共建構子列表。每個屬性由一個 MBeanConstructorInfo 物件描述。

返回:
MBeanConstructorInfo 物件的陣列。

getDescription

String getDescription()
返回 MBean 的可讀描述。

返回:
描述。

getNotifications

MBeanNotificationInfo[] getNotifications()
返回 MBean 所發送的通知列表。每個通知由一個 MBeanNotificationInfo 物件描述。

除了由應用程序指定的任何通知之外,ModelMBean 還可以始終發送兩個其他通知:

因此,除應用程序所指定的通知之外,ModelMBeanInfo 的任何實作應該總是添加這兩個通知。

返回:
MBeanNotificationInfo 物件的陣列。

getOperations

MBeanOperationInfo[] getOperations()
返回 MBean 的操作列表。每個操作由一個 MBeanOperationInfo 物件描述。

返回:
MBeanOperationInfo 物件的陣列。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only