インタフェース | 説明 |
---|---|
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, 2013, Oracle and/or its affiliates. All rights reserved.