インタフェース | 説明 |
---|---|
BufferPoolMXBean | |
ClassLoadingMXBean |
Java仮想マシンのクラス・ローディング・システムの管理インタフェースです。
|
CompilationMXBean |
Java仮想マシンのコンパイル・システムの管理インタフェースです。
|
GarbageCollectorMXBean |
Java仮想マシンのガベージ・コレクションの管理インタフェースです。
|
MemoryManagerMXBean |
メモリー・マネージャの管理インタフェースです。
|
MemoryMXBean |
Java仮想マシンのメモリー・システムの管理インタフェースです。
|
MemoryPoolMXBean |
メモリー・プールの管理インタフェースです。
|
OperatingSystemMXBean |
Java仮想マシンを実行しているオペレーティング・システムの管理インタフェースを返します。
|
PlatformLoggingMXBean |
ロギング機能の管理インタフェースです。
|
PlatformManagedObject |
プラットフォーム管理対象オブジェクトとは、Javaプラットフォーム内の1つのコンポーネントを監視および管理するためのJMX MXBeanのことです。
|
RuntimeMXBean |
Java仮想マシンの実行時システムの管理インタフェースです。
|
ThreadMXBean |
Java仮想マシンのスレッド・システムの管理インタフェースです。
|
クラス | 説明 |
---|---|
LockInfo |
ロックに関する情報です。
|
ManagementFactory |
ManagementFactory クラスは、Javaプラットフォームの管理対象Beanを取得するためのファクトリ・クラスです。 |
ManagementPermission |
SecurityManagerによって実行されるコードがJavaプラットフォームの管理インタフェースで定義されたメソッドを呼び出すときに、SecurityManagerがチェックするアクセス権です。
|
MemoryNotificationInfo |
メモリー通知に関する情報です。
|
MemoryUsage |
MemoryUsageオブジェクトは、メモリー使用量のスナップショットを表します。
|
MonitorInfo |
オブジェクトのモニター・ロックに関する情報です。
|
ThreadInfo |
スレッド情報です。
|
列挙型 | 説明 |
---|---|
MemoryType |
メモリー・プール のタイプです。 |
プラットフォームMXBeanは、JMXインストゥルメンテーション仕様に適合する管理Beanであり、基本データ型のセットだけを使用します。各プラットフォームMXBeanは、一意の名前を持つPlatformManagedObject
です。
ManagementFactory
クラスは、Javaプラットフォームの管理ファクトリ・クラスです。このクラスは、JavaプラットフォームのMXBeanを取得する一連のstaticファクトリ・メソッドを提供し、アプリケーションでMXBeanに直接アクセスできるようにします。
プラットフォームMBeanServerにアクセスするには、getPlatformMBeanServer
メソッドを使用します。このメソッドの1回目の呼出しで、プラットフォームMBeanServerを作成し、プラットフォームMXBeanを含むすべてのプラットフォームMXBeanを登録します。各プラットフォームMXBeanは、管理インタフェースの仕様で定義されている一意の名前で登録されます。これは単一のMBeanServerであり、同じJava仮想マシン内で実行されているさまざまな管理対象コンポーネントによって共有されることがあります。
実行中の仮想マシンの管理アプリケーションとプラットフォームMBeanServerは、プラットフォームMXBeanインタフェースで使用されるクラスを必要とすることなく相互運用できます。JMXコネクタ・サーバーとコネクタ・クライアントの間で転送されるデータ型は、JMX 公開型であり、これによってバージョン間の相互運用が可能です。MXBeanインタフェースで使用されるデータ型は、MBeanServerインタフェースによるアクセス時に、公開型にマップされます。詳細は、「MXBean仕様」を参照してください。
アプリケーションは、次の方法でJava仮想マシンのインストゥルメンテーションとランタイムを監視できます。
1. MXBeanインタフェースへの直接アクセス
RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean(); // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor();
あるいは、getPlatformMXBean
またはgetPlatformMXBeans
メソッドを呼び出します。
RuntimeMXBean mxbean = ManagementFactory.getPlatformMXBean(RuntimeMXBean.class); // 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 MBeans registered in it
...
// Get a MBean proxy for RuntimeMXBean interface
RuntimeMXBean proxy =
ManagementFactory.getPlatformMXBean
(mbs,
RuntimeMXBean.class);
// Get standard attribute "VmVendor"
String vendor = proxy.getVmVendor();
プロキシは通常、リモートのJava仮想マシン内のMXBeanにアクセスするために使用されます。MXBeanプロキシは次の方法で作成することもできます。
RuntimeMXBean proxy =
ManagementFactory.newPlatformMXBeanProxy
(mbs,
ManagementFactory.RUNTIME_MXBEAN_NAME,
RuntimeMXBean.class);
2. MBeanServerを介したMXBeanインタフェースへの間接アクセス
プラットフォームMBeanServer
でMXBeanにローカル・アクセスするか、または特定のMBeanServerConnection
でMXBeanにリモート・アクセスします。MXBeanの属性や操作で使用されるのはJMX公開型だけですが、これには、OpenType
に定義された基本データ型、CompositeData
、およびTabularData
が含まれます。
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 ... }
Java仮想マシンの実装では、標準の管理インタフェースを拡張してプラットフォーム固有のメトリックスと管理操作を追加するプラットフォーム依存のインタフェースを定義することで、管理インタフェースにプラットフォームの拡張を追加できます。ManagementFactoryクラスのstaticファクトリ・メソッドは、プラットフォーム拡張機能を備えたMXBeanを返します。
ベンダーの名前などベンダー固有の接頭辞を使ってプラットフォーム固有の属性に名前を付けて、標準管理インタフェースの将来の拡張と、このプラットフォーム拡張の間で属性の名前の衝突が発生しないようにすることをお薦めします。標準管理インタフェースに対する将来の拡張が、管理インタフェースの新しい属性を定義し、属性名がベンダー固有の属性の名前と同じことがわかった場合、バージョニングと互換性の問題に対処するために、ベンダー固有の属性にアクセスしているアプリケーションを変更する必要があります。
以下の例は、プラットフォーム拡張の属性にアクセスする方法を示しています。
1) Oracle固有のMXBeanインタフェースへの直接アクセス
List<com.sun.management.GarbageCollectorMXBean> mxbeans = ManagementFactory.getPlatformMXBeans(com.sun.management.GarbageCollectorMXBean.class); for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) { // Get the standard attribute "CollectionCount" String count = mxbean.getCollectionCount(); // Get the platform-specific attribute "LastGcInfo" GcInfo gcinfo = gc.getLastGcInfo(); ... }
2)プロキシ経由でMBeanServerを使った、Oracle固有のMXBeanインタフェースへのアクセス
MBeanServerConnection mbs; // Connect to a running JVM (or itself) and get MBeanServerConnection // that has the JVM MXBeans registered in it ... List<com.sun.management.GarbageCollectorMXBean> mxbeans = ManagementFactory.getPlatformMXBeans(mbs, com.sun.management.GarbageCollectorMXBean.class); for (com.sun.management.GarbageCollectorMXBean gc : mxbeans) { // Get the standard attribute "CollectionCount" String count = mxbean.getCollectionCount(); // Get the platform-specific attribute "LastGcInfo" GcInfo gcinfo = gc.getLastGcInfo(); ... }
ほかで指定がない場合、null引数をこのパッケージの任意のクラスまたはインタフェースのメソッドまたはコンストラクタへ渡すと、NullPointerException
がスローされます。
java.lang.management APIはスレッドセーフです。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.