Spec-Zone.ru › OpenJDK 21

Интерфейс MBeanServerConnection

Все известные подинтерфейсы:
MBeanServer, MBeanServerForwarder
public interface MBeanServerConnection
Этот интерфейс представляет способ взаимодействия с сервером MBean, локальным или удалённым. Интерфейс MBeanServer, представляющий локальный сервер MBean, расширяет этот интерфейс.
С момента:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя к зарегистрированному MBean.
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
Добавляет слушателя к зарегистрированному MBean.
ObjectInstance createMBean(String className, ObjectName name)
Инициализирует и регистрирует MBean на сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature)
Инициализирует и регистрирует MBean на сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName)
Инициализирует и регистрирует MBean на сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)
Инициализирует и регистрирует MBean на сервере MBean.
Object getAttribute(ObjectName name, String attribute)
Получает значение определённого атрибута именованного MBean.
AttributeList getAttributes(ObjectName name, String[] attributes)
Получает значения нескольких атрибутов именованного MBean.
String getDefaultDomain()
Возвращает используемую по умолчанию область для именования MBean.
String[] getDomains()
Возвращает список областей, в которых сейчас зарегистрирован любой MBean.
Integer getMBeanCount()
Возвращает количество зарегистрированных MBean на сервере MBean.
MBeanInfo getMBeanInfo(ObjectName name)
Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
ObjectInstance getObjectInstance(ObjectName name)
Получает ObjectInstance для данного MBean, зарегистрированного на сервере MBean.
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature)
Вызывает операцию на MBean.
boolean isInstanceOf(ObjectName name, String className)
Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае — false.
boolean isRegistered(ObjectName name)
Проверяет, зарегистрирован ли MBean, идентифицируемый по имени объекта, на сервере MBean.
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
Получает MBean, контролируемые сервером MBean.
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
Получает имена MBean, контролируемых сервером MBean.
void removeNotificationListener(ObjectName name, NotificationListener listener)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, ObjectName listener)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
Удаляет слушателя из зарегистрированного MBean.
void setAttribute(ObjectName name, Attribute attribute)
Устанавливает значение определённого атрибута именованного MBean.
AttributeList setAttributes(ObjectName name, AttributeList attributes)
Устанавливает значения нескольких атрибутов именованного MBean.
void unregisterMBean(ObjectName name)
Дерегистрирует MBean с сервера MBean.

Подробности методов

createMBean

ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException

Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализуя интерфейс MBeanRegistration и возвращая имя из метода preRegister.

Этот метод эквивалентен createMBean(className, name, (Object[]) null, (String[]) null).

Параметры:
className - Имя класса MBean, подлежащего инициализации.
name - Имя объекта MBean. Может быть null.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса вновь созданного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
RuntimeMBeanException - Если конструктор MBean или его методы preRegister или postRegister бросили RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил RuntimeException, метод createMBean бросит RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в качестве параметра имя класса равно null, переданное в качестве параметра имя объекта содержит шаблон или для MBean не указано ни одно имя.
IOException - Произошла проблема связи при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException

Инициализирует и регистрирует MBean в сервере MBean. Загрузчик классов определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика равно null, используется загрузчик классов, который загрузил сервер MBean. Если переданное имя объекта MBean равно null, MBean должен предоставить собственное имя, реализуя интерфейс MBeanRegistration и возвращая имя из метода preRegister.

Этот метод эквивалентен createMBean(className, name, loaderName, (Object[]) null, (String[]) null).

Параметры:
className - Имя класса MBean, подлежащего инициализации.
name - Имя объекта MBean. Может быть null.
loaderName - Имя объекта загрузчика классов.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса вновь созданного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
RuntimeMBeanException - Если конструктор MBean или его методы preRegister или postRegister бросили RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил RuntimeException, метод createMBean бросит RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в качестве параметра имя класса равно null, переданное в качестве параметра имя объекта содержит шаблон или для MBean не указано ни одно имя.
IOException - Произошла проблема связи при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализуя интерфейс MBeanRegistration и возвращая имя из метода preRegister.
Параметры:
className - Имя класса MBean, подлежащего инициализации.
name - Имя объекта MBean. Может быть null.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса вновь созданного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
RuntimeMBeanException - Если конструктор MBean или его методы preRegister или postRegister бросили RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил RuntimeException, метод createMBean бросит RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в этом случае MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в качестве параметра имя класса равно null, переданное в качестве параметра имя объекта содержит шаблон или для MBean не указано ни одно имя.
IOException - Произошла проблема связи при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException

