public class ManagementFactory extends Object
ManagementFactoryクラスは、Javaプラットフォームの管理対象Beanを取得するためのファクトリ・クラスです。 このクラスは、Java仮想マシンのコンポーネントの管理インタフェースを表す1つ以上のプラットフォームMXBeanを返すstaticメソッドで構成されます。
プラットフォームMXBeanは、JMXインストゥルメンテーション仕様に適合する管理Beanであり、基本データ型のセットだけを使用します。 JMX管理アプリケーションとプラットフォームMBeanServerは、MXBean固有のデータ型のためのクラスを必要とすることなく相互運用できます。 JMXコネクタ・サーバーとコネクタ・クライアントの間で転送されるデータ型は、公開型であり、これによってバージョン間の相互運用が可能です。 詳細は、「MXBean仕様」を参照してください。
各プラットフォームMXBeanは、PlatformManagedObjectであり、プラットフォームMBeanServerでの登録のために、getObjectNameメソッドによって返される一意のObjectNameを持ちます。
アプリケーションは、次の方法でプラットフォーム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 CompilationMXBeanjava.lang:type=Compilation
Java仮想マシンは、次の管理インタフェースのインスタンスを1つ以上持つことができます。
管理インタフェース ObjectName GarbageCollectorMXBeanjava.lang:type=GarbageCollector,name=collector's nameMemoryManagerMXBeanjava.lang:type=MemoryManager,name=manager's nameMemoryPoolMXBeanjava.lang:type=MemoryPool,name=pool's nameBufferPoolMXBeanjava.nio:type=BufferPool,name=pool name
MXBean| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static String |
CLASS_LOADING_MXBEAN_NAME |
ClassLoadingMXBeanのObjectNameの文字列表現です。 |
static String |
COMPILATION_MXBEAN_NAME |
CompilationMXBeanのObjectNameの文字列表現です。 |
static String |
GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE |
GarbageCollectorMXBeanのObjectNameのドメイン名と型キー・プロパティです。 |
static String |
MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE |
MemoryManagerMXBeanのObjectNameのドメイン名と型キー・プロパティです。 |
static String |
MEMORY_MXBEAN_NAME |
MemoryMXBeanのObjectNameの文字列表現です。 |
static String |
MEMORY_POOL_MXBEAN_DOMAIN_TYPE |
MemoryPoolMXBeanのObjectNameのドメイン名と型キー・プロパティです。 |
static String |
OPERATING_SYSTEM_MXBEAN_NAME |
OperatingSystemMXBeanのObjectNameの文字列表現です。 |
static String |
RUNTIME_MXBEAN_NAME |
RuntimeMXBeanのObjectNameの文字列表現です。 |
static String |
THREAD_MXBEAN_NAME |
ThreadMXBeanのObjectNameの文字列表現です。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
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 Set<Class<? extends PlatformManagedObject>> |
getPlatformManagementInterfaces() |
Javaプラットフォームを監視および管理するためのすべての管理インタフェースを表す、
Classオブジェクト(PlatformManagedObjectのサブインタフェース)のセットを返します。 |
static MBeanServer |
getPlatformMBeanServer() |
プラットフォーム
MBeanServerを返します。 |
static <T extends PlatformManagedObject> |
getPlatformMXBean(Class<T> mxbeanInterface) |
Java仮想マシン内で単一のインスタンスを持つように指定された特定の
mxbeanInterfaceを実装したプラットフォームMXBeanを返します。 |
static <T extends PlatformManagedObject> |
getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface) |
Java仮想マシン内で単一のインスタンスを持つように指定された、
mxbeanInterfaceのプラットフォームMXBeanプロキシを返します。このプロキシは、指定されたMBeanServerConnection経由でメソッド呼出しを転送します。 |
static <T extends PlatformManagedObject> |
getPlatformMXBeans(Class<T> mxbeanInterface) |
Java仮想マシン内の、指定された
mxbeanInterfaceを実装したプラットフォームMXBeanのリストを返します。 |
static <T extends PlatformManagedObject> |
getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface) |
指定された
MBeanServerConnection経由でmxbeanInterfaceのメソッド呼出しを転送するためのプラットフォームMXBeanプロキシのリストを返します。 |
static RuntimeMXBean |
getRuntimeMXBean() |
Java仮想マシンの実行システムの管理ビーンを返します。
|
static ThreadMXBean |
getThreadMXBean() |
Java仮想マシンのスレッド・システムの管理ビーンを返します。
|
static <T> T |
newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface) |
指定されたMBeanServerConnectionを介してメソッド呼出しを転送する、指定されたMXBean名のプラットフォームMXBeanインタフェースのプロキシを返します。
|
public static final String CLASS_LOADING_MXBEAN_NAME
ClassLoadingMXBeanのObjectNameの文字列表現です。public static final String COMPILATION_MXBEAN_NAME
CompilationMXBeanのObjectNameの文字列表現です。public static final String MEMORY_MXBEAN_NAME
MemoryMXBeanのObjectNameの文字列表現です。public static final String OPERATING_SYSTEM_MXBEAN_NAME
OperatingSystemMXBeanのObjectNameの文字列表現です。public static final String RUNTIME_MXBEAN_NAME
RuntimeMXBeanのObjectNameの文字列表現です。public static final String THREAD_MXBEAN_NAME
ThreadMXBeanのObjectNameの文字列表現です。public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
GarbageCollectorMXBeanのObjectNameのドメイン名と型キー・プロパティです。 GarbageCollectorMXBeanの一意のObjectNameは、この文字列に「,name=コレクタ名」を追加することで作成できます。 public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
MemoryManagerMXBeanのObjectNameのドメイン名と型キー・プロパティです。 MemoryManagerMXBeanの一意のObjectNameは、この文字列に「,name=マネージャ名」を追加することで作成できます。 public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
MemoryPoolMXBeanのObjectNameのドメイン名と型キー・プロパティです。 MemoryPoolMXBeanの一意のObjectNameは、この文字列に「,name=プール名」を追加することで作成できます。 public static ClassLoadingMXBean getClassLoadingMXBean()
ClassLoadingMXBeanオブジェクト。public static MemoryMXBean getMemoryMXBean()
MemoryMXBeanオブジェクト。public static ThreadMXBean getThreadMXBean()
ThreadMXBeanオブジェクト。public static RuntimeMXBean getRuntimeMXBean()
RuntimeMXBeanオブジェクト。public static CompilationMXBean getCompilationMXBean()
CompilationMXBeanオブジェクト。Java仮想マシンがコンパイル・システムを持たない場合はnull。public static OperatingSystemMXBean getOperatingSystemMXBean()
OperatingSystemMXBeanオブジェクト。public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
MemoryPoolMXBeanオブジェクトのリストを返します。 Java仮想マシンは、1つ以上のメモリー・プールを保有できます。 実行中にメモリー・プールを追加または削除できます。 public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
MemoryManagerMXBeanオブジェクトのリストを返します。 Java仮想マシンは、1つ以上のメモリー・マネージャを持つことができます。 実行中にメモリー・マネージャを追加または削除できます。 public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
GarbageCollectorMXBeanオブジェクトのリストを返します。 Java仮想マシンは、1つ以上のGarbageCollectorMXBeanオブジェクトを持つことができます。 また、実行中にGarbageCollectorMXBeanを追加または削除できます。 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()public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface) throws IOException
このメソッドは、次と同等です。
Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler)
ここで、handlerはMXBeanインタフェースへのメソッド呼出しのディスパッチ先のInvocationHandlerです。 このhandlerはMXBeanデータ型の入力パラメータをマッピングされた公開型に変換してから、MBeanServerに転送し、MBeanServerを介してMXBeanメソッド呼び出しからの戻り値を公開型からMXBeanインタフェースで宣言された対応する戻り値の型に変換します。
MXBeanが通知を発行する(NotificationEmitterを実装する)場合、mxbeanInterfaceとNotificationEmitterの両方がこのプロキシによって実装されます。
ノート:
IOExceptionがスローされる。 プロキシを使用してプラットフォームMXBeanにリモート・アクセスするアプリケーションでは、MBeanServerConnectorインタフェースを使用してアクセスする場合のように、IOExceptionをキャッチする用意が必要になる。 InvalidObjectExceptionをキャッチする用意をする必要がある。 MBeanServerInvocationHandlerまたはそのnewProxyInstanceメソッドを使用して、プラットフォームMXBeanのプロキシを作成することはできない。 MBeanServerInvocationHandlerによって作成されたプロキシ・オブジェクトは、クラス仕様で記述されたプラットフォームMXBeanのプロパティを処理しない。
T - mxbeanInterface 型パラメータconnection - 転送先となるMBeanServerConnection。mxbeanName - 転送先のconnection内のプラットフォームMXBean名。mxbeanNameはObjectNameの形式でなければならない。mxbeanInterface - プロキシによって実装されるMXBeanインタフェース。null。IllegalArgumentException - 次の場合
ObjectNameの形式でない、またはIOException - MBeanServerConnectionへのアクセス時に通信に関する問題が発生した場合。public static <T extends PlatformManagedObject> T getPlatformMXBean(Class<T> mxbeanInterface)
mxbeanInterfaceを実装したプラットフォームMXBeanを返します。 Java仮想マシン内に管理インタフェースが実装されていない場合(たとえば、コンパイル・システムを持たないJava仮想マシンにはCompilationMXBeanが実装されていません)、このメソッドはnullを返します。それ以外の場合は、次を呼び出すのと同等です。
getPlatformMXBeans(mxbeanInterface).get(0);
T - mxbeanInterface 型パラメータmxbeanInterface - Java仮想マシン内で単一のインスタンスを持つプラットフォームMXBeanの管理インタフェース(実装されている場合)。mxbeanInterfaceを実装するプラットフォームMXBean。存在しない場合はnull。IllegalArgumentException - mxbeanInterfaceがプラットフォーム管理インタフェースでないか、シングルトンのプラットフォームMXBeanでない場合。public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(Class<T> mxbeanInterface)
mxbeanInterfaceを実装したプラットフォームMXBeanのリストを返します。 返されたリストには、ゼロ個以上のインスタンスが含まれる可能性があります。 返されるリスト内のインスタンス数は、指定された管理インタフェースの仕様で定義されています。 順序は未定義であり、返されるリストが以前の呼出し時と同じ順序になっているという保証はありません。 T - mxbeanInterface 型パラメータmxbeanInterface - プラットフォームMXBeanの管理インタフェースmxbeanInterfaceを実装するプラットフォームMXBeanのリスト。IllegalArgumentException - mxbeanInterfaceがプラットフォーム管理インタフェースでない場合。public static <T extends PlatformManagedObject> T getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface) throws IOException
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へのアクセス時に通信に関する問題が発生した場合。newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)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へのアクセス時に通信に関する問題が発生した場合。newPlatformMXBeanProxy(javax.management.MBeanServerConnection, java.lang.String, java.lang.Class<T>)public static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()
Classオブジェクト(PlatformManagedObjectのサブインタフェース)のセットを返します。Classオブジェクト(PlatformManagedObjectのサブインタフェース)のセット。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。