JavaTM Platform
Standard Ed. 6

java.lang.management
クラス ManagementFactory

java.lang.Object
  上位を拡張 java.lang.management.ManagementFactory

public class ManagementFactory
extends Object

ManagementFactory クラスは、Java プラットフォームの管理対象 Bean を取得するためのファクトリクラスです。このクラスは、Java 仮想マシンのコンポーネントの管理インタフェースを表す 1 つ以上のプラットフォーム MXBean を返す static メソッドで構成されます。

アプリケーションは、次の方法でプラットフォーム MXBean にアクセスできます。

プラットフォーム MXBean

プラットフォーム MXBean は、JMX インストゥルメンテーション仕様に適合する「管理ビーン」であり、次に示す基本データ型セットだけを使用します。詳細は、「MXBeans 仕様」を参照してください。JMX 管理アプリケーションとプラットフォーム MBeanServer は、MXBean 固有のデータ型のためのクラスを必要とすることなく相互運用できます。JMX コネクタサーバーとコネクタクライアントの間で転送されるデータ型は、公開型であり、これによってバージョン間の相互運用が可能です。

プラットフォーム MXBean インタフェースでは、次のデータ型だけが使用されます。

プラットフォーム MXBean の属性またはオペレーションへのアクセスが MBeanServer を介して行われる場合、データ型は次のとおりマッピングされます。

プラットフォーム MXBean の MBeanInfo は、上記のとおりマッピングされたプリミティブ型または公開型として、属性およびオペレーションのデータ型を記述します。

たとえば、MemoryMXBean インタフェースは、次の getter メソッドと setter メソッドを持ちます。

 public MemoryUsage getHeapMemoryUsage();
 public boolean isVerbose();
 public void setVerbose(boolean value);
 
MemoryMXBeanMBeanInfo の属性は、次の名前と型を持ちます。
属性名
HeapMemoryUsage CompositeData representing MemoryUsage
Verbose boolean 型

MXBean 名

Java 仮想マシンの各プラットフォーム MXBean は、プラットフォーム MBeanServer での登録のために一意の ObjectName を持ちます。Java 仮想マシンは次の管理インタフェースの単一のインスタンスを持ちます。
管理インタフェース ObjectName
ClassLoadingMXBean java.lang:type=ClassLoading
MemoryMXBean java.lang:type=Memory
ThreadMXBean java.lang:type=Threading
RuntimeMXBean java.lang:type=Runtime
OperatingSystemMXBean java.lang:type=OperatingSystem

Java 仮想マシンは、以下の管理インタフェースのインスタンスを持たないか、単一のインスタンスを持ちます。

管理インタフェース ObjectName
CompilationMXBean java.lang:type=Compilation

Java 仮想マシンは、以下の管理インタフェースのインスタンスを 1 つ以上持つことができます。

管理インタフェース ObjectName
GarbageCollectorMXBean java.lang:type=GarbageCollector,name=collector's name
MemoryManagerMXBean java.lang:type=MemoryManager,name=manager's name
MemoryPoolMXBean java.lang:type=MemoryPool,name=pool's name

導入されたバージョン:
1.5
関連項目:
JMX 仕様。, 管理メトリックスにアクセスする方法, LoggingMXBean, MXBean

フィールドの概要
static String CLASS_LOADING_MXBEAN_NAME
          ClassLoadingMXBeanObjectName の文字列表現です。
static String COMPILATION_MXBEAN_NAME
          CompilationMXBeanObjectName の文字列表現です。
static String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
          ドメイン名と GarbageCollectorMXBeanObjectName の型キープロパティーです。
static String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
          ドメイン名と MemoryManagerMXBeanObjectName の型キープロパティーです。
static String MEMORY_MXBEAN_NAME
          MemoryMXBeanObjectName の文字列表現です。
static String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
          ドメイン名と MemoryPoolMXBeanObjectName の型キープロパティーです。
static String OPERATING_SYSTEM_MXBEAN_NAME
          OperatingSystemMXBeanObjectName の文字列表現です。
static String RUNTIME_MXBEAN_NAME
          RuntimeMXBeanObjectName の文字列表現です。
static String THREAD_MXBEAN_NAME
          ThreadMXBeanObjectName の文字列表現です。
 
メソッドの概要
static ClassLoadingMXBean getClassLoadingMXBean()
          Java 仮想マシンのクラスローディングシステムの管理ビーンを返します。
static CompilationMXBean getCompilationMXBean()
          Java 仮想マシンのコンパイルシステムの管理ビーンを返します。
static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
          Java 仮想マシンの GarbageCollectorMXBean オブジェクトのリストを返します。
static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
          Java 仮想マシンの MemoryManagerMXBean オブジェクトのリストを返します。
static MemoryMXBean getMemoryMXBean()
          Java 仮想マシンのメモリーシステムの管理ビーンを返します。
