ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージ java.lang.management

Java実行時にJava仮想マシンおよびほかのコンポーネントを監視および管理するための管理インタフェースを提供します。

参照: 説明

パッケージjava.lang.managementの説明

Java実行時にJava仮想マシンおよびほかのコンポーネントを監視および管理するための管理インタフェースを提供します。この管理インタフェースを使用すると、実行しているJava仮想マシンをローカルおよびリモートに監視および管理できます。

プラットフォームMXBean

プラットフォームMXBeanは、JMXインストゥルメンテーション仕様に適合する管理Beanであり、基本データ型のセットだけを使用します。各プラットフォームMXBeanは、一意の名前を持つPlatformManagedObjectです。

ManagementFactory

ManagementFactoryクラスは、Javaプラットフォームの管理ファクトリ・クラスです。このクラスは、JavaプラットフォームのMXBeanを取得する一連のstaticファクトリ・メソッドを提供し、アプリケーションでMXBeanに直接アクセスできるようにします。

プラットフォームMBeanServerにアクセスするには、getPlatformMBeanServerメソッドを使用します。このメソッドの1回目の呼出しで、プラットフォームMBeanServerを作成し、プラットフォームMXBeanを含むすべてのプラットフォームMXBeanを登録します。各プラットフォームMXBeanは、管理インタフェースの仕様で定義されている一意の名前で登録されます。これは単一のMBeanServerであり、同じJava仮想マシン内で実行されているさまざまな管理対象コンポーネントによって共有されることがあります。

相互運用性

実行中の仮想マシンの管理アプリケーションとプラットフォームMBeanServerは、プラットフォームMXBeanインタフェースで使用されるクラスを必要とすることなく相互運用できます。JMXコネクタ・サーバーとコネクタ・クライアントの間で転送されるデータ型は、JMX 公開型であり、これによってバージョン間の相互運用が可能です。MXBeanインタフェースで使用されるデータ型は、MBeanServerインタフェースによるアクセス時に、公開型にマップされます。詳細は、「MXBean仕様」を参照してください。

MXBeanにアクセスする方法

アプリケーションは、次の方法でJava仮想マシンのインストゥルメンテーションとランタイムを監視できます。

1. MXBeanインタフェースへの直接アクセス

2. MBeanServerを介したMXBeanインタフェースへの間接アクセス

プラットフォームの拡張

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はスレッドセーフです。

導入されたバージョン:
1.5
関連項目:
JMX仕様。
ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.