Spec-Zone.ru › OpenJDK 25

Интерфейс 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 сервер MBean использует свой Default Loader Repository. С 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 — этот класс не является MBean, совместимым с JMX.
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 — этот класс не является MBean, совместимым с JMX.
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 сервер MBean использует свой Default Loader Repository. С 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 — этот класс не является MBean, совместимым с JMX.
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 связывается имя объекта. Если имя объекта загрузчика не указано, используется ClassLoader, загрузивший сервер MBean. Если указанное имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Параметры:
className — имя класса создаваемого экземпляра MBean.
name — имя объекта MBean. Может быть null.
loaderName — имя объекта загрузчика классов, который будет использоваться.
params — массив, содержащий параметры вызываемого конструктора.
signature — массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса созданного экземпляра MBean. Если содержащийся ObjectName равен n, то содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
ReflectionException — оборачивает java.lang.ClassNotFoundException или java.lang.Exception, возникшее при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException — MBean уже находится под управлением сервера MBean.
MBeanRegistrationException — метод 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 — этот класс не является MBean, совместимым с JMX.
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, зарегистрированного на сервере 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; набор MBean, заданный с помощью сопоставления с шаблоном по ObjectName и/или выражению запроса; отдельный MBean. Если имя объекта равно null или домен и ключевые свойства не указаны, выбираются все объекты (и фильтруются, если задан запрос). Метод возвращает набор объектов ObjectInstance (содержащих ObjectName и имя класса Java) для выбранных MBean.
Параметры:
name — шаблон имени объекта, определяющий извлекаемые MBean. Если значение равно null или домен и ключевые свойства не указаны, будут извлечены все зарегистрированные MBean.
query — выражение запроса, применяемое для выбора MBean. Если значение равно null, выражение запроса для выбора MBean применяться не будет.
Возвращает:
Набор объектов ObjectInstance для выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Исключения:
IOException — при взаимодействии с сервером MBean возникла проблема связи.

queryNames

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

getAttribute

Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
Получает значение определенного атрибута именованного MBean. MBean идентифицируется по имени объекта.
Параметры:
name — имя объекта MBean, у которого извлекается атрибут.
attribute — строка с именем извлекаемого атрибута.
Возвращает:
Значение извлеченного атрибута.
Исключения:
AttributeNotFoundException — указанный атрибут недоступен в MBean.
MBeanException — оборачивает исключение, вызванное методом чтения MBean.
InstanceNotFoundException — указанный MBean не зарегистрирован на сервере MBean.
ReflectionException — оборачивает java.lang.Exception, вызванное при попытке вызвать метод записи.
RuntimeOperationsException — оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException — при взаимодействии с сервером MBean возникла проблема связи.
См. также:
  • setAttribute(ObjectName, 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(ObjectName, AttributeList)

setAttribute

void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
Задает значение определенного атрибута именованного MBean. MBean идентифицируется по имени объекта.
Параметры:
name — имя MBean, атрибут которого необходимо задать.
attribute — идентификатор задаваемого атрибута и значение, которое ему присваивается.
Исключения:
InstanceNotFoundException — указанный MBean не зарегистрирован на сервере MBean.
AttributeNotFoundException — указанный атрибут недоступен в MBean.
InvalidAttributeValueException — указанное для атрибута значение недопустимо.
MBeanException — оборачивает исключение, вызванное методом записи MBean.
ReflectionException — оборачивает java.lang.Exception, вызванное при попытке вызвать метод записи.
RuntimeOperationsException — оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
IOException — при взаимодействии с сервером MBean возникла проблема связи.
См. также:
  • getAttribute(ObjectName, 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(ObjectName, String[])

invoke

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

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

Поскольку для различения потенциально перегруженных операций требуется signature, гораздо проще по возможности вызывать операции через прокси MBean. Например, предположим, что у вас есть интерфейс стандартного 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. Имя домена по умолчанию используется в качестве доменной части ObjectName для MBean, если пользователь не указал домен.
Возвращает:
домен по умолчанию.
Выбрасывает:
IOException — При взаимодействии с сервером MBean возникла проблема связи.

getDomains

String[] getDomains() throws IOException

Возвращает список доменов, в которых в данный момент зарегистрирован хотя бы один MBean. Строка присутствует в возвращаемом массиве тогда и только тогда, когда зарегистрирован хотя бы один MBean с ObjectName, у которого 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 заменит её на ObjectName этого 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 тогда и только тогда, когда они равны 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 динамического MBean возникло исключение.
IOException — При взаимодействии с сервером MBean возникла проблема связи.

isInstanceOf

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

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

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

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

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

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

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

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

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

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

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/MBeanServerConnection.html

Spec-Zone.ru

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