Создаёт и регистрирует MBean в сервере MBean. Класс-загрузчик, который должен быть использован, определяется по имени объекта. Имя объекта ассоциируется с MBean. Если имя объекта загрузчика не указано, используется ClassLoader, который загрузил сервер MBean. Если указанное имя объекта MBean равно null, MBean должен предоставить своё собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Параметры:
className - Имя класса MBean, подлежащего созданию.
name - Имя объекта MBean. Может быть null.
loaderName - Имя объекта класса-загрузчика, который должен быть использован.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса недавно созданного MBean. Если содержащий ObjectName равен n, содержащее имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод %%%CODE_BLOCK_223%% (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
RuntimeMBeanException - Конструктор MBean или его методы preRegister или postRegister бросили исключение RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение RuntimeException, метод createMBean бросит исключение RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В этом случае MBean фактически будет зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено методом preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит исключение RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В этом случае MBean фактически будет зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено методом preRegister, в этом случае MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
InstanceNotFoundException - Указанный класс-загрузчик не зарегистрирован в сервере MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре имя класса равно null, переданный в параметре объект содержит шаблон или для MBean не указано ни одного ObjectName.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

unregisterMBean

void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, IOException
Удаляет MBean из сервера MBean. MBean определяется по имени объекта. После вызова метода MBean больше нельзя получить по его имени объекта.
Параметры:
name - Имя объекта MBean, подлежащего удалению.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
MBeanRegistrationException - Метод preDeregister (интерфейс MBeanRegistration) MBean бросил исключение.
RuntimeMBeanException - Если метод postDeregister (интерфейс MBeanRegistration) MBean бросил исключение RuntimeException, метод unregisterMBean бросит исключение RuntimeMBeanException, хотя удаление MBean прошло успешно. В этом случае MBean фактически будет удалён, даже если метод unregisterMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено методом preDeregister, в этом случае MBean останется зарегистрированным.
RuntimeErrorException - Если метод postDeregister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод unregisterMBean бросит исключение RuntimeErrorException, хотя удаление MBean прошло успешно. В этом случае MBean фактически будет удалён, даже если метод unregisterMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено методом preDeregister, в этом случае MBean останется зарегистрированным.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или MBean, который вы пытаетесь удалить, является MBean MBeanServerDelegate.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException, IOException
Получает ObjectInstance для данного зарегистрированного в сервере MBean.
Параметры:
name - Имя объекта MBean.
Возвращает:
ObjectInstance , связанный с MBean, указанным параметром name. Содержащий ObjectName равен name, и содержащее имя класса равно getMBeanInfo(name).getClassName().
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query) throws IOException
Получает MBeans, контролируемые сервером MBean. Этот метод позволяет получить следующее: Все MBeans, набор MBeans, определённый с помощью соответствия шаблонам к ObjectName, и/или выражению запроса, определённому MBean. Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор объектов ObjectInstance (содержащих ObjectName и имя Java-класса) для выбранных MBeans.
Параметры:
name - Шаблон имени объекта, определяющий MBeans для получения. Если равно null или не указаны домен и ключевые свойства, получаются все зарегистрированные MBeans.
query - Выражение запроса, применяемое для выбора MBeans. Если равно null, выражение запроса не применяется для выбора MBeans.
Возвращает:
Набор, содержащий объекты ObjectInstance для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Исключения:
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

queryNames

Set<ObjectName> queryNames(ObjectName name, QueryExp query) throws IOException
Получает имена MBeans, контролируемых сервером MBean. Этот метод позволяет получить следующее: Имена всех MBeans, имена набора MBeans, определённых с помощью соответствия шаблонам к ObjectName, и/или выражению запроса, определённому MBean имени (равносильно проверке, зарегистрирован ли MBean). Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectNames для выбранных MBeans.
Параметры:
name - Шаблон имени объекта, определяющий имена MBean для получения. Если равно null или не указаны домен и ключевые свойства, получаются имена всех зарегистрированных MBeans.
query - Выражение запроса, применяемое для выбора MBeans. Если равно null, выражение запроса не применяется для выбора MBeans.
Возвращает:
Набор, содержащий ObjectNames для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Исключения:
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

