Интерфейс MBeanServer

Все суперинтерфейсы:
MBeanServerConnection
Все известные дочерние интерфейсы:
MBeanServerForwarder
public interface MBeanServer
extends MBeanServerConnection

Этот интерфейс предназначен для управления MBean на стороне агента. Он содержит методы, необходимые для создания, регистрации и удаления MBean, а также методы доступа к зарегистрированным MBean. Это основной компонент инфраструктуры JMX.

Код пользователя обычно не реализует этот интерфейс. Вместо этого объект, реализующий этот интерфейс, получается одним из методов в классе MBeanServerFactory.

Каждый MBean, добавляемый в сервер MBean, становится управляемым: его атрибуты и операции становятся удаленно доступными через соединители/адаптеры, подключенные к этому серверу MBean. Объект Java не может быть зарегистрирован на сервере MBean, если он не является совместимым с JMX MBean.

Когда MBean регистрируется или отменяется регистрация в сервере MBean, отправляется уведомление MBeanServerNotification. Чтобы зарегистрировать объект в качестве прослушивателя MBeanServerNotifications, необходимо вызвать метод сервера MBean addNotificationListener с ObjectName ObjectName MBeanServerDelegate. Это ObjectName:
JMImplementation:type=MBeanServerDelegate.

Объект, полученный с помощью методов createMBeanServer или newMBeanServer класса MBeanServerFactory, применяет проверки безопасности к своим методам следующим образом.

Во-первых, если нет менеджера безопасности (System.getSecurityManager() равно null), то реализация этого интерфейса может не выполнять никаких проверок.

Предполагая, что существует менеджер безопасности или что реализация все равно выбирает выполнение проверок, проверки выполняются, как подробно описано ниже. В дальнейшем, если не указано иное, className — это строка, возвращаемая MBeanInfo.getClassName() для целевого MBean.

Если проверка безопасности завершается неудачей, метод вызывает исключение SecurityException.

Для методов, которые могут вызывать исключение InstanceNotFoundException, это исключение вызывается для несуществующего MBean независимо от разрешений. Это связано с тем, что у несуществующего MBean нет className.

С версии:
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.

default ObjectInputStream deserialize​(String className, byte[] data)

Устаревший.

Используйте getClassLoaderRepository() для получения репозитория загрузчиков классов и использования его для десериализации.

default ObjectInputStream deserialize​(String className, ObjectName loaderName, byte[] data)

Устаревший.

Используйте getClassLoader для получения загрузчика классов для десериализации.

default ObjectInputStream deserialize​(ObjectName name, byte[] data)

Устаревший.

Используйте getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.

Object getAttribute​(ObjectName name, String attribute)

Получает значение определённого атрибута именованного MBean.

AttributeList getAttributes​(ObjectName name, String[] attributes)

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

ClassLoader getClassLoader​(ObjectName loaderName)

Возвращает именованный ClassLoader.

ClassLoader getClassLoaderFor​(ObjectName mbeanName)

Возвращает ClassLoader, который использовался для загрузки класса именованного MBean.

ClassLoaderRepository getClassLoaderRepository()

Возвращает ClassLoaderRepository для этого MBeanServer.

Integer getMBeanCount()

Возвращает количество зарегистрированных MBean в сервере MBean.

Object instantiate​(String className)

Создаёт объект, используя список всех загрузчиков классов, зарегистрированных в репозитории загрузчиков классов сервера MBean Class Loader Repository.

Object instantiate​(String className, Object[] params, String[] signature)

Создаёт объект, используя список всех загрузчиков классов, зарегистрированных в сервере MBean Class Loader Repository.

Object instantiate​(String className, ObjectName loaderName)

Создаёт объект, используя указанный загрузчик классов по его ObjectName.

Object instantiate​(String className, ObjectName loaderName, Object[] params, String[] signature)

Создаёт объект.

boolean isRegistered​(ObjectName name)

Проверяет, зарегистрирован ли MBean, идентифицированный по имени объекта, в сервере MBean.

Set<ObjectInstance> queryMBeans​(ObjectName name, QueryExp query)

Получает MBean, управляемые сервером MBean.

Set<ObjectName> queryNames​(ObjectName name, QueryExp query)

Получает имена MBean, управляемые сервером MBean.

ObjectInstance registerMBean​(Object object, ObjectName name)

Регистрирует существующий объект в качестве MBean в сервере MBean.

void setAttribute​(ObjectName name, Attribute attribute)

Устанавливает значение определённого атрибута именованного MBean.

AttributeList setAttributes​(ObjectName name, AttributeList attributes)

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

