Spec-Zone.ru › OpenJDK 24

Интерфейс 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.
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
Получает имена управляемых сервером 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, имя ObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указано имя ObjectName.
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.
См. также:
  • MBeanRegistration

createMBean

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

Инициализирует и регистрирует MBean в сервере MBean. Класс загрузчик определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика равно null, используется ClassLoader, который загрузил сервер 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, имя ObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указано имя ObjectName.
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, переданное имя ObjectName содержит шаблон или для MBean не указано имя ObjectName.
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 ассоциируется с именем объекта. Если имя объекта загрузчика не указано, используется загрузчик классов, который загрузил сервер 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 - Метод 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, переданное имя ObjectName содержит шаблон или для 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.
END_OF_DOCUMENT_MARKER

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query) throws IOException
Получает управляемые сервером MBean. Этот метод позволяет получить следующее: все MBean, набор MBean, указанный с помощью шаблона сопоставления с образцом на ObjectName и/или выражением запроса, конкретный MBean. Когда имя объекта равно null или не указаны свойства домена и ключа, выбираются все объекты (и отфильтровываются, если указан запрос). Возвращает набор ObjectInstance объектов (содержащих ObjectName и имя класса Java) для выбранных MBean.
Параметры:
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 для выбранных MBean.
Параметры:
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 - Оборачивает исключение, сгенерированное getter'ом MBean.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Оборачивает java.lang.Exception, возникшее при попытке вызвать setter.
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 - Оборачивает исключение, сгенерированное setter'ом MBean.
ReflectionException - Оборачивает java.lang.Exception, возникшее при попытке вызвать setter.
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 - Объект фильтра. Если 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, будет перенаправлено сервером MBean слушателю. Если источник уведомления является ссылкой на объект MBean, сервер MBean заменит его именем объекта этого MBean. В противном случае источник остаётся без изменений.

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

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

removeNotificationListener

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

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

Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Имя объекта слушателя, который нужно удалить.
Исключения:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
IOException - Произошла проблема с коммуникацией при взаимодействии с сервером MBean.
См. также:
  • 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 для удаляемого слушателя.

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

removeNotificationListener

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

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

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

Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Слушатель, который нужно удалить.
Исключения:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
IOException - Произошла проблема с коммуникацией при взаимодействии с сервером MBean.
См. также:
  • 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, только если они имеют такое же значение в удаляемом слушателе.

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 - загрузчик классов 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, 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/MBeanServerConnection.html

Spec-Zone.ru

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