Spec-Zone.ru › OpenJDK 17

Класс ManagementFactory

java.lang.Object
java.lang.management.ManagementFactory
public class ManagementFactory extends Object
Класс ManagementFactory — это фабричный класс для получения управляемых объектов (managed beans) для платформы Java. Этот класс состоит из статических методов, каждый из которых возвращает один или несколько платформенных MXBean, представляющих интерфейс управления компонентом виртуальной машины Java.

Платформенные MXBean

Платформенный MXBean — это управляемый объект, который соответствует спецификации инструментации JMX и использует только набор основных типов данных. Приложение управления JMX и платформа сервер MBean могут взаимодействовать без необходимости классов для типов данных, специфичных для MXBean. Типы данных, передаваемые между сервером и клиентом JMX-коннектора, являются открытыми типами, что позволяет взаимодействовать между версиями. Подробнее см. спецификацию MXBean.

Каждый платформенный 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 присутствует по одному экземпляру следующих интерфейсов управления:

Список интерфейсов управления и их единственных экземпляров
Интерфейс управления Имя объекта
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
PlatformLoggingMXBean java.util.logging:type=Logging

В виртуальной машине 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

Краткое описание полей

Modifier and Type Field Description
static final String CLASS_LOADING_MXBEAN_NAME
Строковое представление ObjectName для ClassLoadingMXBean.
static final String COMPILATION_MXBEAN_NAME
Строковое представление ObjectName для CompilationMXBean.
static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для GarbageCollectorMXBean.
static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryManagerMXBean.
static final String MEMORY_MXBEAN_NAME
Строковое представление ObjectName для MemoryMXBean.
static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
Имя домена и свойство ключа типа в ObjectName для MemoryPoolMXBean.
static final String OPERATING_SYSTEM_MXBEAN_NAME
Строковое представление ObjectName для OperatingSystemMXBean.
static final String RUNTIME_MXBEAN_NAME
Строковое представление ObjectName для RuntimeMXBean.
static final String THREAD_MXBEAN_NAME
Строковое представление ObjectName для ThreadMXBean.

Краткое описание методов

Modifier and Type Method Description
static ClassLoadingMXBean getClassLoadingMXBean()
Возвращает управляемый компонент для системы загрузки классов виртуальной машины Java.
static CompilationMXBean getCompilationMXBean()
Возвращает управляемый компонент для системы компиляции виртуальной машины Java.
static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Возвращает список объектов GarbageCollectorMXBean в виртуальной машине Java.
static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Возвращает список объектов MemoryManagerMXBean в виртуальной машине Java.
static MemoryMXBean getMemoryMXBean()
Возвращает управляемый компонент для системы памяти виртуальной машины Java.
static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Возвращает список объектов MemoryPoolMXBean в виртуальной машине Java.
static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый компонент для операционной системы, на которой выполняется виртуальная машина Java.
static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()
Возвращает набор объектов Class, подинтерфейсы PlatformManagedObject, представляющих все интерфейсы управления для мониторинга и управления платформой Java.
static MBeanServer getPlatformMBeanServer()
Возвращает платформенный MBeanServer.
static <T extends PlatformManagedObject>
T
getPlatformMXBean(Class<T> mxbeanInterface)
Возвращает платформенную MXBean, реализующую заданную mxbeanInterface, которая должна иметь один экземпляр в виртуальной машине Java.
static <T extends PlatformManagedObject>
T
getPlatformMXBean(MBeanServerConnection connection, Class<T> mxbeanInterface)
Возвращает платформенный прокси MXBean для mxbeanInterface, который должен иметь один экземпляр в виртуальной машине Java, и прокси будет пересылать вызовы методов через заданный MBeanServerConnection.
static <T extends PlatformManagedObject>
List<T>
getPlatformMXBeans(Class<T> mxbeanInterface)
Возвращает список платформенных MXBean, реализующих заданную mxbeanInterface в виртуальной машине Java.
static <T extends PlatformManagedObject>
List<T>
getPlatformMXBeans(MBeanServerConnection connection, Class<T> mxbeanInterface)
Возвращает список платформенных прокси MXBean для перенаправления вызовов методов mxbeanInterface через указанный MBeanServerConnection.
static RuntimeMXBean getRuntimeMXBean()
Возвращает управляемый компонент для системы выполнения виртуальной машины Java.
static ThreadMXBean getThreadMXBean()
Возвращает управляемый компонент для системы потоков виртуальной машины Java.
static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
Возвращает прокси для платформенного интерфейса MXBean заданного имени MXBean, который перенаправляет его вызовы методов через заданный MBeanServerConnection.

Методы, унаследованные от класса 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 если у виртуальной машины нет системы компиляции.
Возвращает:
объект CompilationMXBean для виртуальной машины Java или null если у виртуальной машины нет системы компиляции.

getOperatingSystemMXBean

