Spec-Zone.ru › OpenJDK 8

Класс ManagementFactory

  • java.lang.Object
    • java.lang.management.ManagementFactory

public class ManagementFactory
extends Object

Класс ManagementFactory представляет собой фабричный класс для получения управляемых компонентов для платформы Java. Этот класс состоит из статических методов, каждый из которых возвращает один или несколько платформенных MXBeans, представляющих интерфейс управления компонентом виртуальной машины 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 существует один экземпляр следующих интерфейсов управления:

Интерфейс управления Имя объекта
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

Поля

Модификатор и тип Поле и описание
static String CLASS_LOADING_MXBEAN_NAME

Строковое представление ObjectName для ClassLoadingMXBean.

static String COMPILATION_MXBEAN_NAME

Строковое представление ObjectName для CompilationMXBean.

static String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE

Имя домена и ключевое свойство типа в ObjectName для GarbageCollectorMXBean.

static String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE

Имя домена и ключевое свойство типа в ObjectName для MemoryManagerMXBean.

static String MEMORY_MXBEAN_NAME

Строковое представление ObjectName для MemoryMXBean.

static String MEMORY_POOL_MXBEAN_DOMAIN_TYPE

Имя домена и ключевое свойство типа в ObjectName для MemoryPoolMXBean.

static String OPERATING_SYSTEM_MXBEAN_NAME

Строковое представление ObjectName для OperatingSystemMXBean.

static String RUNTIME_MXBEAN_NAME

Строковое представление ObjectName для RuntimeMXBean.

static String THREAD_MXBEAN_NAME

Строковое представление ObjectName для ThreadMXBean.

Методы

Модификатор и тип Метод и описание
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 если виртуальная машина 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. Виртуальная машина может иметь один или несколько объектов 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 будут реализованы этим прокси.

Примечания:

  1. Использование прокси MXBean обеспечивает удобный удаленный доступ к платформенным MXBean работающей виртуальной машины. Все вызовы методов прокси MXBean передаются в MBeanServerConnection , где IOException может быть выброшен при возникновении проблемы с соединением с сервером-коннектором. Приложение, удаленно использующее прокси для доступа к платформенным MXBean, должно быть готово перехватывать IOException так же, как при доступе через интерфейс MBeanServerConnector.
  2. Когда клиентское приложение разработано для удаленного доступа к MXBean работающей виртуальной машины, версия которой отличается от версии, на которой работает приложение, оно должно быть готово перехватывать InvalidObjectException, который выбрасывается, когда прокси MXBean получает имя константы перечисления, отсутствующей в классе перечисления, загруженном в клиентском приложении.
  3. MBeanServerInvocationHandler или его newProxyInstance метод не могут быть использованы для создания прокси для платформенного MXBean. Объект прокси, созданный MBeanServerInvocationHandler не обрабатывает свойства платформенных MXBean, описанные в спецификации класса.
Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
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);

Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
mxbeanInterface - интерфейс управления платформенным MXBean с одним единственным экземпляром в виртуальной машине Java, если реализован.
Возвращает:
платформенный MXBean, реализующий mxbeanInterface, или null если не существует.
Исключение:
IllegalArgumentException - если mxbeanInterface не является платформенным интерфейсом управления или не является одиночным платформенным MXBean.
Since:
1.7

getPlatformMXBeans

public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans(Class<T> mxbeanInterface)

Возвращает список платформенных MXBean, реализующих заданный mxbeanInterface в виртуальной машине Java. Возвращаемый список может содержать ноль, один или более экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации заданного интерфейса управления. Порядок не определён, и нет гарантии, что возвращаемый список имеет тот же порядок, что и при предыдущих вызовах.

Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
mxbeanInterface - интерфейс управления платформенным MXBean.
Возвращает:
список платформенных MXBean, реализующих mxbeanInterface.
Исключение:
IllegalArgumentException - если mxbeanInterface не является платформенным интерфейсом управления.
Since:
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);

Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
connection - MBeanServerConnection для пересылки.
mxbeanInterface - интерфейс управления платформенным MXBean с одним единственным экземпляром в наблюдаемой виртуальной машине Java, если реализован.
Возвращает:
прокси для платформенного MXBean для пересылки вызовов методов mxbeanInterface через указанный MBeanServerConnection, или null если не существует.
Исключение:
IllegalArgumentException - если mxbeanInterface не является платформенным интерфейсом управления или не является одиночным платформенным MXBean.
IOException - если произошла проблема с соединением при доступе к MBeanServerConnection.
Since:
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. Возвращаемый список может содержать ноль, один или более экземпляров. Количество экземпляров в возвращаемом списке определяется в спецификации заданного интерфейса управления. Порядок не определён, и нет гарантии, что возвращаемый список имеет тот же порядок, что и при предыдущих вызовах.

Type Parameters:
T - параметр типа mxbeanInterface
Parameters:
connection - MBeanServerConnection для пересылки.
mxbeanInterface - интерфейс управления платформенным MXBean.
Возвращает:
список прокси для платформенных MXBean для пересылки вызовов методов mxbeanInterface через указанный MBeanServerConnection.
Исключение:
IllegalArgumentException - если mxbeanInterface не является платформенным интерфейсом управления.
IOException - если произошла проблема с соединением при доступе к MBeanServerConnection.
Since:
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.
Since:
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.

Spec-Zone.ru

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