Интерфейс DiagnosticCommandMBean
- Все суперинтерфейсы:
DynamicMBean
public interface DiagnosticCommandMBean extends DynamicMBean
DiagnosticCommandMBean регистрируется на платформенном MBeanServer, как и другие платформенные MBean.
ObjectName, используемое для уникальной идентификации диагностического MBean в MBeanServer:
com.sun.management:type=DiagnosticCommand Этот MBean является DynamicMBean, а также NotificationEmitter. DiagnosticCommandMBean создаётся во время выполнения и может изменяться в течение срока существования виртуальной машины Java. Диагностическая команда представлена как операция интерфейса DiagnosticCommandMBean. Для каждой диагностической команды определены:
- имя диагностической команды — имя, используемое в виртуальной машине HotSpot
- имя операции MBean — имя, создаваемое для вызова операции диагностической команды. Имя операции MBean зависит от реализации
- Все символы от первого до первой точки переводятся в нижний регистр
- Каждая точка или символ подчёркивания удаляется, а следующий за ним символ переводится в верхний регистр
- Все остальные символы копируются без изменений
Имя диагностической команды всегда указывается в метаданных операции в поле с именем dcmd.name (см. ниже).
Диагностическая команда может поддерживать параметры или аргументы, а может и не поддерживать их. Все операции возвращают String и либо не принимают параметров, если операция не поддерживает параметры или аргументы, либо принимают параметр типа String[], если операция поддерживает хотя бы один параметр или аргумент. Каждый параметр или аргумент должен храниться в одной строке String. Параметры или аргументы, разделённые на несколько экземпляров String, не поддерживаются.
Различие между параметрами и аргументами заключается в следующем: параметры определяются по имени, а аргументы — по их позиции в командной строке. Параметры и аргументы обрабатываются в порядке элементов массива, переданного методу вызова.
Как и любая операция динамического MBean, каждая из этих операций описывается экземпляром MBeanOperationInfo. Этот объект возвращает следующие значения:
-
getName()возвращает имя операции, созданное на основе имени диагностической команды -
getDescription()возвращает описание диагностической команды (такое же, как возвращаемое командой 'help') -
getImpact()возвращаетACTION_INFO -
getReturnType()возвращаетjava.lang.String -
getDescriptor()возвращает экземпляр Descriptor (см. ниже)
Descriptor представляет собой набор полей, содержащих дополнительные метаданные элемента JMX. Поле состоит из имени и соответствующего значения. Дополнительные метаданные для операции, связанной с диагностической командой, описаны в таблице ниже:
| Имя | Тип | Описание |
|---|---|---|
| dcmd.name | String | Исходное имя диагностической команды (не имя операции) |
| dcmd.description | String | Описание диагностической команды |
| dcmd.help | String | Полное справочное сообщение для этой диагностической команды (такое же, как вывод команды 'help') |
| dcmd.vmImpact | String | Влияние диагностической команды. Это значение совпадает со значением, выводимым в разделе 'impact' справочного сообщения диагностической команды, и отличается от значения getImpact() объекта MBeanOperationInfo |
| dcmd.enabled | boolean | Это поле всегда имеет значение true — диагностические команды нельзя отключить. |
| dcmd.arguments | Descriptor | Экземпляр Descriptor, содержащий описания параметров и аргументов, поддерживаемых диагностической командой (см. ниже) |
Описание параметров (параметров или аргументов) диагностической команды предоставляется в экземпляре Descriptor. В этом Descriptor имя каждого поля является именем параметра, а значение каждого поля само представляет собой экземпляр Descriptor. Поля, предоставляемые во втором экземпляре Descriptor, описаны в таблице ниже:
| Имя | Тип | Описание |
|---|---|---|
| dcmd.arg.name | String | Имя параметра |
| dcmd.arg.type | String | Тип параметра. Возвращаемая строка String является именем типа, распознаваемого анализатором диагностических команд. Эти типы не являются типами Java и зависят от реализации. |
| dcmd.arg.description | String | Описание параметра |
| dcmd.arg.isMandatory | boolean | Значение true, если параметр обязателен, иначе — false |
| dcmd.arg.isOption | boolean | Значение true, если параметр является опцией, и false, если он является аргументом |
| dcmd.arg.isMultiple | boolean | Значение true, если параметр можно указывать несколько раз, иначе — false |
При изменении набора диагностических команд, поддерживаемых в данный момент виртуальной машиной Java, DiagnosticCommandMBean отправляет Notification с типом "jmx.mbean.info.changed" и userData, содержащим новый MBeanInfo.
- Начиная с:
- 1.8
Краткое описание методов
Методы, объявленные в интерфейсе DynamicMBean
getAttribute, getAttributes, getMBeanInfo, invoke, setAttribute, setAttributes | Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
getAttribute |
Получает значение указанного атрибута динамического MBean. |
AttributeList |
getAttributes |
Получает значения нескольких атрибутов динамического MBean. |
MBeanInfo |
getMBeanInfo() |
Предоставляет доступные атрибуты и действия динамического MBean с помощью объекта MBeanInfo. |
Object |
invoke |
Позволяет вызвать действие для динамического MBean. |
void |
setAttribute |
Устанавливает значение указанного атрибута динамического MBean. |
AttributeList |
setAttributes |
Устанавливает значения нескольких атрибутов динамического MBean. |
© 1993, 2025, 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.