static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
          Java 仮想マシンの MemoryPoolMXBean オブジェクトのリストを返します。
static OperatingSystemMXBean getOperatingSystemMXBean()
          Java 仮想マシンを実行しているオペレーティングシステムの管理ビーンを返します。
static MBeanServer getPlatformMBeanServer()
          プラットフォーム MBeanServer を返します。
static RuntimeMXBean getRuntimeMXBean()
          Java 仮想マシンの実行システムの管理ビーンを返します。
static ThreadMXBean getThreadMXBean()
          Java 仮想マシンのスレッドシステムの管理ビーンを返します。
static
<T> T
newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
          指定された MBeanServerConnection を介してメソッド呼び出しを転送する、指定された MXBean 名の プラットフォーム MXBean インタフェースのプロキシを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CLASS_LOADING_MXBEAN_NAME

public static final String CLASS_LOADING_MXBEAN_NAME
ClassLoadingMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

COMPILATION_MXBEAN_NAME

public static final String COMPILATION_MXBEAN_NAME
CompilationMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

MEMORY_MXBEAN_NAME

public static final String MEMORY_MXBEAN_NAME
MemoryMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

OPERATING_SYSTEM_MXBEAN_NAME

public static final String OPERATING_SYSTEM_MXBEAN_NAME
OperatingSystemMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

RUNTIME_MXBEAN_NAME

public static final String RUNTIME_MXBEAN_NAME
RuntimeMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

THREAD_MXBEAN_NAME

public static final String THREAD_MXBEAN_NAME
ThreadMXBeanObjectName の文字列表現です。

関連項目:
定数フィールド値

GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE

public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
ドメイン名と GarbageCollectorMXBeanObjectName の型キープロパティーです。GarbageCollectorMXBean の一意の ObjectName は、この文字列に「,name=コレクタ名」を追加することで作成できます。

関連項目:
定数フィールド値

MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE

public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
ドメイン名と MemoryManagerMXBeanObjectName の型キープロパティーです。MemoryManagerMXBean の一意の ObjectName は、この文字列に「,name=マネージャー名」を追加することで作成できます。

関連項目:
定数フィールド値

MEMORY_POOL_MXBEAN_DOMAIN_TYPE

public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
ドメイン名と MemoryPoolMXBeanObjectName の型キープロパティーです。MemoryPoolMXBean の一意の ObjectName は、この文字列に「,name=プール名」を追加することで作成できます。

関連項目:
定数フィールド値
メソッドの詳細

getClassLoadingMXBean

public static ClassLoadingMXBean getClassLoadingMXBean()
Java 仮想マシンのクラスローディングシステムの管理ビーンを返します。

戻り値:
Java 仮想マシンの ClassLoadingMXBean オブジェクト

getMemoryMXBean

public static MemoryMXBean getMemoryMXBean()
Java 仮想マシンのメモリーシステムの管理ビーンを返します。

戻り値:
Java 仮想マシンの MemoryMXBean オブジェクト

getThreadMXBean

public static ThreadMXBean getThreadMXBean()
Java 仮想マシンのスレッドシステムの管理ビーンを返します。

戻り値:
Java 仮想マシンの ThreadMXBean オブジェクト

getRuntimeMXBean

public static RuntimeMXBean getRuntimeMXBean()
Java 仮想マシンの実行システムの管理ビーンを返します。J

戻り値:
Java 仮想マシンの RuntimeMXBean オブジェクト

getCompilationMXBean

public static CompilationMXBean getCompilationMXBean()
Java 仮想マシンのコンパイルシステムの管理ビーンを返します。Java 仮想マシンがコンパイルシステムを持たない場合、このメソッドは null を返します。

戻り値:
Java 仮想マシンの CompilationMXBean オブジェクト。 Java 仮想マシンがコンパイルシステムを持たない場合は null

getOperatingSystemMXBean

public static OperatingSystemMXBean getOperatingSystemMXBean()
Java 仮想マシンを実行しているオペレーティングシステムの管理ビーンを返します。

戻り値:
Java 仮想マシンの OperatingSystemMXBean オブジェクト

getMemoryPoolMXBeans

public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Java 仮想マシンの MemoryPoolMXBean オブジェクトのリストを返します。Java 仮想マシンは、1 つ以上のメモリープールを保有できます。実行中にメモリープールを追加または削除できます。

戻り値:
MemoryPoolMXBean オブジェクトのリスト

getMemoryManagerMXBeans

public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Java 仮想マシンの MemoryManagerMXBean オブジェクトのリストを返します。Java 仮想マシンは、1 つ以上のメモリーマネージャーを持つことができます。Java 仮想マシンは、実行中にメモリーマネージャーを追加または削除できます。

戻り値:
MemoryManagerMXBean オブジェクトのリスト

getGarbageCollectorMXBeans