isRegistered

boolean isRegistered(ObjectName name) throws IOException
Проверяет, зарегистрирован ли MBean, определённый по имени объекта, в сервере MBean.
Параметры:
name - Имя объекта MBean, подлежащего проверке.
Возвращает:
True, если MBean уже зарегистрирован в сервере MBean, иначе false.
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

getMBeanCount

Integer getMBeanCount() throws IOException
Возвращает количество зарегистрированных MBeans в сервере MBean.
Возвращает:
количество зарегистрированных MBeans.
Исключения:
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

getAttribute

Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
Получает значение определённого атрибута именованного MBean. MBean определяется по своему имени объекта.
Параметры:
name - Имя объекта MBean, из которого необходимо извлечь атрибут.
attribute - Строка, определяющая имя атрибута, который нужно получить.
Возвращает:
Значение полученного атрибута.
Исключение:
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
MBeanException - Оборачивает исключение, брошенное методом получения MBean.
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Оборачивает исключение java.lang.Exception при попытке вызова метода установки.
RuntimeOperationsException - Оборачивает исключение java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • setAttribute(javax.management.ObjectName, javax.management.Attribute)

getAttributes

AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException, IOException

Получает значения нескольких атрибутов именованного MBean. MBean определяется по своему имени объекта.

Если один или несколько атрибутов по какой-либо причине не могут быть получены, они будут опущены из возвращаемого AttributeList. Вызывающий метод должен проверить, что список имеет такой же размер, как массив attributes. Чтобы узнать, какая проблема помешала получить определённый атрибут, вызовите getAttribute для этого атрибута.

Вот пример вызова этого метода и проверки успешного получения всех запрошенных атрибутов:

 String[] attrNames = ...;
 AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
 if (list.size() == attrNames.length)
     System.out.println("All attributes were retrieved successfully");
 else {
     List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
     for (Attribute a : list.asList())
         missing.remove(a.getName());
     System.out.println("Did not retrieve: " + missing);
 }
 
Параметры:
name - Имя объекта MBean, из которого извлекаются атрибуты.
attributes - Список атрибутов, которые нужно получить.
Возвращает:
Список полученных атрибутов.
Исключение:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Произошло исключение при попытке вызвать метод getAttributes у динамического MBean.
RuntimeOperationsException - Оборачивает исключение java.lang.IllegalArgumentException: имя объекта в параметре равно null или массив атрибутов в параметре равен null.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
Устанавливает значение определённого атрибута именованного MBean. MBean определяется по имени объекта.
Параметры:
name - Имя MBean, в котором необходимо установить атрибут.
attribute - Описание атрибута, который нужно установить, и значение, на которое его нужно установить.
Исключение:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InvalidAttributeValueException - Указанное значение атрибута некорректно.
MBeanException - Оборачивает исключение, брошенное методом установки MBean.
ReflectionException - Оборачивает исключение java.lang.Exception при попытке вызова метода установки.
RuntimeOperationsException - Оборачивает исключение java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • getAttribute(javax.management.ObjectName, java.lang.String)

setAttributes

AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, IOException

Устанавливает значения нескольких атрибутов именованного MBean. MBean определяется по имени объекта.

Если один или несколько атрибутов по какой-либо причине не могут быть установлены, они будут опущены из возвращаемого AttributeList. Вызывающий метод должен проверить, что входной AttributeList имеет такой же размер, как выходной. Чтобы узнать, какая проблема помешала установить определённый атрибут, обычно можно вызвать setAttribute для этого атрибута, хотя это не гарантируется. (Например, значения двух атрибутов могут быть отклонены из-за несоответствия друг другу. Установка одного из них в отдельности может быть разрешена.)

