Класс ManagementFactory
- java.lang.Object
-
- java.lang.management.ManagementFactory
public class ManagementFactory extends Object
Класс ManagementFactory — это фабричный класс для получения управляемых объектов для платформы Java. Этот класс состоит из статических методов, каждый из которых возвращает один или несколько платформенных MXBean, представляющих интерфейс управления компонентом виртуальной машины Java.
Платформенные MXBeans
Платформенный MXBean — это управляемый объект, соответствующий Спецификации инструментации JMX и использующий только набор основных типов данных. Приложение JMX управления и платформенный MBeanServer могут взаимодействовать без необходимости в классах для типов данных, специфичных для MXBean. Типы данных, передаваемые между сервером и клиентом JMX-коннектора, являются открытыми типами, что позволяет взаимодействовать между версиями. Подробнее см. спецификацию MXBeans.
Каждый платформенный MXBean является PlatformManagedObject и имеет уникальное ObjectName для регистрации в платформенном MBeanServer , как возвращается методом getObjectName.
Приложение может получить доступ к платформенному MXBean следующими способами:
1. Прямой доступ к интерфейсу MXBean
- Получите экземпляр MXBean, вызвав метод
getPlatformMXBeanилиgetPlatformMXBeans, и обратитесь к MXBean локально в работающей виртуальной машине.- Создайте прокси-экземпляр MXBean, который перенаправляет вызовы методов на заданный
MBeanServer, вызвав методgetPlatformMXBean(MBeanServerConnection, Class)илиgetPlatformMXBeans(MBeanServerConnection, Class). МетодnewPlatformMXBeanProxyтакже может использоваться для создания прокси-экземпляра MXBean заданногоObjectName. Прокси обычно создается для удаленного доступа к MXBean другой работающей виртуальной машины.2. Непрямой доступ к интерфейсу MXBean через MBeanServer
- Обратитесь через платформенный
MBeanServerдля доступа к MXBeans локально или к определенномуMBeanServerConnectionдля доступа к MXBeans удаленно. Атрибуты и операции MXBean используют только открытые типы JMX, которые включают основные типы данных,CompositeDataиTabularData, определенные вOpenType. Сопоставление указано в спецификации MXBean для деталей.
Метод getPlatformManagementInterfaces возвращает все поддерживаемые в виртуальной машине Java интерфейсы управления, включая стандартные интерфейсы управления, перечисленные в таблицах ниже, а также интерфейсы управления, расширенные реализацией JDK.
Виртуальная машина Java имеет один экземпляр следующих интерфейсов управления:
Виртуальная машина Java имеет ноль или один экземпляр следующих интерфейсов управления.
| Интерфейс управления | Имя объекта |
|---|---|
CompilationMXBean | java.lang:type=Compilation
|
Виртуальная машина Java может иметь один или несколько экземпляров следующих интерфейсов управления.
| Интерфейс управления | Имя объекта |
|---|---|
GarbageCollectorMXBean | java.lang:type=GarbageCollector,name=имя коллектора
|
MemoryManagerMXBean | java.lang:type=MemoryManager,name=имя менеджера
|
MemoryPoolMXBean | java.lang:type=MemoryPool,name=имя пула
|
BufferPoolMXBean | java.nio:type=BufferPool,name=имя пула
|
- С:
- 1.5
- См. также:
-
Спецификация JMX, Способы доступа к метрикам управления,
MXBean
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | CLASS_LOADING_MXBEAN_NAME | Строковое представление |
static String | COMPILATION_MXBEAN_NAME | Строковое представление |
static String | GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE | Имя области и ключевое свойство типа в |
static String | MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE | Имя области и ключевое свойство типа в |
static String | MEMORY_MXBEAN_NAME | Строковое представление |
static String | MEMORY_POOL_MXBEAN_DOMAIN_TYPE | Имя области и ключевое свойство типа в |
static String | OPERATING_SYSTEM_MXBEAN_NAME | Строковое представление |
static String | RUNTIME_MXBEAN_NAME | Строковое представление |
static String | THREAD_MXBEAN_NAME | Строковое представление |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static ClassLoadingMXBean | getClassLoadingMXBean() | Возвращает управляемый компонент для системы загрузки классов виртуальной машины Java. |
static CompilationMXBean | getCompilationMXBean() | Возвращает управляемый компонент для системы компиляции виртуальной машины Java. |
static List<GarbageCollectorMXBean> | getGarbageCollectorMXBeans() | Возвращает список объектов |
static List<MemoryManagerMXBean> | getMemoryManagerMXBeans() | Возвращает список объектов |
static MemoryMXBean | getMemoryMXBean() | Возвращает управляемый компонент для системы памяти виртуальной машины Java. |
static List<MemoryPoolMXBean> | getMemoryPoolMXBeans() | Возвращает список объектов |
static OperatingSystemMXBean | getOperatingSystemMXBean() | Возвращает управляемый компонент для операционной системы, на которой запущена виртуальная машина Java. |
static Set<Class<? extends PlatformManagedObject>> | getPlatformManagementInterfaces() | Возвращает набор объектов |
static MBeanServer | getPlatformMBeanServer() | Возвращает платформенную |
static <T extends PlatformManagedObject> | getPlatformMXBean(Class<T> mxbeanInterface) | Возвращает платформенную MXBean, реализующую заданный |
static <T extends PlatformManagedObject> | getPlatformMXBean(MBeanServerConnection connection,
Class<T> mxbeanInterface) | Возвращает платформенную прокси-MXBean для |
static <T extends PlatformManagedObject> | getPlatformMXBeans(Class<T> mxbeanInterface) | Возвращает список платформенных MXBean, реализующих заданный |
static <T extends PlatformManagedObject> | getPlatformMXBeans(MBeanServerConnection connection,
Class<T> mxbeanInterface) | Возвращает список прокси-MXBean платформы для перенаправления вызовов методов |
static RuntimeMXBean | getRuntimeMXBean() | Возвращает управляемый компонент для системы выполнения виртуальной машины Java. |
static ThreadMXBean | getThreadMXBean() | Возвращает управляемый компонент для системы потоков виртуальной машины Java. |
static <T> T | newPlatformMXBeanProxy(MBeanServerConnection connection,
String mxbeanName,
Class<T> mxbeanInterface) | Возвращает прокси для интерфейса платформенной 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
Строковое представление ObjectName для ClassLoadingMXBean.
- См. также:
- Значения константных полей
COMPILATION_MXBEAN_NAME
public static final String COMPILATION_MXBEAN_NAME
Строковое представление ObjectName для CompilationMXBean.
- См. также:
- Значения константных полей
MEMORY_MXBEAN_NAME
public static final String MEMORY_MXBEAN_NAME
Строковое представление ObjectName для MemoryMXBean.
- См. также:
- Значения константных полей
OPERATING_SYSTEM_MXBEAN_NAME
public static final String OPERATING_SYSTEM_MXBEAN_NAME
Строковое представление ObjectName для OperatingSystemMXBean.
- См. также:
- Значения константных полей
RUNTIME_MXBEAN_NAME
public static final String RUNTIME_MXBEAN_NAME
Строковое представление ObjectName для RuntimeMXBean.
- См. также:
- Значения константных полей
THREAD_MXBEAN_NAME
public static final String THREAD_MXBEAN_NAME
Строковое представление ObjectName для ThreadMXBean.
- См. также:
- Значения константных полей
GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для GarbageCollectorMXBean. Уникальное ObjectName для GarbageCollectorMXBean можно получить, добавив к этой строке ",name=название коллектора".
- См. также:
- Значения константных полей
MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryManagerMXBean. Уникальное ObjectName для MemoryManagerMXBean можно получить, добавив к этой строке ",name=название менеджера".
- См. также:
- Значения константных полей
MEMORY_POOL_MXBEAN_DOMAIN_TYPE
public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryPoolMXBean. Уникальное ObjectName для MemoryPoolMXBean можно получить, добавив к этой строке ,name=название пула.
- См. также:
- Значения константных полей
Методы
getClassLoadingMXBean
public static ClassLoadingMXBean getClassLoadingMXBean()
Возвращает управляемый компонент для системы загрузки классов виртуальной машины Java.
- Возвращает:
- объект
ClassLoadingMXBeanдля виртуальной машины Java.
getMemoryMXBean
public static MemoryMXBean getMemoryMXBean()
Возвращает управляемый компонент для системы памяти виртуальной машины Java.
- Возвращает:
- объект
MemoryMXBeanдля виртуальной машины Java.
getThreadMXBean
public static ThreadMXBean getThreadMXBean()
Возвращает управляемый компонент для системы потоков виртуальной машины Java.
- Возвращает:
- объект
ThreadMXBeanдля виртуальной машины Java.
getRuntimeMXBean
public static RuntimeMXBean getRuntimeMXBean()
Возвращает управляемый компонент для системы выполнения виртуальной машины Java.
- Возвращает:
- объект
RuntimeMXBeanдля виртуальной машины Java.
getCompilationMXBean
public static CompilationMXBean getCompilationMXBean()
Возвращает управляемый компонент для системы компиляции виртуальной машины Java. Этот метод возвращает null если виртуальная машина Java не имеет системы компиляции.
- Возвращает:
- объект
CompilationMXBeanдля виртуальной машины Java илиnullесли виртуальная машина Java не имеет системы компиляции.
getOperatingSystemMXBean
public static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый компонент для операционной системы, на которой работает виртуальная машина Java.
- Возвращает:
- объект
OperatingSystemMXBeanдля виртуальной машины Java.
getMemoryPoolMXBeans
public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Возвращает список объектов MemoryPoolMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько пулов памяти. Она может добавлять или удалять пулы памяти во время выполнения.
- Возвращает:
- список объектов
MemoryPoolMXBean.
getMemoryManagerMXBeans
public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Возвращает список объектов MemoryManagerMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько менеджеров памяти. Она может добавлять или удалять менеджеров памяти во время выполнения.
- Возвращает:
- список объектов
MemoryManagerMXBean.
getGarbageCollectorMXBeans
public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Возвращает список объектов GarbageCollectorMXBean в виртуальной машине Java. Виртуальная машина Java может иметь один или несколько объектов GarbageCollectorMXBean. Она может добавлять или удалять объекты GarbageCollectorMXBean во время выполнения.
- Возвращает:
- список объектов
GarbageCollectorMXBean.
getPlatformMBeanServer
public static MBeanServer getPlatformMBeanServer()
Возвращает платформенный MBeanServer. При первом вызове этого метода, он сначала создает платформенный MBeanServer, вызывая метод MBeanServerFactory.createMBeanServer, и регистрирует каждый платформенный MXBean в этом платформенном MBeanServer с его ObjectName. Этот метод в последующих вызовах просто вернет первоначально созданный платформенный MBeanServer.
MXBeans, которые создаются и уничтожаются динамически, например, пулы памяти pools и managers, будут автоматически регистрироваться и дерегистрироваться в платформенном MBeanServer.
Если свойство системы javax.management.builder.initial установлено, создание платформенного MBeanServer будет выполнено указанным MBeanServerBuilder.
Рекомендуется также использовать этот платформенный MBeanServer для регистрации других управляемых приложений, помимо платформных MXBeans. Это позволит опубликовать все MBeans через один и тот же MBeanServer и, следовательно, упростит публикацию и обнаружение в сети. Столкновения имён с платформными MXBeans следует избегать.
- Возвращает:
- платформенный
MBeanServer; платформенные MXBeans регистрируются в платформенномMBeanServerпри первом вызове этого метода. - Исключение:
-
SecurityException- если есть менеджер безопасности, и у вызывающего объекта нет разрешения, необходимого методомMBeanServerFactory.createMBeanServer(). - См. также:
-
MBeanServerFactory,MBeanServerFactory.createMBeanServer()
newPlatformMXBeanProxy
public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection,
String mxbeanName,
Class<T> mxbeanInterface)
throws IOException Возвращает прокси для интерфейса платформенного MXBean заданного имени MXBean, который передает свои вызовы методов через заданный MBeanServerConnection.
Этот метод эквивалентен:
Proxy.newProxyInstance(mxbeanInterface.getClassLoader(), new Class[] { mxbeanInterface }, handler) где handler является InvocationHandler, которому передаются вызовы методов интерфейса MXBean. Этот handler преобразует входной параметр из типа данных MXBean в его сопоставленный открытый тип перед передачей в MBeanServer, и преобразует возвращаемое значение вызова метода MXBean через MBeanServer из открытого типа в соответствующий тип возвращаемого значения, объявленный в интерфейсе MXBean. Если MXBean является эмиттером уведомлений (т.е., он реализует NotificationEmitter), как mxbeanInterface, так и NotificationEmitter будут реализованы этим прокси.
Примечания:
- Использование прокси MXBean — удобный способ удаленного доступа к платформенному MXBean работающей виртуальной машины. Все вызовы методов прокси MXBean передаются в
MBeanServerConnection, где может быть выброшеноIOExceptionпри проблеме с соединением с сервером-коннектором. Если выброшено,IOExceptionбудет обернуто вUndeclaredThrowableException. Приложение, удалённо обращаясь к платформным MXBeans с помощью прокси, должно быть готово перехватыватьUndeclaredThrowableExceptionи обрабатывать его причину так, как будто эта причина была выброшена интерфейсомMBeanServerConnection. - Если приложение-клиент разработано для удаленного доступа к MXBeans работающей виртуальной машины, версия которой отличается от версии, на которой работает приложение, оно должно быть готово перехватить
InvalidObjectException, который выбрасывается, когда прокси MXBean получает имя константы перечисления, отсутствующей в классе перечисления, загруженном в приложении-клиенте. Если выброшено,InvalidObjectExceptionбудет обернуто вUndeclaredThrowableException. -
MBeanServerInvocationHandlerили его методnewProxyInstanceне могут использоваться для создания прокси для платформенного MXBean. Объект прокси, созданныйMBeanServerInvocationHandler, не обрабатывает свойства платформных MXBeans, описанные в спецификации класса.
- Параметры типа:
-
T- параметр типаmxbeanInterface - Параметры:
-
connection-MBeanServerConnectionдля перенаправления. -
mxbeanName- имя платформенного MXBean вconnectionдля перенаправления.mxbeanNameдолжно быть в форматеObjectName. -
mxbeanInterface- интерфейс MXBean, который должен реализовываться прокси. - Возвращает:
- прокси для интерфейса платформенного MXBean с заданным именем MXBean, который передает свои вызовы методов через заданный
MBeanServerConnection, илиnullесли не существует. - Исключение:
-
IllegalArgumentException- если-
mxbeanNameне имеет допустимого форматаObjectName, или - именуемый MXBean в
connectionне является MXBean, предоставленным платформой, или - именуемый MXBean не зарегистрирован в
MBeanServerConnection, или - именуемый MXBean не является экземпляром данного
mxbeanInterface
-
-
IOException- если произошла проблема с коммуникацией при доступе кMBeanServerConnection.
getPlatformMXBean
public static <T extends PlatformManagedObject> T getPlatformMXBean(Class<T> mxbeanInterface)
Возвращает платформенный MXBean, реализующий заданный mxbeanInterface, который должен иметь один единственный экземпляр в виртуальной машине Java. Этот метод может вернуть null если интерфейс управления не реализован в виртуальной машине Java (например, виртуальная машина Java без системы компиляции не реализует CompilationMXBean); в противном случае, этот метод эквивалентен вызову:
getPlatformMXBeans(mxbeanInterface).get(0);
- Параметры типа:
-
T- параметр типаmxbeanInterface - Параметры:
-
mxbeanInterface- интерфейс управления для платформенного MXBean с одним единственным экземпляром в виртуальной машине Java, если реализован. - Возвращает:
- платформенный MXBean, реализующий
mxbeanInterface, илиnullесли не существует. - Исключение:
-
IllegalArgumentException- еслиmxbeanInterfaceне является платформенным интерфейсом управления или не является одиночным платформным MXBean. - С:
- 1.7
getPlatformMXBeans
public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(Class<T> mxbeanInterface)
Возвращает список платформенных MXBean, реализующих заданный mxbeanInterface в виртуальной машине Java. Возвращаемый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации данного интерфейса управления. Порядок не определен, и нет гарантии, что возвращаемый список будет в том же порядке, что и при предыдущих вызовах.
- Параметры типа:
-
T- параметр типаmxbeanInterface - Параметры:
-
mxbeanInterface- интерфейс управления для платформенного MXBean - Возвращает:
- список платформенных MXBean, реализующих
mxbeanInterface. - Исключения:
-
IllegalArgumentException- еслиmxbeanInterfaceне является платформенным интерфейсом управления. - С тех пор:
- 1.7
getPlatformMXBean
public static <T extends PlatformManagedObject> T getPlatformMXBean(MBeanServerConnection connection,
Class<T> mxbeanInterface)
throws IOException Возвращает прокси-объект платформенного MXBean для mxbeanInterface, который должен иметь один единственный экземпляр в виртуальной машине Java, и прокси будет пересылать вызовы методов через указанный MBeanServerConnection. Этот метод может вернуть null, если интерфейс управления не реализован в контролируемой виртуальной машине Java (например, виртуальная машина Java без системы компиляции не реализует CompilationMXBean); в противном случае этот метод эквивалентен вызову:
getPlatformMXBeans(connection, mxbeanInterface).get(0);
- Параметры типа:
-
T- параметр типаmxbeanInterface - Параметры:
-
connection-MBeanServerConnectionдля пересылки. -
mxbeanInterface- интерфейс управления для платформенного MXBean с одним единственным экземпляром в контролируемой виртуальной машине Java, если реализован. - Возвращает:
- прокси-объект платформенного MXBean для пересылки вызовов методов
mxbeanInterfaceчерез заданныйMBeanServerConnection, или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 Возвращает список прокси-объектов платформенных MXBean для пересылки вызовов методов mxbeanInterface через заданный MBeanServerConnection. Возвращаемый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации данного интерфейса управления. Порядок не определен, и нет гарантии, что возвращаемый список будет в том же порядке, что и при предыдущих вызовах.
- Параметры типа:
-
T- параметр типаmxbeanInterface - Параметры:
-
connection-MBeanServerConnectionдля пересылки. -
mxbeanInterface- интерфейс управления для платформенного MXBean - Возвращает:
- список прокси-объектов платформенных MXBean для пересылки вызовов методов
mxbeanInterfaceчерез заданныйMBeanServerConnection. - Исключения:
-
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()
Возвращает набор Class объектов, подинтерфейсов PlatformManagedObject, представляющих все интерфейсы управления для мониторинга и управления платформой Java.
- Возвращает:
- набор
Classобъектов, подинтерфейсовPlatformManagedObject, представляющих интерфейсы управления для мониторинга и управления платформой Java. - С тех пор:
- 1.7
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/ManagementFactory.html