public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Java 仮想マシンの GarbageCollectorMXBean オブジェクトのリストを返します。Java 仮想マシンは、1 つ以上の GarbageCollectorMXBean オブジェクトを持つことができます。また、実行中に GarbageCollectorMXBean を追加または削除できます。

戻り値:
GarbageCollectorMXBean オブジェクトのリスト

getPlatformMBeanServer

public static MBeanServer getPlatformMBeanServer()
プラットフォーム MBeanServer を返します。このメソッドの最初の呼び出しで、メソッドは、まず MBeanServerFactory.createMBeanServer メソッドを呼び出して、プラットフォーム MBeanServer を作成し、クラスの記述で定義された MXBean 名を使って、このプラットフォーム MBeanServer にプラットフォーム MXBean を登録します。以降の呼び出しでは、このメソッドは、初期に作成されたプラットフォーム MBeanServer を返します。

MXBean は動的に作成され、破棄されます。 たとえば、メモリー pools および managers は、プラットフォーム MBeanServer に自動的に登録および登録解除されます。

システムプロパティー javax.management.builder.initial が設定されていると、プラットフォーム MBeanServer の作成は、指定された MBeanServerBuilder により実行されます。

プラットフォーム MXBean に加えて、ほかのアプリケーションの管理ビーンの登録にも、このプラットフォーム MBeanServer を使うことをお勧めします。これにより、すべての MBean は同じ MBeanServer を通じて発行され、特にネットワークパブリッシングと検出が容易になります。プラットフォーム MXBean との名前の重複を避ける必要があります。

戻り値:
プラットフォーム MBeanServer。 プラットフォーム MXBean は、このメソッドが初めて呼び出されたときに プラットフォーム MBeanServer 内に登録される
例外:
SecurityException - セキュリティーマネージャーが存在する場合で、 呼び出し元が MBeanServerFactory.createMBeanServer() で 必要なアクセス権を持たない場合
関連項目:
MBeanServerFactory, MBeanServerFactory.createMBeanServer()

newPlatformMXBeanProxy

public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection,
                                           String mxbeanName,
                                           Class<T> mxbeanInterface)
                                throws IOException
指定された MBeanServerConnection を介してメソッド呼び出しを転送する、指定された MXBean 名の プラットフォーム MXBean インタフェースのプロキシを返します。

このメソッドは、次と同等です。

Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler)
ここで、handler は、MXBean インタフェースへのメソッド呼び出しのディスパッチ先の InvocationHandler です。この handler は MXBean データ型の入力パラメータをマッピングされた公開型に変換してから、MBeanServer に転送し、MBeanServer を介して MXBean メソッド呼び出しからの戻り値を公開型から MXBean インタフェースで宣言された対応する戻り値の型に変換します。

MXBean が通知を発行する (NotificationEmitter を実装する) 場合、mxbeanInterfaceNotificationEmitter の両方がこのプロキシによって実装されます。

注:

  1. MXBean プロキシの使用は、実行中の仮想マシンのプラットフォーム MXBean へのリモートアクセスに有用である。MXBean プロキシへのすべてのメソッド呼び出しは、MBeanServerConnection に転送される。 コネクタサーバーに通信に関する問題が発生すると、IOException がスローされます。プロキシを使用してプラットフォーム MXBean にリモートアクセスするアプリケーションでは、MBeanServerConnector インタフェースを使用してアクセスする場合のように、IOException をキャッチする用意が必要になる
  2. クライアントアプリケーションが、それとは異なるバージョンを実行中の仮想マシンの MXBean にリモートアクセスするように設計されている場合、MXBean プロキシがクライアントアプリケーションでロードされた列挙クラスで見つからない列挙定数の名前を受け取った場合にスローされる InvalidObjectException をキャッチする用意をする必要がある
  3. MBeanServerInvocationHandler またはその newProxyInstance メソッドを使用して、プラットフォーム MXBean のプロキシを作成することはできない。MBeanServerInvocationHandler によって作成されたプロキシオブジェクトは、クラス仕様で記述されたプラットフォーム MXBean のプロパティーを処理しない

パラメータ:
connection - 転送先の MBeanServerConnection
mxbeanName - 転送先の connection 内のプラットフォーム MXBean 名。mxbeanName の書式は ObjectName でなければならない
mxbeanInterface - プロキシによって実装される MXBean インタフェース
例外:
IllegalArgumentException - 次の条件が成立する場合:
  • mxbeanName が有効な ObjectName の書式でない
  • connection 内で指定された MXBean が、 プラットフォームで提供される MXBean でない
  • 指定された MXBean が MBeanServerConnection に 登録されていない
  • 指定された MXBean が指定された mxbeanInterface の インスタンスでない
IOException - MBeanServerConnection へのアクセス時に 通信に関する問題が発生した場合

JavaTM Platform
Standard Ed. 6

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

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