Java™ Platform
Standard Edition 7

パッケージ 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™ Platform
Standard Edition 7

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