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

Получает 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 , выброшенное при попытке вызвать 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);
 }
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 - Обёртка исключения, выброшенного установщиком MBean.
ReflectionException - Обёртка исключения java.lang.Exception при попытке вызвать установщик.
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 слушателя уведомлений или источника уведомлений не соответствует ни одному из зарегистрированных 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.

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

Параметры:
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, если и только если они имеют значение null в удаляемом слушателе.

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

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name)
                throws InstanceNotFoundException,
                       IntrospectionException,
                       ReflectionException,
                       IOException

Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.

Параметры:
name - Имя MBean для анализа
Возвращает:
Экземпляр MBeanInfo, позволяющий получить все атрибуты и операции этого MBean.
Исключения:
IntrospectionException - Произошла ошибка во время интроспекции.
InstanceNotFoundException - Указанный MBean не найден.
ReflectionException - Произошла ошибка при вызове getMBeanInfo для Dynamic 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.

Параметры:
name - ObjectName MBean.
className - Имя класса.
Возвращает:
true, если указанный MBean является экземпляром указанного класса в соответствии с правилами выше, иначе false.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
IOException - Произошла проблема связи при взаимодействии с сервером MBean.
См. также:
Class.isInstance(java.lang.Object)

© 1993, 2020, 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/11/docs/api/java.management/javax/management/MBeanServerConnection.html

Spec-Zone .ru
спецификации, руководства, описания, API