void unregisterMBean​(ObjectName name)

Дерегистрирует MBean из сервера MBean.

Методы, объявленные в интерфейсе javax.management.MBeanServerConnection

getDefaultDomain, getDomains, getMBeanInfo, getObjectInstance, invoke, isInstanceOf, removeNotificationListener, removeNotificationListener, removeNotificationListener, removeNotificationListener

Методы

createMBean

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

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

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

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

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

createMBean

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

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

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

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

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

createMBean

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

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

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

Определено в:
createMBean в интерфейсе MBeanServerConnection
Параметры:
className - Имя класса MBean, который необходимо создать.
name - Объектное имя MBean. Может быть null.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java класса недавно созданного MBean. Если содержимое ObjectName равно n, содержащее имя Java класса равно getMBeanInfo(n).getClassName().
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя класса (className), переданное в качестве параметра, равно null, переданное ObjectName содержит шаблон или для MBean не указано ObjectName.
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 не будет зарегистрирован.
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызова конструктора MBean.
InstanceAlreadyExistsException - MBean уже под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
См. также:
MBeanRegistration

createMBean

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

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

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

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

registerMBean

ObjectInstance registerMBean(Object object,
                             ObjectName name)
                      throws InstanceAlreadyExistsException,
                             MBeanRegistrationException,
                             NotCompliantMBeanException

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

Если этот метод успешно регистрирует MBean, отправляется уведомление, как описано выше.

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

unregisterMBean

void unregisterMBean(ObjectName name)
              throws InstanceNotFoundException,
                     MBeanRegistrationException

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

Если этот метод успешно удаляет MBean, отправляется уведомление, как описано выше.

Определено в:
unregisterMBean в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, подлежащего удалению.
Исключение:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или MBean, который вы пытаетесь удалить, является MBean MBeanServerDelegate.
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 останется зарегистрированным.
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
MBeanRegistrationException - Метод preDeregister (интерфейс MBeanRegistration) MBean бросил исключение.
См. также:
MBeanRegistration

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name,
                                QueryExp query)

Получает MBeans, управляемые сервером MBean. Этот метод позволяет получить следующее: все MBeans, набор MBeans, указанный с помощью подстановки шаблонов по имени объекта ObjectName и/или выражению запроса, определённый MBean. Если имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Он возвращает набор объектов ObjectInstance (содержащих ObjectName и имя Java-класса) для выбранных MBeans.

Определено в:
queryMBeans в интерфейсе MBeanServerConnection
Параметры:
name - Шаблон имени объекта, идентифицирующий MBeans, подлежащие извлечению. Если равен null или не указаны домен и ключевые свойства, извлекаются все зарегистрированные MBeans.
query - Выражение запроса, применяемое для выбора MBeans. Если равно null, выражение запроса не применяется для выбора MBeans.
Возвращает:
Набор, содержащий объекты ObjectInstance для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Исключение:
RuntimeOperationsException

queryNames

Set<ObjectName> queryNames(ObjectName name,
                           QueryExp query)

Получает имена MBeans, управляемых сервером MBean. Этот метод позволяет получить следующее: имена всех MBeans, имена набора MBeans, указанного с помощью подстановки шаблонов по имени объекта ObjectName и/или выражению запроса, определённое имя MBean (эквивалентно проверке, зарегистрирован ли MBean). Если имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectNames для выбранных MBeans.

Указано в:
queryNames в интерфейсе MBeanServerConnection
Параметры:
name - Шаблон имени объекта, идентифицирующий имена MBean, которые необходимо получить. Если null или не указаны свойства домена и ключа, будут возвращены имена всех зарегистрированных MBean.
query - Выражение запроса, которое необходимо применить для выбора MBean. Если null, выражение запроса не будет применено для выбора MBean.
Возвращает:
Множество, содержащее ObjectNames для выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Выбрасывает:
RuntimeOperationsException

isRegistered

boolean isRegistered(ObjectName name)

Описание скопировано из интерфейса: MBeanServerConnection

Проверяет, зарегистрирован ли MBean, идентифицированный своим именем объекта, в сервере MBean.

Указано в:
isRegistered в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, который необходимо проверить.
Возвращает:
True, если MBean уже зарегистрирован в сервере MBean, иначе false.
Выбрасывает:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null.

getMBeanCount

Integer getMBeanCount()

Возвращает количество зарегистрированных MBean в сервере MBean.

