Интерфейс DiagnosticCommandMBean
- Все суперинтерфейсы:
DynamicMBean
public interface DiagnosticCommandMBean extends DynamicMBean
Данный интерфейс DiagnosticCommandMBean регистрируется в сервере управления платформы, как и другие платформенные MBean-ы.
ObjectName для уникальной идентификации MBean-а диагностики внутри сервера управления MBean-а:
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_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, если диагностическая команда включена; иначе — 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, 2023, 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/21/docs/api/jdk.management/com/sun/management/DiagnosticCommandMBean.html