-
MBean
鎖定
- 外文名
- MBean
- 類 型
- 標準MBean、動態MBean等
- 性 質
- 描述一個可管理的資源
- 註冊方法
- 2個
MBeanMBean的類型
標準MBean
動態MBean
模型MBean
開放MBean
MBean註冊 MBean
(1) 創建一個MBean實例並註冊它到MBeanServer用方法:
public ObjectInstance registerMBean(Object object, ObjectName name) 這裏,object是創建的MBean實例,name部分是MBean的一個唯一標誌符.
(2) 使用createMBean 方法中的一個:
createMBean方法使用java自省來創建一個MBean實例.對所有的createMBean方法,有兩個變量是通用的.
String classname -- 要創建的MBean的實例的類名.
ObjectName name -- MBean要註冊的對象名稱.
如果用兩個變量的createMBean構造器,缺省的類裝載器(class loader)用來裝載MBean類,MBean被使用缺省的構造器初始化.如果MBean已經被初始化,這個實例將被MBeanServer用第二個變量的對象名稱註冊.如果你想使用指定的類裝載器,那麼可以使用三個變量的構造器.這個類裝載器將被MBeanServer註冊為一個MBean.這個類裝載器的對象名稱將用做第三個變量.
當實例化一個類,如果任何參數必須傳入,那麼可以使用四個參數的createMBean方法.這個createMBean方法的最後的兩個參數分別包含對象數組(類的初始化必須的)和他們的署名.如果MBean類必須用其他指定的類裝載器裝載,那麼應該使用五個參數的構造器.
MBean註銷MBean
MBean能夠用MBeanServer 的下面方法註銷:
public void unregisterMBean(ObjectName name) 這裏name 是這個MBean實例註冊的對象名稱.
註銷MBean後, MBeanServer將不再保存任何這個MBean實例的關聯.
控制MBeanRegistration
JMX定義了一個接口叫MBeanRegistration.這個接口的目的是允許MBean開發者對在MBeanServer上註冊和註銷進行一些控制.這通過MBean實現javax.management.MBeanRegistration接口來達到.
MBeanRegistration接口定義註冊控制機制的行為.它定義了以下四個方法:
- public ObjectName preRegister(MBeanServer mbs, ObjectName name)
- public void postRegister
- public void preDeRegister
- public void postDeRegister
所有以上的方法都是回調方法,
MBeanServer將在恰當的時機調用這些方法.
如果一個MBean實現MBeanRegistration並且這個MBean被註冊,MBeanServer在註冊前調用 preRegister方法.這個方法返回的對象名稱將在MBean註冊過程中使用.在成功完成MBean註冊後,MBeanServer調用postRegister方法.
如果以上的MBean被註銷,在註銷前MBeanServer調用preDeRegister方法.如果註銷成功,MBeanServer調用postDeRegister方法.
MBean注意事項
於一個單一MBean類,多個實例能夠被創建,並能夠被註冊為註冊時MBean提供的對象名稱.
無論何時一個MBean被註冊,MBeanServer創建一個類型為 jmx.mbean.created 的消息. MBeanServerDelegate MBean 廣播這個消息到所有註冊的監聽者.
MBeanRegistration接口提供註冊和註銷過程監控的鈎點.