|
JavaTM 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 仮想マシンをローカルおよびリモートに監視および管理できます。
管理インタフェース
説明
ClassLoadingMXBeanJava 仮想マシンのクラスローディングシステム CompilationMXBeanJava 仮想マシンのコンパイルシステム MemoryMXBeanJava 仮想マシンのメモリーシステム ThreadMXBeanJava 仮想マシンのスレッドシステム RuntimeMXBeanJava 仮想マシンの実行時システム OperatingSystemMXBeanJava 仮想マシンを実行しているオペレーティングシステム GarbageCollectorMXBeanJava 仮想マシンのガベージコレクタ MemoryManagerMXBeanJava 仮想マシンのメモリーマネージャー MemoryPoolMXBeanJava 仮想マシンのメモリープール
プラットフォーム MXBean は、そのプラットフォームの単一のコンポーネントのための管理インタフェースを定義する「管理ビーン」であり、ManagementFactory クラスで指定されます。
アプリケーションは Java 仮想マシンのインストゥルメンテーションを監視し、次の方法で特定の特性を管理できます。
ManagementFactory.newPlatformMXBeanProxy を呼び出すことで、指定された MBeanServer にメソッド呼び出しを転送する MXBean プロキシインスタンスを構築する。プロキシは通常、実行中のほかの仮想マシンの MXBean にリモートアクセスするために構築されるMBeanServer インタフェースを介した間接アクセス
platform MBeanServer で MXBean にローカルアクセスするか、または特定の MBeanServerConnection で MXBean にリモートアクセスする。MXBean の属性とオペレーションは、OpenType に定義された基本データ型、CompositeData、および TabularData を含む「JMX 公開型」だけを使用する
ManagementFactory クラスは、Java プラットフォームの管理ファクトリクラスです。このクラスは、Java プラットフォームの MXBean を取得する一連の static ファクトリメソッドを提供し、アプリケーションで MXBean に直接アクセスできるようにします。
platform MBeanServer は getPlatformMBeanServer メソッドでアクセスできます。このメソッドの 1 回目の呼び出しで、プラットフォーム MBeanServer を作成し、@link java.util.logging.LoggingMXBean} などその他のパッケージに定義されているプラットフォーム MXBean を含む、すべてのプラットフォーム MXBean を登録します。{各プラットフォーム MXBean は、ObjectName を構築するために ManagementFactory クラスで定義されている一意の名前で登録されます。これは単一の MBeanServer であり、同じ Java 仮想マシン内で実行されているさまざまな管理対象コンポーネントによって共有されることがあります。
open typesであり、これによってバージョン間の相互運用が可能です。
MXBean インタフェースで使用されるデータ型は、MBeanServer インタフェースによるアクセス時に、公開型にマップされます。データ型のマッピングは、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) Sun 固有の MXBean インタフェースへの MBeanServer を介したアクセス
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 Platform Standard Ed. 6 |
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。