Интерфейс 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.
-
Для метода
invokeразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, operationName, name, "invoke"). -
Для метода
getAttributeразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, attribute, name, "getAttribute"). -
Для метода
getAttributesразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "getAttribute"). Кроме того, для каждого атрибута a вAttributeList, если разрешения вызывающего абонента не подразумеваютMBeanPermission(className, a, name, "getAttribute"), сервер MBean будет вести себя так, как если бы этого атрибута не было в предоставленном списке. -
Для метода
setAttributeразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, attrName, name, "setAttribute"), гдеattrName— этоattribute.getName(). -
Для метода
setAttributesразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "setAttribute"). Кроме того, для каждого атрибута a вAttributeList, если разрешения вызывающего абонента не подразумеваютMBeanPermission(className, a, name, "setAttribute"), сервер MBean будет вести себя так, как если бы этого атрибута не было в предоставленном списке. -
Для методов
addNotificationListenerразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "addNotificationListener"). -
Для методов
removeNotificationListenerразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "removeNotificationListener"). -
Для метода
getMBeanInfoразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "getMBeanInfo"). -
Для метода
getObjectInstanceразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "getObjectInstance"). -
Для метода
isInstanceOfразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "isInstanceOf"). -
Для метода
queryMBeansразрешения вызывающего абонента должны подразумеватьMBeanPermission(null, null, null, "queryMBeans"). Кроме того, для каждого MBean n, соответствующегоname, если разрешения вызывающего абонента не подразумеваютMBeanPermission(className, null, n, "queryMBeans"), сервер MBean будет вести себя так, как если бы этого MBean не существовало.Некоторые элементы запроса выполняют операции на сервере MBean. Если у вызывающего абонента нет необходимых разрешений для данного MBean, этот MBean не будет включен в результат запроса. Стандартные элементы запроса, которые затрагиваются, это
Query.attr(String),Query.attr(String,String)иQuery.classattr(). -
Для метода
queryNamesпроверки такие же, как и дляqueryMBeans, за исключением того, что"queryNames"используется вместо"queryMBeans"в объектахMBeanPermission. Обратите внимание, что разрешение"queryMBeans"подразумевает соответствующее разрешение"queryNames". -
Для метода
getDomainsразрешения вызывающего абонента должны подразумеватьMBeanPermission(null, null, null, "getDomains"). Кроме того, для каждого домена d в возвращаемом массиве, если разрешения вызывающего абонента не подразумеваютMBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains"), домен удаляется из массива. Здесьx=x— это любая пара key=value, необходимая для удовлетворения конструктора ObjectName, но в остальном не относящаяся к делу. -
Для метода
getClassLoaderразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, loaderName, "getClassLoader"). -
Для метода
getClassLoaderForразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, mbeanName, "getClassLoaderFor"). -
Для метода
getClassLoaderRepositoryразрешения вызывающего абонента должны подразумеватьMBeanPermission(null, null, null, "getClassLoaderRepository"). -
Для устаревших методов
deserializeнеобходимые разрешения такие же, как и для методов, которые их заменяют. -
Для методов
instantiateразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, null, "instantiate"), гдеclassName— это имя класса, который должен быть создан. -
Для метода
registerMBeanразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "registerMBean").Если проверка
MBeanPermissionпрошла успешно, класс MBean проверяется путем проверки того, что егоProtectionDomainподразумеваетMBeanTrustPermission("register").Наконец, если аргумент
nameравен null, выполняется еще одна проверкаMBeanPermissionс использованиемObjectName, возвращаемогоMBeanRegistration.preRegister. -
Для методов
createMBeanразрешения вызывающего абонента должны подразумевать разрешения, необходимые для эквивалентногоinstantiate, а затемregisterMBean. -
Для метода
unregisterMBeanразрешения вызывающего абонента должны подразумеватьMBeanPermission(className, null, name, "unregisterMBean").
- С версии:
- 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 | getClassLoaderFor(ObjectName mbeanName) | Возвращает |
ClassLoaderRepository | getClassLoaderRepository() | Возвращает ClassLoaderRepository для этого MBeanServer. |
Integer | getMBeanCount() | Возвращает количество зарегистрированных MBean в сервере MBean. |
Object | instantiate(String className) | Создаёт объект, используя список всех загрузчиков классов, зарегистрированных в репозитории загрузчиков классов сервера MBean |
Object | instantiate(String className,
Object[] params,
String[] signature) | Создаёт объект, используя список всех загрузчиков классов, зарегистрированных в сервере MBean |
Object | instantiate(String className,
ObjectName loaderName) | Создаёт объект, используя указанный загрузчик классов по его |
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, который вы пытаетесь удалить, является MBeanMBeanServerDelegate. -
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.
- Исключения:
-
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.
- 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