Spec-Zone.ru › OpenJDK 21

Интерфейс DiagnosticCommandMBean

Все суперинтерфейсы:
DynamicMBean
public interface DiagnosticCommandMBean extends DynamicMBean
Интерфейс управления диагностическими командами для виртуальной машины HotSpot.

Данный интерфейс DiagnosticCommandMBean регистрируется в сервере управления платформы, как и другие платформенные MBean-ы.

ObjectName для уникальной идентификации MBean-а диагностики внутри сервера управления MBean-а:

com.sun.management:type=DiagnosticCommand

Этот MBean является DynamicMBean и также NotificationEmitter. DiagnosticCommandMBean генерируется во время выполнения и может быть изменён в течение жизненного цикла виртуальной машины Java. Диагностическая команда представлена в виде операции интерфейса DiagnosticCommandMBean. Каждая диагностическая команда имеет:

  • имя диагностической команды, которое используется в виртуальной машине HotSpot;
  • имя операции MBean-а, которое является именем, сгенерированным для вызова операции диагностической команды. Имя операции MBean-а зависит от реализации;
Рекомендуемый способ преобразования имени диагностической команды в имя операции MBean-а:
  • Все символы с первого по первую точку преобразуются в строчные;
  • Все точки и символы подчёркивания удаляются, а следующий символ преобразуется в заглавный;
  • Все остальные символы копируются без изменений;

Имя диагностической команды всегда предоставляется с метаданными об операции в поле dcmd.name (см. ниже).

Диагностическая команда может или не может поддерживать параметры или аргументы. Все операции возвращают String и либо не принимают параметров для операций, которые не поддерживают какие-либо параметры или аргументы, либо принимают параметр String[] для операций, которые поддерживают хотя бы один параметр или аргумент. Каждый параметр или аргумент должен храниться в отдельной строке. Параметры или аргументы, разделённые на несколько строк, не поддерживаются.

Различие между параметрами и аргументами: параметры идентифицируются по имени параметра, а аргументы — по их позиции в командной строке. Параметры и аргументы обрабатываются в порядке массива, переданного в метод вызова.

Как и любая операция динамического MBean-а, каждая из этих операций описывается экземпляром MBeanOperationInfo. Вот значения, возвращаемые этим объектом:

  • getName() возвращает имя операции, сгенерированное из имени диагностической команды;
  • getDescription() возвращает описание диагностической команды (то же, что возвращается в команде 'help');
  • getImpact() возвращает ACTION_INFO
  • getReturnType() возвращает java.lang.String
  • getDescriptor() возвращает экземпляр Descriptor (см. ниже)

Descriptor — это набор полей, содержащих дополнительные метаданные для элемента JMX. Поле — это имя и связанное с ним значение. Дополнительные метаданные, предоставляемые для операции, связанной с диагностической командой, описаны в таблице ниже:

description
Имя Тип Описание
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, описаны в таблице ниже:

description
Имя Тип Описание
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

Spec-Zone.ru

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