Указано в:
getMBeanCount в интерфейсе MBeanServerConnection
Возвращает:
количество зарегистрированных MBean, заключенных в Integer. Если разрешения вызывающего ограничены, это число может быть больше, чем количество MBean, к которым у вызывающего есть доступ.

getAttribute

Object getAttribute(ObjectName name,
                    String attribute)
             throws MBeanException,
                    AttributeNotFoundException,
                    InstanceNotFoundException,
                    ReflectionException

Описание скопировано из интерфейса: MBeanServerConnection

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

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

getAttributes

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

Описание скопировано из интерфейса: MBeanServerConnection

Получает значения нескольких атрибутов именованного 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);
 }
Указано в:
getAttributes в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, из которого извлекаются атрибуты.
attributes - Список атрибутов, которые нужно получить.
Возвращает:
Список полученных атрибутов.
Выбрасывает:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Возникло исключение при попытке вызвать метод getAttributes динамического MBean.
См. также:
MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name,
                  Attribute attribute)
           throws InstanceNotFoundException,
                  AttributeNotFoundException,
                  InvalidAttributeValueException,
                  MBeanException,
                  ReflectionException

Описание скопировано из интерфейса: MBeanServerConnection

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

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

setAttributes

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

Описание скопировано из интерфейса: MBeanServerConnection

Устанавливает значения нескольких атрибутов именованного 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);
 }
Указано в:
setAttributes в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, в котором необходимо установить атрибуты.
attributes - Список атрибутов: идентификация устанавливаемых атрибутов и значения, которые нужно им присвоить.
Возвращает:
Список атрибутов, которые были установлены, с их новыми значениями.
Выбрасывает:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Возникло исключение при попытке вызвать метод getAttributes динамического MBean.
См. также:
MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])

addNotificationListener

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

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

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

addNotificationListener

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

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

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

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

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

instantiate

Object instantiate(String className)
            throws ReflectionException,
                   MBeanException

Создает экземпляр объекта, используя список всех загрузчиков классов, зарегистрированных в Class Loader Repository сервера MBean. Класс объекта должен иметь открытый конструктор. Этот метод возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.

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

Параметры:
className - Имя класса объекта, экземпляр которого необходимо создать.
Возвращает:
Вновь созданный объект.
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, которые произошли при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта выбросил исключение.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре значение className равно null.

instantiate

Object instantiate(String className,
                   ObjectName loaderName)
            throws ReflectionException,
                   MBeanException,
                   InstanceNotFoundException

Создает экземпляр объекта, используя загрузчик классов, указанный его ObjectName. Если имя загрузчика равно null, будет использоваться ClassLoader, загрузивший сервер MBean. Класс объекта должен иметь открытый конструктор. Этот метод возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.

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

Параметры:
className - Имя класса MBean, экземпляр которого необходимо создать.
loaderName - Имя объекта загрузчика классов, который будет использоваться.
Возвращает:
Вновь созданный объект.
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, которые произошли при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта выбросил исключение.
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в MBeanServer.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре значение className равно null.

instantiate

Object instantiate(String className,
                   Object[] params,
                   String[] signature)
            throws ReflectionException,
                   MBeanException

Создает экземпляр объекта, используя список всех загрузчиков классов, зарегистрированных в Class Loader Repository сервера MBean. Класс объекта должен иметь открытый конструктор. Вызов возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.

Параметры:
className - Имя класса объекта, экземпляр которого необходимо создать.
params - Массив, содержащий параметры конструктора, который нужно вызвать.
signature - Массив, содержащий сигнатуру конструктора, который нужно вызвать.
Возвращает:
Вновь созданный объект.
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, которые произошли при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта выбросил исключение.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре значение className равно null.

instantiate

Object instantiate(String className,
                   ObjectName loaderName,
                   Object[] params,
                   String[] signature)
            throws ReflectionException,
                   MBeanException,
                   InstanceNotFoundException

Создает экземпляр объекта. Загрузчик классов, который будет использоваться, идентифицируется по его имени объекта. Если имя объекта загрузчика равно null, будет использоваться ClassLoader, загрузивший сервер MBean. Класс объекта должен иметь открытый конструктор. Вызов возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.

Параметры:
className - Имя класса объекта, экземпляр которого необходимо создать.
params - Массив, содержащий параметры конструктора, который нужно вызвать.
signature - Массив, содержащий сигнатуру конструктора, который нужно вызвать.
loaderName - Имя объекта загрузчика классов, который будет использоваться.
Возвращает:
Вновь созданный объект.
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, которые произошли при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта выбросил исключение.
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре значение className равно null.

deserialize

