JavaTM 2 Platform
Standard Ed. 5.0

パッケージ java.lang.management

Java 仮想マシンの管理および Java 仮想マシンが実行されているオペレーティングシステムの管理を監視する管理インタフェースを提供します。

参照先:
          説明

インタフェースの概要
ClassLoadingMXBean Java 仮想マシンのクラスローディングシステムの管理インタフェースです。
CompilationMXBean Java 仮想マシンのコンパイルシステムの管理インタフェースです。
GarbageCollectorMXBean Java 仮想マシンのガベージコレクションの管理インタフェースです。
MemoryManagerMXBean メモリマネージャの管理インタフェース。
MemoryMXBean Java 仮想マシンのメモリシステムの管理インタフェースです。
MemoryPoolMXBean メモリプールの管理インタフェースです。
OperatingSystemMXBean Java 仮想マシンを実行しているオペレーティングシステムの管理インタフェースを返します。
RuntimeMXBean Java 仮想マシンの実行時システムの管理インタフェースです。
ThreadMXBean Java 仮想マシンのスレッドシステムの管理インタフェースです。
 

クラスの概要
ManagementFactory ManagementFactory クラスは、Java プラットフォームの管理ビーンを取得するためのファクトリクラスです。
ManagementPermission SecurityManager によって実行されるコードが Java プラットフォームの管理インタフェースで定義されたメソッドを呼び出すときに、SecurityManager がチェックするアクセス権です。
MemoryNotificationInfo メモリ通知に関する情報です。
MemoryUsage MemoryUsage オブジェクトは、メモリ使用量のスナップショットを表します。
ThreadInfo スレッド情報です。
 

列挙型の概要
MemoryType メモリプールの型です。
 

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

Java 仮想マシンの管理および Java 仮想マシンが実行されているオペレーティングシステムの管理を監視する管理インタフェースを提供します。この管理インタフェースを使用すると、実行している Java 仮想マシンをローカルおよびリモートに監視および管理できます。

プラットフォーム MXBean

このパッケージは、以下のコンポーネントの管理インタフェースを定義します。

管理インタフェース

説明

ClassLoadingMXBean Java 仮想マシンのクラスローディングシステム
CompilationMXBean Java 仮想マシンのコンパイルシステム
MemoryMXBean Java 仮想マシンのメモリシステム
ThreadMXBean Java 仮想マシンのスレッドシステム
RuntimeMXBean Java 仮想マシンの実行時システム
OperatingSystemMXBean Java 仮想マシンを実行しているオペレーティングシステム
GarbageCollectorMXBean Java 仮想マシンのガベージコレクタ
MemoryManagerMXBean Java 仮想マシンのメモリマネージャ
MemoryPoolMXBean Java 仮想マシンのメモリプール

プラットフォーム MXBean は、そのプラットフォームの単一のコンポーネントのための管理インタフェースを定義する「管理ビーン」であり、ManagementFactory クラスで指定されます。

アプリケーションは Java 仮想マシンのインストゥルメンテーションを監視し、次の方法で特定の特性を管理できます。

以下では、さまざまな方法で MXBean にアクセスするいくつかのを示します。

ManagementFactory

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

「プラットフォーム MBeanServer」には、 getPlatformMBeanServer メソッドでアクセスできます。このメソッドへの最初の呼び出しで、プラットフォーム MBeanServer を作成し、 LoggingMXBean などのほかのパッケージで定義されたプラットフォーム MXBean を含むすべてのプラットフォーム MXBean を登録します。各プラットフォーム MXBean は、ObjectName を構築している ManagementFactory クラスで定義された一意の名前で登録されます。これは、同じ Java 仮想マシン内で実行されている異なる管理コンポーネントで共有できる 単一の MBeanServer です。

相互運用性

実行中の仮想マシンの管理アプリケーションとプラットフォーム MBeanServer は、プラットフォーム MXBean インタフェースで使用されるクラスを必要とすることなく相互運用できます。JMX コネクタサーバとコネクタクライアントの間で転送されるデータ型は JMX open types であり、これによってバージョン間の相互運用が可能です。 ManagementFactory クラスで指定されます。

MXBean にアクセスする方法

管理インタフェースにアクセスするには、以下の 3 とおりの方法があります。

  1. 同じ Java 仮想マシン内で MXBean のメソッドを直接呼び出す
     RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
     // Get the standard attribute "VmVendor" String vendor = mxbean.getVmVendor();
    
  2. 実行中の仮想マシンのプラットフォーム MBeanServer に接続している MBeanServerConnection を介する
  3.  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 ... }
    
  4. MXBean プロキシを使用する
  5.  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();

プラットフォームの拡張

Java 仮想マシンの実装では、標準の管理インタフェースを拡張してプラットフォーム固有のメトリックスと管理操作を追加するプラットフォーム依存のインタフェースを定義することで、管理インタフェースにプラットフォームの拡張を追加できます。ManagementFactory クラスの static ファクトリメソッドは、プラットフォーム拡張で MBean を返します。

ベンダーの名前などベンダー固有の接頭辞を使ってプラットフォーム固有の属性に名前を付けて、標準管理インタフェースの将来の拡張と、このプラットフォーム拡張の間で属性の名前の衝突が発生しないようにすることをお勧めします。標準管理インタフェースに対する将来の拡張が、管理インタフェースの新しい属性を定義し、属性名がベンダー固有の属性の名前と同じことがわかった場合、バージョニングと互換性の問題に対処するために、ベンダー固有の属性にアクセスしているアプリケーションを変更する必要があります。

以下の例では、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 がスローされます

関連項目:
JMX Specification

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。