public static OperatingSystemMXBean getOperatingSystemMXBean()
Возвращает управляемый объект для операционной системы, на которой запущена виртуальная машина Java.
Возвращает:
объект OperatingSystemMXBean для виртуальной машины Java.

getMemoryPoolMXBeans

public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
Возвращает список объектов MemoryPoolMXBean в виртуальной машине Java. У виртуальной машины может быть один или несколько пулов памяти. Она может добавлять или удалять пулы памяти во время выполнения.
Возвращает:
список объектов MemoryPoolMXBean.

getMemoryManagerMXBeans

public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
Возвращает список объектов MemoryManagerMXBean в виртуальной машине Java. У виртуальной машины может быть один или несколько менеджеров памяти. Она может добавлять или удалять менеджеров памяти во время выполнения.
Возвращает:
список объектов MemoryManagerMXBean.

getGarbageCollectorMXBeans

public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
Возвращает список объектов GarbageCollectorMXBean в виртуальной машине Java. У виртуальной машины может быть один или несколько объектов GarbageCollectorMXBean. Она может добавлять или удалять GarbageCollectorMXBean во время выполнения.
Возвращает:
список объектов GarbageCollectorMXBean.

getPlatformMBeanServer

public static MBeanServer getPlatformMBeanServer()
Возвращает сервер управления MBean платформы MBeanServer. При первом вызове этого метода он сначала создаёт сервер управления MBean платформы MBeanServer, вызывая метод MBeanServerFactory.createMBeanServer, и регистрирует каждый MXBean платформы в этом сервере управления MBean платформы MBeanServer с его ObjectName. В последующих вызовах этот метод просто возвращает первоначально созданный сервер управления MBean платформы MBeanServer.

MXBeans, которые динамически создаются и уничтожаются, например, pools и managers памяти, будут автоматически регистрироваться и аннулироваться в сервере управления MBean платформы MBeanServer.

Если системная переменная javax.management.builder.initial установлена, создание сервера управления MBean платформы MBeanServer будет выполнено указанным MBeanServerBuilder.

Рекомендуется использовать этот сервер управления MBean платформы для регистрации других управляемых приложений MBean помимо MXBeans платформы. Это позволит публиковать все MBeans через один и тот же MBeanServer и, следовательно, упростит публикацию и обнаружение в сети. Конфликтов имён с MXBeans платформы следует избегать.

Возвращает:
сервер управления MBean платформы MBeanServer; MXBeans платформы регистрируются в сервере управления MBean платформы 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 будут реализованы этим прокси.

Примечания:

  1. Использование прокси MXBean — это удобный способ удалённого доступа к MXBean платформы запущенной виртуальной машины. Все вызовы методов прокси MXBean пересылаются на MBeanServerConnection, где может быть выброшено IOException при возникновении проблемы с соединением сервера-коннектора. В случае выброса, IOException будет обернут в UndeclaredThrowableException. Приложение, удалённо обращающееся к MXBeans платформы с помощью прокси, должно быть готово к перехвату UndeclaredThrowableException и обработать его причину так, как если бы эта причина была выброшена интерфейсом MBeanServerConnection.
  2. Когда клиентское приложение предназначено для удалённого доступа к MXBeans запущенной виртуальной машины, версия которой отличается от версии, на которой работает приложение, оно должно быть готово перехватить InvalidObjectException, который выбрасывается, когда прокси MXBean получает имя константы перечисления, отсутствующей в классе перечисления, загруженном в клиентское приложение. В случае выброса, InvalidObjectException будет обернут в UndeclaredThrowableException.
  3. 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)
Возвращает список MXBeans платформы, реализующих заданный mxbeanInterface в виртуальной машине Java. Возвращаемый список может содержать ноль, один или несколько экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации данного интерфейса управления. Порядок не определён, и нет гарантии, что возвращаемый список будет в том же порядке, что и предыдущие вызовы.
Параметры типа:
T - параметр типа mxbeanInterface
Параметры:
mxbeanInterface - интерфейс управления для MXBean платформы
Возвращает:
список MXBeans платформы, реализующих mxbeanInterface.
Исключение:
IllegalArgumentException - если mxbeanInterface не является интерфейсом управления платформы.
С тех пор:
1.7

Получение платформенного объекта MXBean

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>)

Получение платформенных объектов MXBean

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>)

Получение интерфейсов управления платформой

public static Set<Class<? extends PlatformManagedObject>> getPlatformManagementInterfaces()
Возвращает набор объектов Class, подинтерфейс PlatformManagedObject, представляющих все интерфейсы управления для мониторинга и управления платформой Java.
Возвращаемое значение:
набор объектов Class, подинтерфейс PlatformManagedObject, представляющих интерфейсы управления для мониторинга и управления платформой Java.
С:
1.7

© 1993, 2021, 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/17/docs/api/java.management/java/lang/management/ManagementFactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API