ManagementFactory
クラスは、Javaプラットフォームの管理対象Beanを取得するためのファクトリ・クラスです。 このクラスは、Java仮想マシンのコンポーネントの管理インタフェースを表す1つ以上のプラットフォームMXBeanを返すstaticメソッドで構成されます。
プラットフォームMXBean
プラットフォームMXBeanは、JMXインストゥルメンテーション仕様に適合する管理Beanであり、基本データ型のセットだけを使用します。 JMX管理アプリケーションとプラットフォームMBeanServerは、MXBean固有のデータ型のためのクラスを必要とすることなく相互運用できます。 JMXコネクタ・サーバーとコネクタ・クライアントの間で転送されるデータ型は、公開型であり、これによってバージョン間の相互運用が可能です。 詳細は、「MXBean仕様」を参照してください。
各プラットフォームMXBeanは、PlatformManagedObject
であり、プラットフォームMBeanServer
での登録のために、getObjectName
メソッドによって返される一意のObjectName
を持ちます。
アプリケーションは、次の方法でプラットフォームMXBeanにアクセスできます。
1. MXBeanインタフェースへの直接アクセス
getPlatformMXBean
またはgetPlatformMXBeans
メソッドを呼び出してMXBeanインスタンスを取得し、実行中の仮想マシンのMXBeanにローカル・アクセスします。getPlatformMXBean(MBeanServerConnection, Class)
またはgetPlatformMXBeans(MBeanServerConnection, Class)
メソッドを呼び出すことで、指定されたMBeanServer
にメソッド呼出しを転送するMXBeanプロキシ・インスタンスを構築します。newPlatformMXBeanProxy
メソッドを使用して、指定されたObjectName
のMXBeanプロキシ・インスタンスを構築することもできます。 プロキシは通常、実行中のほかの仮想マシンのMXBeanにリモート・アクセスするために構築されます。2. MBeanServerを介したMXBeanインタフェースへの間接アクセス
- プラットフォーム
MBeanServer
でMXBeanにローカル・アクセスするか、または特定のMBeanServerConnection
でMXBeanにリモート・アクセスします。 MXBeanの属性や操作で使用されるのはJMX公開型だけですが、これには、OpenType
に定義された基本データ型、CompositeData
、およびTabularData
が含まれます。 このマッピングの詳細は、MXBeanの仕様で指定されています。
getPlatformManagementInterfaces
メソッドは、Java仮想マシンでサポートされているすべての管理インタフェースを返します。これには、以下の表に示す標準管理インタフェースとともに、JDK実装によって拡張された管理インタフェースも含まれます。
Java仮想マシンは次の管理インタフェースの単一のインスタンスを持ちます。
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 |
BufferPoolMXBean |
java.nio:type=BufferPool,name= pool name |
- 導入されたバージョン:
- 1.5
- 関連項目:
- JMX仕様, 管理メトリックにアクセスする方法,
MXBean
-
フィールドのサマリー
修飾子と型フィールド説明static String
ClassLoadingMXBean
のObjectName
の文字列表現です。static String
CompilationMXBean
のObjectName
の文字列表現です。static String
GarbageCollectorMXBean
のObjectName
のドメイン名と型キー・プロパティです。static String
MemoryManagerMXBean
のObjectName
のドメイン名と型キー・プロパティです。static String
MemoryMXBean
のObjectName
の文字列表現です。static String
MemoryPoolMXBean
のObjectName
のドメイン名と型キー・プロパティです。static String
OperatingSystemMXBean
のObjectName
の文字列表現です。static String
RuntimeMXBean
のObjectName
の文字列表現です。static String
ThreadMXBean
のObjectName
の文字列表現です。 -
メソッドのサマリー
修飾子と型メソッド説明static ClassLoadingMXBean
Java仮想マシンのクラス・ローディング・システムの管理ビーンを返します。static CompilationMXBean
Java仮想マシンのコンパイル・システムの管理ビーンを返します。static List<GarbageCollectorMXBean>
Java仮想マシン内のGarbageCollectorMXBean
オブジェクトのリストを返します。static List<MemoryManagerMXBean>
Java仮想マシン内のMemoryManagerMXBean
オブジェクトのリストを返します。static MemoryMXBean
Java仮想マシンのメモリー・システムの管理ビーンを返します。static List<MemoryPoolMXBean>
Java仮想マシン内のMemoryPoolMXBean
オブジェクトのリストを返します。static OperatingSystemMXBean
Java仮想マシンを実行しているオペレーティング・システムの管理ビーンを返します。static Set<Class<? extends PlatformManagedObject>>
Javaプラットフォームを監視および管理するためのすべての管理インタフェースを表す、Class
オブジェクト(PlatformManagedObject
のサブインタフェース)のセットを返します。static MBeanServer
プラットフォームMBeanServer
を返します。static <T extends PlatformManagedObject>
TgetPlatformMXBean(Class<T> mxbeanInterface)
Java仮想マシン内で単一のインスタンスを持つように指定された特定のmxbeanInterface
を実装したプラットフォームMXBeanを返します。static <T extends PlatformManagedObject>
TgetPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface)
Java仮想マシン内で単一のインスタンスを持つように指定された、mxbeanInterface
のプラットフォームMXBeanプロキシを返します。このプロキシは、指定されたMBeanServerConnection
経由でメソッド呼出しを転送します。static <T extends PlatformManagedObject>
List<T>getPlatformMXBeans(Class<T> mxbeanInterface)
Java仮想マシン内の、指定されたmxbeanInterface
を実装したプラットフォームMXBeanのリストを返します。static <T extends PlatformManagedObject>
List<T>getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface)
指定されたMBeanServerConnection
経由でmxbeanInterface
のメソッド呼出しを転送するためのプラットフォームMXBeanプロキシのリストを返します。static RuntimeMXBean
Java仮想マシンの実行システムの管理ビーンを返します。static ThreadMXBean
Java仮想マシンのスレッド・システムの管理ビーンを返します。static <T> T
newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
指定されたMBeanServerConnection
を介してメソッド呼出しを転送する、指定されたMXBean名のプラットフォームMXBeanインタフェースのプロキシを返します。
-
フィールド詳細
-
CLASS_LOADING_MXBEAN_NAME
public static final String CLASS_LOADING_MXBEAN_NAMEClassLoadingMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
COMPILATION_MXBEAN_NAME
public static final String COMPILATION_MXBEAN_NAMECompilationMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
MEMORY_MXBEAN_NAME
public static final String MEMORY_MXBEAN_NAMEMemoryMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
OPERATING_SYSTEM_MXBEAN_NAME
public static final String OPERATING_SYSTEM_MXBEAN_NAMEOperatingSystemMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
RUNTIME_MXBEAN_NAME
public static final String RUNTIME_MXBEAN_NAMERuntimeMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
THREAD_MXBEAN_NAME
public static final String THREAD_MXBEAN_NAMEThreadMXBean
のObjectName
の文字列表現です。- 関連項目:
- 定数フィールド値
-
GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPEGarbageCollectorMXBean
のObjectName
のドメイン名と型キー・プロパティです。GarbageCollectorMXBean
の一意のObjectName
は、この文字列に「,name=
コレクタ名」を追加することで作成できます。- 関連項目:
- 定数フィールド値
-
MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPEMemoryManagerMXBean
のObjectName
のドメイン名と型キー・プロパティです。MemoryManagerMXBean
の一意のObjectName
は、この文字列に「,name=
マネージャ名」を追加することで作成できます。- 関連項目:
- 定数フィールド値
-
MEMORY_POOL_MXBEAN_DOMAIN_TYPE
public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPEMemoryPoolMXBean
のObjectName
のドメイン名と型キー・プロパティです。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仮想マシンの実行システムの管理ビーンを返します。- 戻り値:
- 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つ以上のメモリー・マネージャを持つことができます。 実行中にメモリー・マネージャを追加または削除できます。- 戻り値:
MemoryManagerMXBean
オブジェクトのリスト。
-
getGarbageCollectorMXBeans
public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()Java仮想マシン内のGarbageCollectorMXBean
オブジェクトのリストを返します。 Java仮想マシンは、1つ以上のGarbageCollectorMXBean
オブジェクトを持つことができます。 また、実行中にGarbageCollectorMXBean
を追加または削除できます。- 戻り値:
GarbageCollectorMXBean
オブジェクトのリスト。
-
getPlatformMBeanServer
public static MBeanServer getPlatformMBeanServer()プラットフォームMBeanServer
を返します。 このメソッドの最初の呼出しで、メソッドは、まずMBeanServerFactory.createMBeanServer
メソッドを呼び出してプラットフォームMBeanServer
を作成し、そのObjectName
を使ってこのプラットフォーム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
を実装する)場合、mxbeanInterface
とNotificationEmitter
の両方がこのプロキシによって実装されます。ノート:
- MXBeanプロキシの使用は、実行中の仮想マシンのプラットフォームMXBeanへのリモート・アクセスに有用である。 MXBeanプロキシへのすべてのメソッド呼出しは、
MBeanServerConnection
に転送される。コネクタ・サーバーに通信に関する問題が発生すると、IOException
がスローされる。 スローされた場合、IOException
はUndeclaredThrowableException
でラップされます。 プロキシを使用してプラットフォームのMXBeansにリモート・アクセスするアプリケーションは、UndeclaredThrowableException
をキャッチし、その原因がMBeanServerConnection
インタフェースによってスローされたかのようにcauseを処理する準備をしておく必要があります。 - クライアント・アプリケーションが、それとは異なるバージョンを実行中の仮想マシンのMXBeanにリモート・アクセスするように設計されている場合、MXBeanプロキシがクライアント・アプリケーションでロードされた列挙クラスで見つからない列挙定数の名前を受け取った場合にスローされる
InvalidObjectException
をキャッチする用意をする必要がある。 スローされた場合、InvalidObjectException
はUndeclaredThrowableException
でラップされます。 MBeanServerInvocationHandler
またはそのnewProxyInstance
メソッドを使用して、プラットフォームMXBeanのプロキシを作成することはできない。MBeanServerInvocationHandler
によって作成されたプロキシ・オブジェクトは、クラス仕様で記述されたプラットフォームMXBeanのプロパティを処理しない。
- 型パラメータ:
T
-mxbeanInterface
型パラメータ- パラメータ:
connection
- 転送先となるMBeanServerConnection
。mxbeanName
- 転送先のconnection
内のプラットフォームMXBean名。mxbeanName
はObjectName
の形式でなければならない。mxbeanInterface
- プロキシによって実装されるMXBeanインタフェース。- 戻り値:
- 指定された
MBeanServerConnection
を介してメソッド呼出しを転送する、指定されたMXBean名のプラットフォームMXBeanインタフェースのプロキシ。存在しない場合はnull
。 - 例外:
IllegalArgumentException
- 次の場合mxbeanName
が有効なObjectName
の形式でない、またはconnection
内で指定されたMXBeanが、プラットフォームで提供されるMXBeanでない、または- 指定されたMXBeanが
MBeanServerConnection
に登録されていない、または - 指定されたMXBeanが指定された
mxbeanInterface
のインスタンスでない
IOException
-MBeanServerConnection
へのアクセス時に通信に関する問題が発生した場合。
- MXBeanプロキシの使用は、実行中の仮想マシンのプラットフォームMXBeanへのリモート・アクセスに有用である。 MXBeanプロキシへのすべてのメソッド呼出しは、
-
getPlatformMXBean
public static <T extends PlatformManagedObject> T getPlatformMXBean(Class<T> mxbeanInterface)Java仮想マシン内で単一のインスタンスを持つように指定された特定のmxbeanInterface
を実装したプラットフォームMXBeanを返します。 Java仮想マシン内に管理インタフェースが実装されていない場合(たとえば、コンパイル・システムを持たないJava仮想マシンにはCompilationMXBean
が実装されていません)、このメソッドはnull
を返します。それ以外の場合は、次を呼び出すのと同等です。getPlatformMXBeans(mxbeanInterface)
.get(0);- 型パラメータ:
T
-mxbeanInterface
型パラメータ- パラメータ:
mxbeanInterface
- Java仮想マシン内で単一のインスタンスを持つプラットフォームMXBeanの管理インタフェース(実装されている場合)。- 戻り値:
mxbeanInterface
を実装するプラットフォームMXBean。存在しない場合はnull
。- 例外:
IllegalArgumentException
-mxbeanInterface
がプラットフォーム管理インタフェースでないか、シングルトンのプラットフォームMXBeanでない場合。- 導入されたバージョン:
- 1.7
-
getPlatformMXBeans
public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(Class<T> mxbeanInterface)Java仮想マシン内の、指定されたmxbeanInterface
を実装したプラットフォームMXBeanのリストを返します。 返されたリストには、ゼロ個以上のインスタンスが含まれる可能性があります。 返されるリスト内のインスタンス数は、指定された管理インタフェースの仕様で定義されています。 順序は未定義であり、返されるリストが以前の呼出し時と同じ順序になっているという保証はありません。- 型パラメータ:
T
-mxbeanInterface
型パラメータ- パラメータ:
mxbeanInterface
- プラットフォームMXBeanの管理インタフェース- 戻り値:
mxbeanInterface
を実装するプラットフォームMXBeanのリスト。- 例外:
IllegalArgumentException
-mxbeanInterface
がプラットフォーム管理インタフェースでない場合。- 導入されたバージョン:
- 1.7
-
getPlatformMXBean
public static <T extends PlatformManagedObject> T getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOExceptionJava仮想マシン内で単一のインスタンスを持つように指定された、mxbeanInterface
のプラットフォームMXBeanプロキシを返します。このプロキシは、指定されたMBeanServerConnection
経由でメソッド呼出しを転送します。 モニターされているJava仮想マシン内に管理インタフェースが実装されていない場合(たとえば、コンパイル・システムを持たないJava仮想マシンにはCompilationMXBean
が実装されていません)、このメソッドはnull
を返します。それ以外の場合は、次を呼び出すのと同等です。getPlatformMXBeans(connection, mxbeanInterface)
.get(0);- 型パラメータ:
T
-mxbeanInterface
型パラメータ- パラメータ:
connection
- 転送先となるMBeanServerConnection
。mxbeanInterface
- 監視されているJava仮想マシン内で単一のインスタンスを持つプラットフォームMXBeanの管理インタフェース(実装されている場合)。- 戻り値:
- 指定された
MBeanServerConnection
経由でmxbeanInterface
のメソッド呼出しを転送するためのプラットフォームMXBeanプロキシ。存在しない場合はnull
。 - 例外:
IllegalArgumentException
-mxbeanInterface
がプラットフォーム管理インタフェースでないか、シングルトンのプラットフォームMXBeanでない場合。IOException
-MBeanServerConnection
へのアクセス時に通信に関する問題が発生した場合。- 導入されたバージョン:
- 1.7
- 関連項目:
newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)
-
getPlatformMXBeans
public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOException指定されたMBeanServerConnection
経由でmxbeanInterface
のメソッド呼出しを転送するためのプラットフォームMXBeanプロキシのリストを返します。 返されたリストには、ゼロ個以上のインスタンスが含まれる可能性があります。 返されるリスト内のインスタンス数は、指定された管理インタフェースの仕様で定義されています。 順序は未定義であり、返されるリストが以前の呼出し時と同じ順序になっているという保証はありません。- 型パラメータ:
T
-mxbeanInterface
型パラメータ- パラメータ:
connection
- 転送先となるMBeanServerConnection
。mxbeanInterface
- プラットフォームMXBeanの管理インタフェース- 戻り値:
- 指定された
MBeanServerConnection
経由でmxbeanInterface
のメソッド呼出しを転送するためのプラットフォームMXBeanプロキシのリスト。 - 例外:
IllegalArgumentException
-mxbeanInterface
がプラットフォーム管理インタフェースでない場合。IOException
-MBeanServerConnection
へのアクセス時に通信に関する問題が発生した場合。- 導入されたバージョン:
- 1.7
- 関連項目:
newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)
-
getPlatformManagementInterfaces
public static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()Javaプラットフォームを監視および管理するためのすべての管理インタフェースを表す、Class
オブジェクト(PlatformManagedObject
のサブインタフェース)のセットを返します。- 戻り値:
- Javaプラットフォームを監視および管理するための管理インタフェースを表す、
Class
オブジェクト(PlatformManagedObject
のサブインタフェース)のセット。 - 導入されたバージョン:
- 1.7
-