Вот пример вызова этого метода и проверки успешного установки всех запрошенных атрибутов:

 AttributeList inputAttrs = ...;
 AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
 if (inputAttrs.size() == outputAttrs.size())
     System.out.println("All attributes were set successfully");
 else {
     List<String> missing = new ArrayList<String>();
     for (Attribute a : inputAttrs.asList())
         missing.add(a.getName());
     for (Attribute a : outputAttrs.asList())
         missing.remove(a.getName());
     System.out.println("Did not set: " + missing);
 }
 
Параметры:
name - Имя объекта MBean, в котором необходимо установить атрибуты.
attributes - Список атрибутов: описание атрибутов, которые нужно установить, и значения, на которые их нужно установить.
Возвращает:
Список атрибутов, которые были установлены, с их новыми значениями.
Исключение:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Произошло исключение при попытке вызвать метод getAttributes у динамического MBean.
RuntimeOperationsException - Оборачивает исключение java.lang.IllegalArgumentException: имя объекта в параметре равно null или массив атрибутов в параметре равен null.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • getAttributes(javax.management.ObjectName, java.lang.String[])

invoke

Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException

Вызывает операцию на MBean.

Из-за необходимости signature для различения потенциально перегруженных операций гораздо проще вызывать операции через прокси MBean, где это возможно. Например, предположим, что у вас есть интерфейс Standard MBean, такой как этот:

 public interface FooMBean {
     public int countMatches(String[] patterns, boolean ignoreCase);
 }
 

Операция countMatches может быть вызвана следующим образом:

 String[] myPatterns = ...;
 int count = (Integer) mbeanServerConnection.invoke(
         objectName,
         "countMatches",
         new Object[] {myPatterns, true},
         new String[] {String[].class.getName(), boolean.class.getName()});
 

Или она может быть вызвана через прокси следующим образом:

 String[] myPatterns = ...;
 FooMBean fooProxy = JMX.newMBeanProxy(
         mbeanServerConnection, objectName, FooMBean.class);
 int count = fooProxy.countMatches(myPatterns, true);
 
Параметры:
name - Имя объекта MBean, на котором необходимо вызвать метод.
operationName - Имя операции, которая должна быть вызвана.
params - Массив, содержащий параметры, которые нужно установить при вызове операции
signature - Массив, содержащий сигнатуру операции, массив имён классов в формате, возвращаемом Class.getName(). Объекты классов будут загружаться с помощью того же загрузчика классов, что и тот, который использовался для загрузки MBean, на котором была вызвана операция.
Возвращает:
Объект, возвращённый операцией, представляющий результат вызова операции на указанном MBean.
Исключение:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
MBeanException - Оборачивает исключение, брошенное вызываемым методом MBean.
ReflectionException - Оборачивает исключение java.lang.Exception при попытке вызова метода.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

getDefaultDomain

String getDefaultDomain() throws IOException
Возвращает домен по умолчанию, используемый для именования MBean. Имя домена по умолчанию используется как часть имени объекта MBean, если пользователь не указал домен.
Возвращает:
домен по умолчанию.
Исключение:
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

getDomains

String[] getDomains() throws IOException

Возвращает список доменов, в которых в настоящее время зарегистрирован любой MBean. Строка находится в возвращаемом массиве, если и только если существует по крайней мере один MBean, зарегистрированный с именем объекта, чьё getDomain() равно этой строке. Порядок строк в возвращаемом массиве не определён.

Возвращает:
список доменов.
Исключение:
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.

addNotificationListener

void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException

Добавляет слушателя к зарегистрированному MBean. Уведомления, испускаемые MBean, будут перенаправлены слушателю.

Параметры:
name - Имя MBean, к которому нужно добавить слушателя.
listener - Объект слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean.
filter - Объект фильтра. Если фильтр равен null, никакое фильтрация не будет выполняться перед обработкой уведомлений.
handback - Контекст, который будет отправлен слушателю при испускании уведомления.
Исключение:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
IOException - Произошла проблема с обменом данными при взаимодействии с сервером MBean.
См. также:
  • removeNotificationListener(ObjectName, NotificationListener)
  • removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

addNotificationListener

void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, IOException

Добавляет слушателя к зарегистрированному MBean.

