|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
請參見:
描述
介面摘要 | |
---|---|
ClassLoadingMXBean | 用於 Java 虛擬機器的類別載入系統的管理介面。 |
CompilationMXBean | 用於 Java 虛擬機器的編譯系統的管理介面。 |
GarbageCollectorMXBean | 用於 Java 虛擬機器的垃圾回收的管理介面。 |
MemoryManagerMXBean | 記憶體管理器的管理介面。 |
MemoryMXBean | Java 虛擬機器記憶體系統的管理介面。 |
MemoryPoolMXBean | 記憶體池的管理介面。 |
OperatingSystemMXBean | 用於作業系統的管理介面,Java 虛擬機器在此作業系統上運行。 |
RuntimeMXBean | Java 虛擬機器的運行時系統的管理介面。 |
ThreadMXBean | Java 虛擬機器執行緒系統的管理介面。 |
類別摘要 | |
---|---|
LockInfo | 關於鎖 的資訊。 |
ManagementFactory | ManagementFactory 類別是一種處理器類別,用於獲取 Java 平臺的管理 Bean。 |
ManagementPermission | 使用 SecurityManager 運行的程式碼調用 Java 平臺的管理介面中定義的方法時,SecurityManager 將要檢查的權限。 |
MemoryNotificationInfo | 關於記憶體通知的資訊。 |
MemoryUsage | 表示記憶體使用量快照的 MemoryUsage 物件。 |
MonitorInfo | 關於物件監視器鎖的資訊。 |
ThreadInfo | 執行緒資訊。 |
列舉摘要 | |
---|---|
MemoryType | 記憶體池 的型別。 |
提供管理介面,用於監視和管理 Java 虛擬機器以及 Java 虛擬機器在其上運行的作業系統。它同時允許從本地和遠端對正在運行的 Java 虛擬機器進行監視和管理。
管理介面
描述
ClassLoadingMXBean
Java 虛擬機器的類別載入系統。 CompilationMXBean
Java 虛擬機器的編譯系統。 MemoryMXBean
Java 虛擬機器的記憶體系統。 ThreadMXBean
Java 虛擬機器的執行緒系統。 RuntimeMXBean
Java 虛擬機器的運行時系統。 OperatingSystemMXBean
Java 虛擬機器在其上運行的作業系統。 GarbageCollectorMXBean
Java 虛擬機器中的垃圾回收器。 MemoryManagerMXBean
Java 虛擬機器中的記憶體管理器。 MemoryPoolMXBean
Java 虛擬機器中的記憶體池。
平臺 MXBean 是一種管理 Bean,它定義平臺一個元件的管理介面,在 ManagementFactory 類別中定義。
應用程序可以採用以下方式監視 Java 虛擬機器的監測和管理特定的特徵:
ManagementFactory.newPlatformMXBeanProxy
將方法調用轉發到給定的 MBeanServer
。代理通常建構為遠端存取另一個正在運行的虛擬機器的 MXBean。MBeanServer
介面間接存取
platform MBeanServer
從本地存取 MXBean 或通過特定的 MBeanServerConnection 遠端存取 MXBean。MXBean 的屬性和操作僅使用 JMX 開放型別,包括在 OpenType
中的定義的基本資料型別、CompositeData
和 TabularData
。
ManagementFactory
類別是 Java 平臺的管理處理器類別。此類別提供了一組靜態處理器方法,用以獲得 Java 平臺的 MXBean,從而允許應用程序直接存取 MXBean。
使用 getPlatformMBeanServer
方法可以存取平臺 MBeanServer。第一次調用此方法時,它將創建平臺 MBeanServer 並註冊所有的平臺 MXBean,包括在其他包(如 LoggingMXBean
)中定義的平臺 MXBean。每個平臺 MXBean 均使用用於建構 ObjectName
的 ManagementFactory
類別中定義的唯一名稱進行註冊。這是唯一可以由在相同 Java 虛擬機器內運行的不同管理元件共享的 MBeanServer。
開放型別
,這就允許跨版本的互操作。
當通過 MBeanServer 介面進行存取時,MXBean 介面使用的資料型別將映射為開放型別。資料型別映射在 ManagementFactory
類別中指定。
RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean(); // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor();
MBeanServerConnection mbs; // Connect to a running JVM (or itself) and get MBeanServerConnection // that has the JVM MXBeans registered in it ... try { // Assuming the RuntimeMXBean has been registered in mbs ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME); // Get standard attribute "VmVendor" String vendor = (String) mbs.getAttribute(oname, "VmVendor"); } catch (....) { // Catch the exceptions thrown by ObjectName constructor // and MBeanServer.getAttribute method ... }
MBeanServerConnection mbs; // Connect to a running JVM (or itself) and get MBeanServerConnection // that has the JVM MBeans registered in it ... // Get a MBean proxy for RuntimeMXBean interface RuntimeMXBean proxy = ManagementFactory.newPlatformMXBeanProxy(mbs, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class); // Get standard attribute "VmVendor" String vendor = proxy.getVmVendor();
建議使用特定於供應商的前綴(如供應商的名稱)對特定於平臺的屬性進行命名,以避免標準管理介面的未來擴展與平臺擴展之間的屬性名稱衝突。如果標準管理介面的未來擴展為管理介面定義了一個新屬性,而該屬性名稱碰巧與某個特定於供應商的屬性的名稱相同,則必須修改存取該特定於供應商的屬性的應用程序,以處理版本控制和相容性問題。
以下範例演示了如何存取 Sun 的 RuntimeMXBean 實作中的特定於平臺的屬性。
1) 直接存取特定於 Sun 的 MXBean 介面
com.sun.management.RuntimeMXBean mxbean = (com.sun.management.RuntimeMXBean) ManagementFactory.getRuntimeMXBean(); // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor(); // Get the platform-specific attribute "Bar" BarType bar = mxbean.getBar();
2) 通過 MBeanServer 存取特定於 Sun 的 MXBean 介面
MBeanServerConnection mbs; // Connect to a running JVM (or itself) and get MBeanServerConnection // that has the JVM MXBeans registered in it ... try { // Assuming the RuntimeMXBean has been registered in mbs ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME); // Get standard attribute "VmVendor" String vendor = (String) mbs.getAttribute(oname, "VmVendor"); // Check if this MXBean contains Sun's extension if (mbs.isInstanceOf(oname, "com.sun.management.RuntimeMXBean")) { // Get platform-specific attribute "Bar" BarType bar = (String) mbs.getAttribute(oname, "Bar"); } } catch (....) { // Catch the exceptions thrown by ObjectName constructor // and MBeanServer methods ... }
除非另有說明,向此套件的任何類別或介面中的建構子或方法傳遞 null 變數,將會拋出 NullPointerException
。
java.lang.management API 是執行緒安全的。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。