Интерфейс MBeanServerConnection
- Все известные подинтерфейсы:
- MBeanServer, MBeanServerForwarder
public interface MBeanServerConnection
Этот интерфейс представляет способ взаимодействия с сервером MBean, как локальным, так и удалённым. Интерфейс MBeanServer, представляющий локальный сервер MBean, расширяет этот интерфейс.
- С:
- 1.5
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback) Добавляет слушателя к зарегистрированному MBean. |
void |
addNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback) Добавляет слушателя к зарегистрированному MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name) Создаёт и регистрирует MBean на сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
Object[] params,
String[] signature) Создаёт и регистрирует MBean на сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName) Создаёт и регистрирует MBean на сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName,
Object[] params,
String[] signature) Создаёт и регистрирует MBean на сервере MBean. |
Object |
getAttribute(ObjectName name,
String attribute) Получает значение определённого атрибута именованного MBean. |
AttributeList |
getAttributes(ObjectName name,
String[] attributes) Получает значения нескольких атрибутов именованного MBean. |
String |
getDefaultDomain() Возвращает домен по умолчанию, используемый для именования MBean. |
String[] |
getDomains() Возвращает список доменов, в которых в настоящее время зарегистрирован любой MBean. |
Integer |
getMBeanCount() Возвращает количество зарегистрированных MBean на сервере MBean. |
MBeanInfo |
getMBeanInfo(ObjectName name) Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления. |
ObjectInstance |
getObjectInstance(ObjectName name) Получает |
Object |
invoke(ObjectName name,
String operationName,
Object[] params,
String[] signature) Вызывает операцию над MBean. |
boolean |
isInstanceOf(ObjectName name,
String className) Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае false. |
boolean |
isRegistered(ObjectName name) Проверяет, зарегистрирован ли MBean, идентифицируемый его именем объекта, на сервере MBean. |
Set<ObjectInstance> |
queryMBeans(ObjectName name,
QueryExp query) Получает MBeans, управляемые сервером MBean. |
Set<ObjectName> |
queryNames(ObjectName name,
QueryExp query) Получает имена MBean, управляемых сервером MBean. |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
ObjectName listener) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback) Удаляет слушателя из зарегистрированного MBean. |
void |
setAttribute(ObjectName name,
Attribute attribute) Устанавливает значение определённого атрибута именованного MBean. |
AttributeList |
setAttributes(ObjectName name,
AttributeList attributes) Устанавливает значения нескольких атрибутов именованного MBean. |
void |
unregisterMBean(ObjectName name) Удаляет MBean с сервера MBean. |
Методы
createMBean
ObjectInstance createMBean(String className,
ObjectName name)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException,
IOException Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader
Repository для загрузки класса MBean. MBean ассоциирован с именем объекта. Если переданное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Этот метод эквивалентен createMBean(className, name, (Object[]) null, (String[])
null).
- Параметры:
-
className- Имя класса MBean, который необходимо инициализировать. -
name- Имя объекта MBean. Может быть null. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Выбрасывает:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
RuntimeMBeanException- Если конструктор MBean или его методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя класса, переданное в качестве параметра, равно null, имя объектаObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
IOException- Произошла проблема с коммуникацией при работе с сервером MBean. - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
ObjectName loaderName)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException,
InstanceNotFoundException,
IOException Инициализирует и регистрирует MBean в сервере MBean. Класс-загрузчик определяется по его имени объекта. MBean ассоциирован с именем объекта. Если имя объекта загрузчика равно null, используется ClassLoader, который загрузил сервер MBean. Если переданное имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Этот метод эквивалентен createMBean(className, name, loaderName, (Object[]) null,
(String[]) null).
- Параметры:
-
className- Имя класса MBean, который необходимо инициализировать. -
name- Имя объекта MBean. Может быть null. -
loaderName- Имя объекта class loader, который необходимо использовать. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Выбрасывает:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
RuntimeMBeanException- Если конструктор MBean или его методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
InstanceNotFoundException- Указанный class loader не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя класса, переданное в качестве параметра, равно null, имя объектаObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
IOException- Произошла проблема с коммуникацией при работе с сервером MBean. - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
Object[] params,
String[] signature)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException,
IOException Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader
Repository для загрузки класса MBean. MBean ассоциирован с именем объекта. Если переданное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister метода.
- Параметры:
-
className- Имя класса MBean, который необходимо инициализировать. -
name- Имя объекта MBean. Может быть null. -
params- Массив, содержащий параметры конструктора, который необходимо вызвать. -
signature- Массив, содержащий сигнатуру конструктора, который необходимо вызвать. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Выбрасывает:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
RuntimeMBeanException- Если конструктор MBean или его методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть вызваноpreRegister, в этом случае MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя класса, переданное в качестве параметра, равно null, имя объектаObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
IOException- Произошла проблема с коммуникацией при работе с сервером MBean. - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
ObjectName loaderName,
Object[] params,
String[] signature)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException,
InstanceNotFoundException,
IOException Инициализирует и регистрирует MBean в сервере MBean. Используемый загрузчик классов определяется его именем объекта. Имя объекта ассоциировано с MBean. Если имя объекта загрузчика не указано, используется загрузчик классов, который загрузил сервер MBean. Если имя объекта MBean, переданное в качестве параметра, равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
- Параметры:
-
className- Имя класса MBean, который должен быть инициализирован. -
name- Имя объекта MBean. Может быть null. -
params- Массив, содержащий параметры вызываемого конструктора. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. -
loaderName- Имя объекта загрузчика классов, который должен быть использован. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
RuntimeMBeanException- Конструктор MBean или методpreRegisterилиpostRegisterбросил исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean фактически будет зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean фактически будет зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение. -
NotCompliantMBeanException- Данный класс не является совместимым с JMX MBean. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное имя класса равно null, переданное имя объекта содержит шаблон или не указано для MBean. -
IOException- Произошла проблема с общением при взаимодействии с сервером MBean. - См. также:
MBeanRegistration
unregisterMBean
void unregisterMBean(ObjectName name)
throws InstanceNotFoundException,
MBeanRegistrationException,
IOException Удаляет MBean из сервера MBean. MBean идентифицируется по имени объекта. После вызова метода MBean больше не может быть доступен по его имени объекта.
- Параметры:
-
name- Имя объекта MBean, который должен быть удален. - Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
MBeanRegistrationException- Метод preDeregister (интерфейсMBeanRegistration) MBean бросил исключение. -
RuntimeMBeanException- Если методpostDeregister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методunregisterMBeanбросит исключениеRuntimeMBeanException, хотя удаление MBean успешно завершилось. В таком случае MBean фактически будет удален, даже если методunregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreDeregister, в этом случае MBean останется зарегистрированным. -
RuntimeErrorException- Если методpostDeregister(интерфейсMBeanRegistration) MBean бросил исключениеError, методunregisterMBeanбросит исключениеRuntimeErrorException, хотя удаление MBean успешно завершилось. В таком случае MBean фактически будет удален, даже если методunregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreDeregister, в этом случае MBean останется зарегистрированным. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или MBean, который вы пытаетесь удалить, является MBeanMBeanServerDelegate. -
IOException- Произошла проблема с общением при взаимодействии с сервером MBean. - См. также:
MBeanRegistration
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name)
throws InstanceNotFoundException,
IOException Получает ObjectInstance для заданного MBean, зарегистрированного на сервере MBean.
- Параметры:
-
name- Имя объекта MBean. - Возвращает:
ObjectInstance, связанный с MBean, указанным параметром name. СодержащийсяObjectNameравенname, а содержащееся имя класса равно.getMBeanInfo(name).getClassName()- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
IOException- Произошла проблема с общением при взаимодействии с сервером MBean.
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name,
QueryExp query)
throws IOException Получает MBeans, контролируемые сервером MBean. Этот метод позволяет получить: все MBeans, набор MBeans, заданный по соответствию с шаблоном к имени объекта и/или выражением запроса, определенный MBean. При null имени объекта или отсутствии домена и ключевых свойств выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор объектов ObjectInstance (содержащих ObjectName и имя класса Java) для выбранных MBeans.
- Параметры:
-
name- Шаблон имени объекта, идентифицирующий MBeans, которые нужно получить. Если null или не указан домен и ключевые свойства, будут получены все зарегистрированные MBeans. -
query- Выражение запроса, которое нужно применить для выбора MBeans. Если null, не будет применено выражение запроса для выбора MBeans. - Возвращает:
- Набор, содержащий объекты
ObjectInstanceдля выбранных MBeans. Если ни один MBean не соответствует запросу, возвращается пустой список. - Исключения:
-
IOException- Произошла проблема с общением при взаимодействии с сервером MBean.
queryNames
Set<ObjectName> queryNames(ObjectName name,
QueryExp query)
throws IOException Получает имена MBeans, контролируемые сервером MBean. Этот метод позволяет получить: имена всех MBeans, имена набора MBeans, заданных по соответствию с шаблоном к имени объекта и/или выражением запроса, определенное имя MBean (эквивалентно проверке регистрации MBean). При null имени объекта или отсутствии домена и ключевых свойств выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectNames для выбранных MBeans.
- Параметры:
-
name- Шаблон имени объекта, идентифицирующий имена MBeans, которые нужно получить. Если null или не указан домен и ключевые свойства, будут получены имена всех зарегистрированных MBeans. -
query- Выражение запроса, которое нужно применить для выбора MBeans. Если null, не будет применено выражение запроса для выбора MBeans. - Возвращает:
- Набор, содержащий ObjectNames для выбранных MBeans. Если ни один MBean не соответствует запросу, возвращается пустой список.
- Исключения:
-
IOException- Произошла проблема с общением при взаимодействии с сервером MBean.
isRegistered
boolean isRegistered(ObjectName name)
throws IOException Проверяет, зарегистрирован ли MBean, идентифицируемый по имени объекта, на сервере MBean.
- Параметры:
-
name- Имя объекта MBean, который нужно проверить. - Возвращает:
- True, если MBean уже зарегистрирован на сервере MBean, иначе false.
- Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null. -
IOException- Произошла проблема с общением при взаимодействии с сервером MBean.
getMBeanCount
Integer getMBeanCount()
throws IOException Возвращает количество зарегистрированных MBeans на сервере MBean.
- Возвращает:
- количество зарегистрированных MBeans.
- Исключения:
-
IOException- Произошла проблема с общением при взаимодействии с сервером MBean.
getAttribute
Object getAttribute(ObjectName name,
String attribute)
throws MBeanException,
AttributeNotFoundException,
InstanceNotFoundException,
ReflectionException,
IOException Получает значение определенного атрибута именованного MBean. MBean идентифицируется по имени объекта.
- Параметры:
-
name- Имя объекта MBean, из которого нужно получить атрибут. -
attribute- Строка, содержащая имя атрибута, который нужно получить. - Возвращает:
- Значение полученного атрибута.
- Исключения:
-
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
MBeanException- Оборачивает исключение, сгенерированное методом получения MBean. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Оборачиваетjava.lang.Exception, сгенерированное при попытке вызова метода задания. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null. -
IOException- Произошла проблема с общением при взаимодействии с сервером MBean. - См. также:
setAttribute(javax.management.ObjectName, javax.management.Attribute)
getAttributes
AttributeList getAttributes(ObjectName name,
String[] attributes)
throws InstanceNotFoundException,
ReflectionException,
IOException Получает значения нескольких атрибутов именованного объекта управления (MBean). Объект управления идентифицируется по имени объекта.
Если один или несколько атрибутов не могут быть получены по какой-либо причине, они будут опущены из возвращаемого AttributeList. Вызывающий метод должен проверить, что список имеет такой же размер, как и attributes массив. Чтобы узнать, какая проблема помешала получить конкретный атрибут, вызовите getAttribute для этого атрибута.
Вот пример вызова этого метода и проверки того, что он успешно получил все запрошенные атрибуты:
String[] attrNames = ...;
AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
if (list.size() == attrNames.length)
System.out.println("All attributes were retrieved successfully");
else {
List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
for (Attribute a : list.asList())
missing.remove(a.getName());
System.out.println("Did not retrieve: " + missing);
}
- Параметры:
-
name- Имя объекта управления (MBean), из которого извлекаются атрибуты. -
attributes- Список атрибутов, которые нужно получить. - Возвращает:
- Список полученных атрибутов.
- Исключения:
-
InstanceNotFoundException- Указанный объект управления (MBean) не зарегистрирован в сервере управления объектами. -
ReflectionException- Произошла ошибка при попытке вызвать метод getAttributes динамического объекта управления (Dynamic MBean). -
RuntimeOperationsException- Обёрткаjava.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null. -
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами. - См. также:
setAttributes(javax.management.ObjectName, javax.management.AttributeList)
setAttribute
void setAttribute(ObjectName name,
Attribute attribute)
throws InstanceNotFoundException,
AttributeNotFoundException,
InvalidAttributeValueException,
MBeanException,
ReflectionException,
IOException Устанавливает значение определенного атрибута именованного объекта управления (MBean). Объект управления идентифицируется по имени объекта.
- Параметры:
-
name- Имя объекта управления (MBean), в котором нужно установить атрибут. -
attribute- Идентификация атрибута, который нужно установить, и значение, на которое нужно установить. - Исключения:
-
InstanceNotFoundException- Указанный объект управления (MBean) не зарегистрирован в сервере управления объектами. -
AttributeNotFoundException- Указанный атрибут недоступен в объекте управления. -
InvalidAttributeValueException- Указанное значение для атрибута некорректно. -
MBeanException- Обёртка исключения, сгенерированного установщиком атрибута объекта управления. -
ReflectionException- Обёрткаjava.lang.Exceptionисключения, сгенерированного при попытке вызвать установщик. -
RuntimeOperationsException- Обёрткаjava.lang.IllegalArgumentExceptionисключения: имя объекта в параметре равно null или атрибут в параметре равен null. -
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами. - См. также:
getAttribute(javax.management.ObjectName, java.lang.String)
setAttributes
AttributeList setAttributes(ObjectName name,
AttributeList attributes)
throws InstanceNotFoundException,
ReflectionException,
IOException Устанавливает значения нескольких атрибутов именованного объекта управления (MBean). Объект управления идентифицируется по имени объекта.
Если один или несколько атрибутов не могут быть установлены по какой-либо причине, они будут опущены из возвращаемого AttributeList. Вызывающий метод должен проверить, что входной AttributeList имеет такой же размер, как и выходной. Чтобы узнать, какая проблема помешала установить конкретный атрибут, обычно можно вызвать setAttribute для этого атрибута, хотя это не гарантируется. (Например, значения двух атрибутов могут быть отклонены из-за несовместимости. Установка одного из них по отдельности может быть разрешена.)
Вот пример вызова этого метода и проверки того, что он успешно установил все запрошенные атрибуты:
AttributeList inputAttrs = ...;
AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
if (inputAttrs.size() == outputAttrs.size())
System.out.println("All attributes were set successfully");
else {
List<String> missing = new ArrayList<String>();
for (Attribute a : inputAttrs.asList())
missing.add(a.getName());
for (Attribute a : outputAttrs.asList())
missing.remove(a.getName());
System.out.println("Did not set: " + missing);
}
- Параметры:
-
name- Имя объекта управления (MBean), в котором нужно установить атрибуты. -
attributes- Список атрибутов: идентификация атрибутов, которые нужно установить, и значения, на которые их нужно установить. - Возвращает:
- Список атрибутов, которые были установлены, с их новыми значениями.
- Исключения:
-
InstanceNotFoundException- Указанный объект управления (MBean) не зарегистрирован в сервере управления объектами. -
ReflectionException- Произошла ошибка при попытке вызвать метод getAttributes динамического объекта управления (Dynamic MBean). -
RuntimeOperationsException- Обёрткаjava.lang.IllegalArgumentExceptionисключения: имя объекта в параметре равно null или атрибуты в параметре равны null. -
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами. - См. также:
getAttributes(javax.management.ObjectName, java.lang.String[])
invoke
Object invoke(ObjectName name,
String operationName,
Object[] params,
String[] signature)
throws InstanceNotFoundException,
MBeanException,
ReflectionException,
IOException Вызывает операцию на объекте управления (MBean).
Из-за необходимости signature различать потенциально перегруженные операции, гораздо проще вызывать операции через прокси объекта управления (прокси объекта управления), где это возможно. Например, предположим, что у вас есть интерфейс Standard MBean, подобный этому:
public interface FooMBean {
public int countMatches(String[] patterns, boolean ignoreCase);
} Операция countMatches может быть вызвана следующим образом:
String[] myPatterns = ...;
int count = (Integer) mbeanServerConnection.invoke(
objectName,
"countMatches",
new Object[] {myPatterns, true},
new String[] {String[].class.getName(), boolean.class.getName()}); Или, она может быть вызвана через прокси следующим образом:
String[] myPatterns = ...;
FooMBean fooProxy = JMX.newMBeanProxy(
mbeanServerConnection, objectName, FooMBean.class);
int count = fooProxy.countMatches(myPatterns, true);
- Параметры:
-
name- Имя объекта управления (MBean), на котором нужно вызвать метод. -
operationName- Имя операции, которую нужно вызвать. -
params- Массив, содержащий параметры, которые нужно установить при вызове операции. -
signature- Массив, содержащий сигнатуру операции, массив имён классов в формате, возвращаемомClass.getName(). Объекты классов будут загружены с использованием того же загрузчика классов, что и для загрузки объекта управления, на котором была вызвана операция. - Возвращает:
- Объект, возвращённый операцией, представляющий результат вызова операции на указанном объекте управления.
- Исключения:
-
InstanceNotFoundException- Указанный объект управления (MBean) не зарегистрирован в сервере управления объектами. -
MBeanException- Обёртка исключения, сгенерированного вызываемым методом объекта управления. -
ReflectionException- Обёрткаjava.lang.Exceptionисключения, сгенерированного при попытке вызвать метод. -
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами.
getDefaultDomain
String getDefaultDomain()
throws IOException Возвращает домен по умолчанию, используемый для именования объекта управления (MBean). Имя домена по умолчанию используется как часть имени объекта (ObjectName) для объектов управления, если пользователь не указал домен.
- Возвращает:
- домен по умолчанию.
- Исключения:
-
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами.
getDomains
String[] getDomains()
throws IOException Возвращает список доменов, в которых в данный момент зарегистрирован любой объект управления (MBean). Строка присутствует в возвращаемом массиве тогда и только тогда, когда существует хотя бы один объект управления, зарегистрированный с именем объекта (ObjectName), чьё getDomain() равно этой строке. Порядок строк в возвращаемом массиве не определён.
- Возвращает:
- список доменов.
- Исключения:
-
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами.
addNotificationListener
void addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
IOException Добавляет слушателя к зарегистрированному объекту управления (MBean). Уведомления, испускаемые объектом управления, будут перенаправлены слушателю.
- Параметры:
-
name- Имя объекта управления (MBean), к которому должен быть добавлен слушатель. -
listener- Объект слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным объектом управления. -
filter- Объект фильтра. Если фильтр равен null, никакое фильтрование не будет выполнено перед обработкой уведомлений. -
handback- Контекст, который будет передан слушателю при испускании уведомления. - Исключения:
-
InstanceNotFoundException- Предоставленное имя объекта управления не соответствует ни одному из зарегистрированных объектов управления. -
IOException- Произошла проблема с обменом данными при взаимодействии с сервером управления объектами. - См. также:
-
removeNotificationListener(ObjectName, NotificationListener),removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
addNotificationListener
void addNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
IOException Добавляет слушателя к зарегистрированному объекту управления (MBean).
Уведомление, испускаемое объектом управления, будет перенаправлено сервером управления объектами слушателю. Если источником уведомления является ссылка на объект MBean, сервер управления объектами заменит её именем объекта (ObjectName) этого объекта управления. В противном случае источник остаётся неизменным.
Объект слушателя, который получает уведомления, — это тот, который зарегистрирован с данным именем в момент вызова этого метода. Даже если он будет позже дезактивирован, он по-прежнему будет получать уведомления.
- Параметры:
-
name- Имя MBean, к которому должен быть добавлен слушатель. -
listener- Имя объекта слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean. -
filter- Объект фильтра. Если фильтр равен null, никакой фильтрации перед обработкой уведомлений не будет. -
handback- Контекст, который будет передан слушателю при испускании уведомления. - Исключения:
-
InstanceNotFoundException- Имя MBean слушателя уведомлений или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean с именемlistenerсуществует, но не реализует интерфейсNotificationListener. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
-
removeNotificationListener(ObjectName, ObjectName),removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
ObjectName listener)
throws InstanceNotFoundException,
ListenerNotFoundException,
IOException Удаляет слушателя из зарегистрированного MBean.
Если слушатель зарегистрирован более одного раза, возможно с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Имя объекта слушателя, который нужно удалить. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
ListenerNotFoundException,
IOException Удаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушатель, который точно соответствует предоставленным listener, filter, и handback параметрам. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, только если они равны null в удаляемом слушателе.
- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Имя объекта слушателя, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Обратная связь, указанная при добавлении слушателя. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратной связью. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
NotificationListener listener)
throws InstanceNotFoundException,
ListenerNotFoundException,
IOException Удаляет слушателя из зарегистрированного MBean.
Если слушатель зарегистрирован более одного раза, возможно с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Слушатель, который нужно удалить. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
ListenerNotFoundException,
IOException Удаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушатель, который точно соответствует предоставленным listener, filter, и handback параметрам. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, только если они равны null в удаляемом слушателе.
- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Слушатель, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Обратная связь, указанная при добавлении слушателя. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратной связью. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name)
throws InstanceNotFoundException,
IntrospectionException,
ReflectionException,
IOException Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
- Параметры:
-
name- Имя MBean для анализа - Возвращает:
- Экземпляр
MBeanInfo, позволяющий получить все атрибуты и операции этого MBean. - Исключения:
-
IntrospectionException- Произошла ошибка во время интроспекции. -
InstanceNotFoundException- Указанный MBean не найден. -
ReflectionException- Произошла ошибка при вызове getMBeanInfo для динамического MBean. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean.
isInstanceOf
boolean isInstanceOf(ObjectName name,
String className)
throws InstanceNotFoundException,
IOException Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае false.
Если name не указывает на MBean, этот метод выбрасывает InstanceNotFoundException.
В противном случае, пусть
X - MBean с именем name,
L - ClassLoader объекта X,
N - имя класса в MBeanInfo объекта X.
Если N равно className, результат true.
В противном случае, если L успешно загружает className и X является экземпляром этого класса, результат true.
В противном случае, если L успешно загружает N и className, и второй класс наследуется от первого, результат true.
В противном случае результат false.
- Параметры:
-
name-ObjectNameMBean. -
className- Имя класса. - Возвращает:
- true, если указанный MBean является экземпляром указанного класса в соответствии с правилами выше, в противном случае false.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
IOException- Произошла проблема с коммуникацией при взаимодействии с сервером MBean. - См. также:
Class.isInstance(java.lang.Object)
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.