Интерфейс DiagnosticCommandMBean
- Все суперинтерфейсы:
DynamicMBean
public interface DiagnosticCommandMBean extends DynamicMBean
Интерфейс управления диагностическими командами для виртуальной машины HotSpot.
Данный интерфейс зарегистрирован в платформенном сервере MBean, как и другие платформенные MBean.
Идентификатор ObjectName для уникальной идентификации MBean диагностики в рамках MBeanServer следующий:
com.sun.management:type=DiagnosticCommand
Этот MBean является DynamicMBean и также NotificationEmitter. DiagnosticCommandMBean генерируется во время выполнения и может быть изменён в течение жизненного цикла виртуальной машины Java. Диагностическая команда представляется как операция интерфейса DiagnosticCommandMBean. Каждая диагностическая команда имеет:
- имя диагностической команды, которое используется в виртуальной машине HotSpot
- имя операции MBean, которое является именем, сгенерированным для вызова операции диагностической команды. Имя операции MBean зависит от реализации
- Все символы с первого до первой точки преобразуются в строчные
- Все символы точки и подчёркивания удаляются, а следующий символ преобразуется в заглавный
- Все остальные символы копируются без изменений
Имя диагностической команды всегда предоставляется с метаданными об операции в поле с именем dcmd.name (см. ниже).
Диагностическая команда может или не может поддерживать параметры или аргументы. Все операции возвращают String и либо не принимают параметров для операций, не поддерживающих параметры или аргументы, либо принимают параметр String[] для операций, поддерживающих по крайней мере один параметр или аргумент. Каждый параметр или аргумент должен храниться в отдельной строке. Параметры или аргументы, разделенные на несколько строк, не поддерживаются.
Различие между параметрами и аргументами: параметры идентифицируются по имени параметра, а аргументы — по их позиции в командной строке. Параметры и аргументы обрабатываются в порядке массива, переданного в метод вызова.
Как и любая операция динамического MBean, каждая из этих операций описывается MBeanOperationInfo экземпляром. Вот значения, возвращаемые этим объектом:
getName()возвращает имя операции, сгенерированное из имени диагностической командыgetDescription()возвращает описание диагностической команды (то же, что и возвращается командой 'help')getImpact()возвращаетACTION_INFOgetReturnType()возвращаетjava.lang.StringgetDescriptor()возвращает экземпляр Descriptor (см. ниже)
Descriptor — это набор полей, содержащих дополнительные метаданные для элемента JMX. Поле — это имя и связанное с ним значение. Дополнительные метаданные, предоставляемые для операции, связанной с диагностической командой, описаны в таблице ниже:
| Имя | Тип | Описание |
|---|---|---|
| dcmd.name | String | Исходное имя диагностической команды (не имя операции) |
| dcmd.description | String | Описание диагностической команды |
| dcmd.help | String | Полное сообщение справки для этой диагностической команды (тот же вывод, что и при команде 'help') |
| dcmd.vmImpact | String | Воздействие диагностической команды, это значение такое же, как и выводимое в разделе 'воздействие' в сообщении справки для диагностической команды, и отличается от getImpact() MBeanOperationInfo |
| dcmd.enabled | boolean | True, если диагностическая команда включена, false — в противном случае |
| dcmd.permissionClass | String | Некоторые диагностические команды могут потребовать определённого разрешения для выполнения, помимо MBeanPermission для вызова связанной операции MBean. Это поле возвращает полное квалифицированное имя класса разрешения или null, если разрешение не требуется |
| dcmd.permissionName | String | Первый аргумент разрешения, необходимого для выполнения этой диагностической команды, или null, если разрешение не требуется |
| dcmd.permissionAction | String | Второй аргумент разрешения, необходимого для выполнения этой диагностической команды, или null, если конструктор разрешения имеет только один аргумент (например, ManagementPermission) или если разрешение не требуется |
| dcmd.arguments | Descriptor | Экземпляр Descriptor, содержащий описания параметров и аргументов, поддерживаемых диагностической командой (см. ниже) |
Описание параметров (параметров или аргументов) диагностической команды предоставляется в экземпляре Descriptor. В этом Descriptor имя каждого поля — имя параметра, а каждое значение поля — экземпляр Descriptor. Поля, предоставляемые в этом втором экземпляре Descriptor, описаны в таблице ниже:
| Имя | Тип | Описание |
|---|---|---|
| dcmd.arg.name | String | Имя параметра |
| dcmd.arg.type | 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
Методы
Методы, объявленные в интерфейсе javax.management.DynamicMBean
getAttribute, getAttributes, getMBeanInfo, invoke, setAttribute, setAttributes
© 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/jdk.management/com/sun/management/DiagnosticCommandMBean.html