Уведомление, отправленное MBean, будет перенаправлено сервером MBeanServer слушателю. Если источником уведомления является ссылка на объект MBean, сервер MBean заменит её именем объекта этого MBean. В противном случае источник останется неизменным.

Объект слушателя, который получает уведомления, — это объект, зарегистрированный с заданным именем в момент вызова этого метода. Даже если он будет впоследствии дерегистрирован, он по-прежнему будет получать уведомления.

Parameters:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Имя объекта слушателя, который будет обрабатывать уведомления, отправленные зарегистрированным MBean.
filter - Объект фильтра. Если filter равен null, никакой фильтрации перед обработкой уведомлений не будет выполнено.
handback - Контекст, который будет передан слушателю при отправке уведомления.
Throws:
InstanceNotFoundException - Имя MBean слушателя уведомлений или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean.
RuntimeOperationsException - Оборачивает IllegalArgumentException. MBean с именем listener существует, но не реализует интерфейс NotificationListener.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • removeNotificationListener(ObjectName, ObjectName)
  • removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException
Удаляет слушателя из зарегистрированного MBean.

Если слушатель зарегистрирован более одного раза, возможно, с разными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.

Parameters:
name - Имя MBean, из которого должен быть удален слушатель.
listener - Имя объекта слушателя, который нужно удалить.
Throws:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException

Удаляет слушателя из зарегистрированного MBean.

MBean должен иметь слушателя, который точно соответствует заданным listener, filter, и handback параметрам. Если таких слушателей несколько, удаляется только один.

Параметры filter и handback могут быть null, если и только если они равны null у удаляемого слушателя.

Parameters:
name - Имя MBean, из которого должен быть удален слушатель.
listener - Имя объекта слушателя, который нужно удалить.
filter - Фильтр, указанный при добавлении слушателя.
handback - Обратный вызов, указанный при добавлении слушателя.
Throws:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или он не зарегистрирован с заданным фильтром и обратным вызовом.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException, IOException

Удаляет слушателя из зарегистрированного MBean.

Если слушатель зарегистрирован более одного раза, возможно, с разными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.

Parameters:
name - Имя MBean, из которого должен быть удален слушатель.
listener - Слушатель, который нужно удалить.
Throws:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException, IOException

Удаляет слушателя из зарегистрированного MBean.

MBean должен иметь слушателя, который точно соответствует заданным listener, filter, и handback параметрам. Если таких слушателей несколько, удаляется только один.

Параметры filter и handback могут быть null, если и только если они равны null у удаляемого слушателя.

Parameters:
name - Имя MBean, из которого должен быть удален слушатель.
listener - Слушатель, который нужно удалить.
filter - Фильтр, указанный при добавлении слушателя.
handback - Обратный вызов, указанный при добавлении слушателя.
Throws:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или он не зарегистрирован с заданным фильтром и обратным вызовом.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException
Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
Parameters:
name - Имя анализируемого MBean
Returns:
Экземпляр MBeanInfo, позволяющий получить все атрибуты и операции этого MBean.
Throws:
IntrospectionException - Произошла ошибка при интроспекции.
InstanceNotFoundException - Указанный MBean не найден.
ReflectionException - Произошла ошибка при вызове getMBeanInfo для динамического MBean.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.

isInstanceOf

boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException, IOException

Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае — false.

Если name не указывает на MBean, этот метод выбрасывает InstanceNotFoundException.

В противном случае, пусть
X — MBean, названный name,
L — ClassLoader объекта X,
N — имя класса в MBeanInfo объекта X.

Если N равно className, результат — true.

В противном случае, если L успешно загружает className и X является экземпляром этого класса, результат — true.

В противном случае, если L успешно загружает как N, так и className, и второй класс может быть приведён к первому, результат — true.

В противном случае, результат — false.

Parameters:
name - ObjectName MBean.
className - Имя класса.
Returns:
true, если указанный MBean является экземпляром указанного класса в соответствии с вышеуказанными правилами, false в противном случае.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
IOException - Возникла проблема с коммуникацией при работе с сервером MBean.
See Also:
  • Class.isInstance(java.lang.Object)

© 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/java.management/javax/management/MBeanServerConnection.html

Spec-Zone.ru

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