@Deprecated(since="1.5")
default ObjectInputStream deserialize(ObjectName name,
                                      byte[] data)
                               throws InstanceNotFoundException,
                                      OperationsException
Устарело.
Используйте getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.

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

Требования к реализации:
По умолчанию этот метод выдает UnsupportedOperationException.
Параметры:
name - Имя MBean, чей загрузчик классов должен использоваться для десериализации.
data - Массив байтов, который должен быть десериализован.
Возвращает:
Десериализованный поток объектов.
Исключения:
InstanceNotFoundException - Указанный MBean не найден.
OperationsException - Любые обычные исключения, связанные с вводом/выводом.

deserialize

@Deprecated(since="1.5")
default ObjectInputStream deserialize(String className,
                                      byte[] data)
                               throws OperationsException,
                                      ReflectionException
Устарело.
Используйте getClassLoaderRepository() для получения хранилища загрузчиков классов и используйте его для десериализации.

Десериализует массив байтов в контексте данного загрузчика классов MBean. Загрузчик классов находится путем загрузки класса className через Class Loader Repository. Загрузчик классов результирующего класса является тем, который нужно использовать.

Требования к реализации:
По умолчанию этот метод выдает UnsupportedOperationException.
Параметры:
className - Имя класса, чей загрузчик классов должен использоваться для десериализации.
data - Массив байтов, который должен быть десериализован.
Возвращает:
Десериализованный поток объектов.
Исключения:
OperationsException - Любые обычные исключения, связанные с вводом/выводом.
ReflectionException - Указанный класс не может быть загружен хранилищем загрузчиков классов.

deserialize

@Deprecated(since="1.5")
default ObjectInputStream deserialize(String className,
                                      ObjectName loaderName,
                                      byte[] data)
                               throws InstanceNotFoundException,
                                      OperationsException,
                                      ReflectionException
Устарело.
Используйте getClassLoader для получения загрузчика классов для десериализации.

Десериализует массив байтов в контексте данного загрузчика классов MBean. Загрузчик классов - это тот, который загрузил класс с именем "className". Указано имя загрузчика классов, который будет использоваться для загрузки указанного класса. Если null, будет использоваться загрузчик классов сервера MBean.

Требования к реализации:
По умолчанию этот метод выдает UnsupportedOperationException.
Параметры:
className - Имя класса, чей загрузчик классов должен использоваться для десериализации.
data - Массив байтов, который должен быть десериализован.
loaderName - Имя загрузчика классов, который будет использоваться для загрузки указанного класса. Если null, будет использоваться загрузчик классов сервера MBean.
Возвращает:
Десериализованный поток объектов.
Исключения:
InstanceNotFoundException - Указанный MBean загрузчика классов не найден.
OperationsException - Любые обычные исключения, связанные с вводом/выводом.
ReflectionException - Указанный класс не может быть загружен указанным загрузчиком классов.

getClassLoaderFor

ClassLoader getClassLoaderFor(ObjectName mbeanName)
                       throws InstanceNotFoundException

Возвращает ClassLoader, который использовался для загрузки класса именованного MBean.

Параметры:
mbeanName - ObjectName MBean.
Возвращает:
ClassLoader, используемый для этого MBean. Если l - это фактический ClassLoader MBean, а r - возвращаемое значение, то либо:
  • r идентичен l; или
  • результат r.loadClass(s) совпадает с l.loadClass(s) для любой строки s.
Это означает, что ClassLoader может быть обернут в другой ClassLoader по соображениям безопасности или по другим причинам.
Исключения:
InstanceNotFoundException - если именованный MBean не найден.

getClassLoader

ClassLoader getClassLoader(ObjectName loaderName)
                    throws InstanceNotFoundException

Возвращает указанный ClassLoader.

Parameters:
loaderName - Имя объекта ClassLoader. Может быть null, в этом случае возвращается собственный ClassLoader сервера MBean.
Returns:
Указанный ClassLoader. Если l — фактический ClassLoader с таким именем, а r — возвращаемое значение, то либо:
  • r идентичен l; или
  • результат r.loadClass(s) такой же, как l.loadClass(s) для любой строки s.
Это означает, что ClassLoader может быть обернут в другой ClassLoader по соображениям безопасности или по другим причинам.
Throws:
InstanceNotFoundException - если указанный ClassLoader не найден.

getClassLoaderRepository

ClassLoaderRepository getClassLoaderRepository()

Возвращает ClassLoaderRepository для этого сервера MBean.

Returns:
ClassLoaderRepository для этого сервера MBean.

© 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/MBeanServer.html

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