Spec-Zone.ru › OpenJDK 27

Интерфейс DiagnosticCommandMBean

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

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

ObjectName, используемое для уникальной идентификации диагностического MBean в MBeanServer:

com.sun.management:type=DiagnosticCommand

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

  • имя диагностической команды — имя, используемое в виртуальной машине HotSpot
  • имя операции MBean — имя, создаваемое для вызова операции диагностической команды. Имя операции 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(String attribute)
Получает значение указанного атрибута динамического MBean.
AttributeList getAttributes(String[] attributes)
Получает значения нескольких атрибутов динамического MBean.
MBeanInfo getMBeanInfo()
Предоставляет доступные атрибуты и действия динамического MBean с помощью объекта MBeanInfo.
Object invoke(String actionName, Object[] params, String[] signature)
Позволяет вызвать действие для динамического MBean.
void setAttribute(Attribute attribute)
Устанавливает значение указанного атрибута динамического MBean.
AttributeList setAttributes(AttributeList attributes)
Устанавливает значения нескольких атрибутов динамического MBean.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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