Spec-Zone.ru › OpenJDK 17

Интерфейс 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, имя объекта ObjectName, переданное в параметре, содержит шаблон или не указан ObjectName для 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.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
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, переданное в параметре, содержит шаблон или не указан ObjectName для MBean.
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, зарегистрированного в сервере 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
Получает управляемые сервером MBean. Данный метод позволяет получить следующее: все MBean, набор MBean, указанный с помощью шаблона соответствия ObjectName и/или выражения запроса, конкретный MBean. Если имя объекта равно null или не заданы домен и ключевые свойства, будут выбраны все объекты (и отфильтрованы, если задан запрос). Возвращает набор ObjectInstance объектов (содержащих ObjectName и имя класса Java) для выбранных MBean.
Parameters:
name - Шаблон имени объекта, определяющий MBean, которые необходимо получить. Если равно null или не заданы домен и ключевые свойства, будут получены все зарегистрированные MBean.
query - Выражение запроса, применяемое для выбора MBean. Если равно null, для выбора MBean не будет применено никакого выражения запроса.
Returns:
Набор ObjectInstance объектов для выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Throws:
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.

queryNames

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

isRegistered

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

getMBeanCount

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

getAttribute

Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
Получает значение определённого атрибута указанного MBean. MBean идентифицируется по имени объекта.
Parameters:
name - Имя объекта MBean, из которого требуется получить атрибут.
attribute - Строка, указывающая имя атрибута, который требуется получить.
Returns:
Значение полученного атрибута.
Throws:
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
MBeanException - Обёртка исключения, сгенерированного методом getter MBean.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Обёртка исключения java.lang.Exception при попытке вызвать setter.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.
See Also:
  • 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);
 }
 
Parameters:
name - Имя объекта MBean, из которого извлекаются атрибуты.
attributes - Список атрибутов, которые требуется получить.
Returns:
Список полученных атрибутов.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Произошло исключение при попытке вызвать метод getAttributes динамического MBean.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null.
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.
See Also:
  • setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
Устанавливает значение определённого атрибута указанного MBean. MBean идентифицируется по имени объекта.
Parameters:
name - Имя MBean, в котором требуется установить атрибут.
attribute - Описание атрибута для установки и значение, на которое он должен быть установлен.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InvalidAttributeValueException - Указанное значение для атрибута некорректно.
MBeanException - Обёртка исключения, сгенерированного методом setter MBean.
ReflectionException - Обёртка исключения java.lang.Exception при попытке вызвать setter.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.
See Also:
  • 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);
 }
 
Parameters:
name - Имя объекта MBean, в котором устанавливаются атрибуты.
attributes - Список атрибутов: указание атрибутов, которые нужно установить, и значения, на которые они должны быть установлены.
Returns:
Список атрибутов, которые были установлены, с новыми значениями.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Произошло исключение при попытке вызвать метод getAttributes динамического MBean.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null.
IOException - Произошла проблема с общением при взаимодействии с сервером MBean.
See Also:
  • 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);
 
Parameters:
name - Имя объекта MBean, на котором должна быть вызвана операция.
operationName - Имя вызываемой операции.
params - Массив, содержащий параметры, которые должны быть установлены при вызове операции
signature - Массив, содержащий сигнатуру операции, массив имен классов в формате, возвращаемом Class.getName(). Классы будут загружены с помощью того же загрузчика классов, что и тот, который использовался для загрузки MBean, на котором была вызвана операция.
Returns:
Объект, возвращаемый операцией, представляющий результат вызова операции над указанным MBean.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
MBeanException - Обёртка исключения, сгенерированного вызываемым методом MBean.
ReflectionException - Обёртка исключения java.lang.Exception при попытке вызова метода.
IOException - Произошла проблема с коммуникацией при взаимодействии с сервером MBean.

getDefaultDomain

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

getDomains

String[] getDomains() throws IOException

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

Returns:
список доменов.
Throws:
IOException - Произошла проблема с коммуникацией при взаимодействии с сервером MBean.

addNotificationListener

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

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

Parameters:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Объект слушателя, который будет обрабатывать уведомления, генерируемые зарегистрированным MBean.
filter - Объект фильтра. Если filter равен null, фильтрация уведомлений не будет выполняться.
handback - Контекст, который будет передан слушателю при генерации уведомления.
Throws:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
IOException - Произошла проблема с коммуникацией при взаимодействии с сервером MBean.
See Also:
  • 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. В противном случае источник остаётся без изменений.

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

Parameters:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Имя объекта слушателя, который будет обрабатывать уведомления, генерируемые зарегистрированным MBean.
filter - Объект фильтра. Если filter равен null, фильтрация уведомлений не будет выполняться.
handback - Контекст, который будет передан слушателю при генерации уведомления.
Throws:
InstanceNotFoundException - Имя MBean слушателя или объекта, транслирующего уведомление, не соответствует ни одному из зарегистрированных MBeans.
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 — загрузчик классов 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, 2021, 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/17/docs/api/java.management/javax/management/MBeanServerConnection.html

Spec-Zone.ru

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