Класс RequiredModelMBean
- Все реализованные интерфейсы:
-
DynamicMBean,MBeanRegistration,ModelMBean,ModelMBeanNotificationBroadcaster,NotificationBroadcaster,NotificationEmitter,PersistentMBean
public class RequiredModelMBean extends Object implements ModelMBean, MBeanRegistration, NotificationEmitter
Java-ресурсы, желающие быть управляемыми, создают экземпляр RequiredModelMBean, используя метод createMBean сервера MBean. Затем ресурс устанавливает MBeanInfo и Descriptors для экземпляра RequiredModelMBean. Атрибуты и операции, экспонируемые через ModelMBeanInfo для ModelMBean, доступны из MBean, коннекторов/адаптеров, таких как другие MBean. С помощью Descriptors можно определить и сопоставить значения и методы в управляемом приложении с атрибутами и операциями ModelMBean. Это сопоставление может быть определено в файле с форматом XML или динамически и программно во время выполнения.
Каждый RequiredModelMBean, созданный экземпляр которого существует в сервере MBean, становится управляемым:
его атрибуты и операции становятся удаленно доступными через коннекторы/адаптеры, подключенные к этому серверу MBean.
Объект Java не может быть зарегистрирован в сервере MBean, если он не является совместимым с JMX MBean. Создавая экземпляр RequiredModelMBean, ресурсы гарантируют, что MBean является валидным. MBeanException и RuntimeOperationsException должны быть выброшены при каждом публичном методе. Это позволяет оборачивать исключения из распределенных коммуникаций (RMI, EJB и т.д.).
- С тех пор как:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RequiredModelMBean() |
Создаёт RequiredModelMBean с пустым ModelMBeanInfo. |
RequiredModelMBean |
Создаёт объект RequiredModelMBean, используя переданный ModelMBeanInfo. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addAttributeChangeNotificationListener |
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя. |
void |
addNotificationListener |
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя. |
Object |
getAttribute |
Возвращает значение определённого атрибута для данного ModelMBean. |
AttributeList |
getAttributes |
Возвращает значения нескольких атрибутов в ModelMBean. |
protected ClassLoaderRepository |
getClassLoaderRepository() |
Возвращает хранилище загрузчиков классов, используемое для загрузки классов. |
MBeanInfo |
getMBeanInfo() |
Возвращает атрибуты, операции, конструкторы и уведомления, которые этот RequiredModelMBean экспонирует для управления. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив уведомлений, всегда генерируемых RequiredModelMBean. |
Object |
invoke |
Вызывает метод на RequiredModelMBean и возвращает результат выполнения метода. |
void |
load() |
Инициализирует экземпляр MBean данными, найденными для MBean в постоянном хранилище. |
void |
postDeregister() |
Позволяет MBean выполнить любые операции, необходимые после его удаления из сервера MBean. |
void |
postRegister |
Позволяет MBean выполнить любые операции, необходимые после его регистрации в сервере MBean или после того, как регистрация не удалась. |
void |
preDeregister() |
Позволяет MBean выполнить любые операции, необходимые перед его удалением из сервера MBean. |
ObjectName |
preRegister |
Позволяет MBean выполнить любые операции, необходимые перед его регистрацией в сервере MBean. |
void |
removeAttributeChangeNotificationListener |
Удаляет слушателя для уведомлений об изменениях атрибутов из RequiredModelMBean. |
void |
removeNotificationListener |
Удаляет слушателя уведомлений из RequiredModelMBean. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
sendAttributeChangeNotification |
Отправляет уведомление об изменении атрибута зарегистрированным слушателям на ModelMBean. |
void |
sendAttributeChangeNotification |
Отправляет уведомление об изменении атрибута, содержащее старое и новое значения атрибута, зарегистрированным слушателям AttributeChangeNotification на ModelMBean. |
void |
sendNotification |
Отправляет уведомление, содержащее переданную строку текста, зарегистрированным слушателям уведомлений на ModelMBean. |
void |
sendNotification |
Отправляет уведомление, переданное зарегистрированным слушателям уведомлений на ModelMBean, как jmx.modelmbean.generic уведомление. |
void |
setAttribute |
Устанавливает значение определенного атрибута имени ModelMBean. |
AttributeList |
setAttributes |
Устанавливает значения массива атрибутов этого ModelMBean. |
void |
setManagedResource |
Устанавливает дескриптор объекта, над которым будут выполняться все методы в данном интерфейсе управления ModelMBean (MBeanInfo и Descriptors). |
void |
setModelMBeanInfo |
Инициализирует объект ModelMBean, используя переданный ModelMBeanInfo. |
void |
store() |
Захватывает текущее состояние этого экземпляра MBean и записывает его в постоянное хранилище. |
Подробное описание конструкторов
RequiredModelMBean
public RequiredModelMBean() throws MBeanException, RuntimeOperationsException
RequiredModelMBean с пустым ModelMBeanInfo. Свойства MBeanInfo и описатели RequiredModelMBean можно настроить с помощью метода setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки свойств MBeanInfo и описателей RequiredModelMBean можно зарегистрировать RequiredModelMBean в MBeanServer.
- Возможные исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- ОборачиваетRuntimeExceptionво время создания объекта.
RequiredModelMBean
public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки свойств MBeanInfo и описателей RequiredModelMBean можно зарегистрировать RequiredModelMBean в MBeanServer.- Параметры:
-
mbi- Объект ModelMBeanInfo, который будет использоваться RequiredModelMBean. Переданный ModelMBeanInfo клонируется и изменяется в соответствии сsetModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo) - Возможные исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- Оборачивает {link java.lang.IllegalArgumentException}: Переданный в параметре MBeanInfo равен null.
Подробное описание методов
setModelMBeanInfo
public void setModelMBeanInfo(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
После настройки ModelMBeanInfo (с описателями) для ModelMBean, ModelMBean можно зарегистрировать в MBeanServer.
Если ModelMBean в настоящее время зарегистрирован, этот метод выбросит RuntimeOperationsException, оборачивая IllegalStateException
Если переданный inModelMBeanInfo не содержит никаких ModelMBeanNotificationInfo для уведомлений GENERIC или ATTRIBUTE_CHANGE, то RequiredModelMBean предоставит свои собственные значения по умолчанию для этих отсутствующих уведомлений.
- Определено в:
-
setModelMBeanInfoв интерфейсеModelMBean - Параметры:
-
mbi- Объект ModelMBeanInfo, который будет использоваться ModelMBean. - Возможные исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException-- Оборачивает
IllegalArgumentException, если переданный в параметре MBeanInfo равен null. - Оборачивает
IllegalStateException, если ModelMBean в настоящее время зарегистрирован в MBeanServer.
- Оборачивает
setManagedResource
public void setManagedResource(Object mr, String mr_type) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException
- Определено в:
-
setManagedResourceв интерфейсеModelMBean - Параметры:
-
mr- Объект, являющийся управляемым ресурсом -
mr_type- Тип ссылки на управляемый ресурс.
Может быть: "ObjectReference", "Handle", "IOR", "EJBHandle" или "RMIReference".
В этой реализации поддерживается только "ObjectReference". - Возможные исключения:
-
MBeanException- Инициализатор объекта выбросил исключение. -
InstanceNotFoundException- Управляемый ресурс не найден -
InvalidTargetObjectTypeException- Тип управляемого ресурса должен быть "ObjectReference". -
RuntimeOperationsException- ОборачиваетRuntimeExceptionпри установке ресурса.
load
public void load() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
Инициализирует экземпляр MBean данными, найденными для MBean в постоянном хранилище. Загруженные данные могут включать значения атрибутов и операций.
Этот метод должен вызываться во время создания или инициализации этого экземпляра и перед регистрацией MBean в MBeanServer.
Если реализация этого класса не поддерживает сохранение, выбрасывается MBeanException, оборачивающий ServiceNotFoundException.
- Определено в:
-
loadв интерфейсеPersistentMBean - Возможные исключения:
-
MBeanException- Оборачивает другое исключение или сохранение не поддерживается -
RuntimeOperationsException- Оборачивает исключения из механизма сохранения -
InstanceNotFoundException- MBean не найден или не загружен из постоянного хранилища
store
public void store() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
Записывает текущее состояние этого экземпляра MBean в постоянное хранилище. Сохранённое состояние может включать значения атрибутов и операций.
Если реализация этого класса не поддерживает сохранение, выбрасывается MBeanException, оборачивающий ServiceNotFoundException.
Политика сохранения из MBean и описателя атрибута используется для управления выполнением этого метода. MBean должен быть сохранён, если поле 'persistPolicy' имеет значение:
!= "never" = "always" = "onTimer" and now > 'lastPersistTime' + 'persistPeriod' = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod' = "onUnregister"
MBean не должен быть сохранён, если поле 'persistPolicy' имеет значение:
= "never"
= "onUpdate"
= "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
- Определено в:
-
storeв интерфейсеPersistentMBean - Возможные исключения:
-
MBeanException- Оборачивает другое исключение или сохранение не поддерживается -
RuntimeOperationsException- Оборачивает исключения из механизма сохранения -
InstanceNotFoundException- Не удалось найти/получить доступ к постоянному хранилищу
getMBeanInfo
public MBeanInfo getMBeanInfo()
- Определено в:
-
getMBeanInfoв интерфейсеDynamicMBean - Возвращает:
- Экземпляр ModelMBeanInfo, позволяющий получить доступ ко всем атрибутам, операциям и уведомлениям этого MBean.
invoke
public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException
Если заданный метод для вызова вместе со спецификацией соответствует одному из доступных методов RequiredModelMbean, то этот метод будет вызван. В противном случае вызов заданного метода будет осуществлен на управляемом ресурсе.
Последнее возвращаемое значение операции может быть кэшировано в описателе операции, который находится в описателе ModelMBeanOperationInfo. Действительное значение будет в поле 'value', если оно есть. Если поле 'currencyTimeLimit' в описателе:
- <0 Тогда значение не кэшируется и никогда не является действительным. Метод операции вызывается. Поля 'value' и 'lastUpdatedTimeStamp' очищаются.
- =0 Тогда значение всегда кэшируется и всегда действительное. Возвращается поле 'value'. Если поле 'value' отсутствует, то метод операции вызывается для атрибута. Поля 'lastUpdatedTimeStamp' и 'value' устанавливаются в возвращаемое значение операции и текущую отметку времени.
-
>0 Представляет количество секунд, в течение которых поле 'value' является действительным. Поле 'value' больше не является действительным, когда 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Сейчас.
- Когда 'value' действителен, возвращается 'value'.
- Когда 'value' больше не действителен, метод операции вызывается. Поля 'lastUpdatedTimeStamp' и 'value' обновляются.
Примечание: из-за несоответствий в предыдущих версиях этого спецификации рекомендуется не использовать отрицательные или нулевые значения для currencyTimeLimit. Чтобы указать, что кэшированное значение никогда не является действительным, опустите поле currencyTimeLimit. Чтобы указать, что оно всегда действительное, используйте очень большое число для этого поля.
- Specified by:
-
invokeв интерфейсеDynamicMBean - Parameters:
-
opName- Имя вызываемого метода. Имя может быть полным именем метода, включая имя класса, или только именем метода, если имя класса определено в поле 'class' описания операции. -
opArgs- Массив, содержащий параметры, которые должны быть установлены при вызове операции. -
sig- Массив, содержащий сигнатуру операции. Объекты классов будут загружаться с помощью того же загрузчика классов, что и тот, который использовался для загрузки MBean, на котором была вызвана операция. - Returns:
- Объект, возвращённый методом, который представляет результат вызова метода на указанном управляемом ресурсе.
- Throws:
-
MBeanException- Оборачивает одну из следующих исключений:- Исключение, сгенерированное вызываемым методом управляемого объекта.
-
ServiceNotFoundException: Нет ModelMBeanOperationInfo или нет описателя, определённого для указанной операции или управляемый ресурс равен null. -
InvalidTargetObjectTypeException: Значение поля 'targetType' не равно 'objectReference'.
-
ReflectionException- ОборачиваетException, возникшее при попытке вызвать метод. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException: Имя метода равно null.
getAttribute
public Object getAttribute(String attrName) throws AttributeNotFoundException, MBeanException, ReflectionException
- <0 Тогда значение не кэшируется и никогда не является действительным. Метод-получатель вызывается для атрибута. Поля 'value' и 'lastUpdatedTimeStamp' очищаются.
- =0 Тогда значение всегда кэшируется и всегда действительное. Возвращается поле 'value'. Если поле 'value' отсутствует, то метод-получатель вызывается для атрибута. Поля 'lastUpdatedTimeStamp' и 'value' устанавливаются в значение атрибута и текущую отметку времени.
- >0 Представляет количество секунд, в течение которых поле 'value' является действительным. Поле 'value' больше не является действительным, когда 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Сейчас.
- Когда 'value' действителен, возвращается 'value'.
- Когда 'value' больше не действителен, метод-получатель вызывается для атрибута. Поля 'lastUpdatedTimeStamp' и 'value' обновляются.
Примечание: из-за несоответствий в предыдущих версиях этой спецификации рекомендуется не использовать отрицательные или нулевые значения для currencyTimeLimit. Чтобы указать, что кэшированное значение никогда не является действительным, опустите поле currencyTimeLimit. Чтобы указать, что оно всегда действительное, используйте очень большое число для этого поля.
Если поле 'getMethod' содержит имя действительного описателя операции, то выполняется метод, описанный в описателе операции. Ответ метода возвращается как значение атрибута. Если операция завершается ошибкой или возвращаемое значение несовместимо с объявленным типом атрибута, будет выброшено исключение.
Если поле 'getMethod' не определено, то возвращается значение атрибута по умолчанию. Если возвращаемое значение несовместимо с объявленным типом атрибута, будет выброшено исключение.
Объявленный тип атрибута - это строка, возвращаемая MBeanAttributeInfo.getType(). Значение совместимо с этим типом, если выполняется одно из следующих условий:
- значение равно null;
- объявленное имя является именем примитивного типа (например, "int") и значение является экземпляром соответствующего обертывающего типа (например, java.lang.Integer);
- имя класса значения идентично объявленному имени;
- объявленное имя может быть загружено загрузчиком класса значения и генерирует класс, которому можно присвоить значение.
В этой реализации в каждом случае, когда необходимо вызвать getMethod, поскольку метод вызывается через стандартный метод "invoke", и, следовательно, необходима operationInfo, операция должна быть указана для этого getMethod, чтобы вызов работал правильно.
- Specified by:
-
getAttributeв интерфейсеDynamicMBean - Parameters:
-
attrName- Строка, определяющая имя атрибута, который нужно получить. Она должна соответствовать имени ModelMBeanAttributeInfo. - Returns:
- Значение полученного атрибута из поля 'value' описателя или из вызова операции в поле 'getMethod' описателя.
- Throws:
-
AttributeNotFoundException- Указанный атрибут недоступен в MBean. Следующие случаи могут привести к исключению AttributeNotFoundException:- Для Model MBean не найдено ModelMBeanInfo.
- Для указанного имени атрибута не найдено ModelMBeanAttributeInfo.
- Метод ModelMBeanAttributeInfo isReadable возвращает 'false'.
-
MBeanException- Оборачивает одно из следующих исключений:-
InvalidAttributeValueException: Неправильный тип значения был получен от метода-получателя атрибута или нет поля 'getMethod' в описателе для атрибута и нет значения по умолчанию. -
ServiceNotFoundException: Нет ModelMBeanOperationInfo, определённого для метода-получателя атрибута, или нет описателя, связанного с ModelMBeanOperationInfo, или управляемый ресурс равен null. -
InvalidTargetObjectTypeException: Значение поля 'targetType' не равно 'objectReference'. - Исключение, выброшенное методом-получателем управляемого объекта.
-
-
ReflectionException- ОборачиваетException, выброшенное при попытке вызвать метод-получатель. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException: Имя атрибута в параметре равно null. - See Also:
getAttributes
public AttributeList getAttributes(String[] attrNames)
- Specified by:
-
getAttributesв интерфейсеDynamicMBean - Parameters:
-
attrNames- Массив строк с именами атрибутов, которые нужно получить. - Returns:
- Массив полученных атрибутов.
- Throws:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. - See Also:
setAttribute
public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
Если currencyTimeLimit > 0, то новое значение атрибута кэшируется в поле 'value' описателя атрибута, а поле 'lastUpdatedTimeStamp' устанавливается на текущую метку времени.
Если поле persist описателя атрибута не равно null, то используется политика сохранения из описателя атрибута для управления сохранением атрибута в постоянном хранилище.
Сохранить объект MBean, если поле 'persistPolicy':
- != "never"
- = "always"
- = "onUpdate"
- = "onTimer" и сейчас > 'lastPersistTime' + 'persistPeriod'
- = "NoMoreOftenThan" и сейчас > 'lastPersistTime' + 'persistPeriod'
- = "never"
- = = "onTimer" && сейчас < 'lastPersistTime' + 'persistPeriod'
- = "onUnregister"
- = = "NoMoreOftenThan" и сейчас < 'lastPersistTime' + 'persistPeriod'
Модель ModelMBeanInfo объекта Model MBean сохраняется в файле.
- Specified by:
-
setAttributeв интерфейсеDynamicMBean - Parameters:
-
attribute- Экземпляр Attribute, содержащий имя атрибута для установки и значение, на которое он должен быть установлен. - Throws:
-
AttributeNotFoundException- Указанный атрибут недоступен в объекте MBean.
Следующие случаи могут привести к исключению AttributeNotFoundException:- Не найден ModelMBeanAttributeInfo для указанного атрибута.
- Метод isWritable атрибута ModelMBeanAttributeInfo возвращает 'false'.
-
InvalidAttributeValueException- Не определён описатель для указанного атрибута. -
MBeanException- Оборачивает одно из следующих исключений:- Исключение, сгенерированное методом установщика управляемого объекта.
-
ServiceNotFoundException, если в описателе для атрибута определено поле setMethod, и управляемый ресурс null; или если поле setMethod не определено, а кэширование атрибута отключено. Обратите внимание, что если поле getMethod также отсутствует, то кэширование автоматически включено. -
InvalidTargetObjectTypeExceptionЗначение поля 'targetType' не равно 'objectReference'. - Исключение, сгенерированное методом получения управляемого объекта.
-
ReflectionException- Оборачивает исключениеException, возникшее при попытке вызвать установщик. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException: Переданный в качестве параметра атрибут равен null. - See Also:
setAttributes
public AttributeList setAttributes(AttributeList attributes)
- Specified by:
-
setAttributesв интерфейсеDynamicMBean - Parameters:
-
attributes- Список атрибутов: идентификаторы атрибутов для установки и значения, на которые они должны быть установлены. - Returns:
- Массив атрибутов, которые были установлены, со значениями в экземплярах Attribute.
- Throws:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. - See Also:
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
- Specified by:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Parameters:
-
listener- Объект-слушатель, который будет обрабатывать уведомления, отправленные зарегистрированным объектом MBean. -
filter- Объект фильтра. Если null, фильтрация перед обработкой уведомлений не выполняется. -
handback- Контекст, который будет передан слушателю вместе с уведомлением при отправке уведомления. - Throws:
-
IllegalArgumentException- Слушатель не может быть null. - See Also:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
- Specified by:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Parameters:
-
listener- Имя слушателя, который обрабатывал уведомления, отправленные зарегистрированным объектом MBean. Этот метод удалит всю информацию, связанную с этим слушателем. - Throws:
-
ListenerNotFoundException- Слушатель не зарегистрирован в объекте MBean или равен null. - See Also:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitterУдаляет слушателя из этого объекта MBean. Объект MBean должен иметь слушатель, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, только если они null в удаляемом слушателе.
- Specified by:
-
removeNotificationListenerв интерфейсеNotificationEmitter - Parameters:
-
listener- Слушатель, который ранее был добавлен к этому объекту MBean. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Обратная ссылка, указанная при добавлении слушателя. - Throws:
-
ListenerNotFoundException- Слушатель не зарегистрирован в объекте MBean или не зарегистрирован с заданным фильтром и обратной ссылкой.
sendNotification
public void sendNotification(Notification ntfyObj) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Specified by:
-
sendNotificationв интерфейсеModelMBeanNotificationBroadcaster - Parameters:
-
ntfyObj- Уведомление, которое должно быть передано методу 'handleNotification' объекта-слушателя. - Throws:
-
MBeanException- Оборачивает исключение распределённой связи. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Объект уведомления, переданный в качестве параметра, равен null.
sendNotification
public void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Specified by:
-
sendNotificationв интерфейсеModelMBeanNotificationBroadcaster - Parameters:
-
ntfyText- Текст, который должен быть передан в уведомлении методу 'handleNotification' объекта-слушателя. Сгенерированное уведомление будет: тип "jmx.modelmbean.generic" источник этот экземпляр ModelMBean последовательность 1 - Throws:
-
MBeanException- Оборачивает исключение распределённой связи. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Текстовая строка уведомления, переданная в качестве параметра, равна null.
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
RequiredModelMBean может также отправлять два дополнительных уведомления:
- Одно с описателем
"name=GENERIC,descriptorType=notification,log=T,severity=6,displayName=jmx.modelmbean.generic" - Второе — стандартное уведомление об изменении атрибута с описателем
"name=ATTRIBUTE_CHANGE,descriptorType=notification,log=T,severity=6,displayName=jmx.attribute.change"
- Specified by:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Returns:
- MBeanNotificationInfo[]
addAttributeChangeNotificationListener
public void addAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName, Object inhandback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
ModelMBeanNotificationBroadcaster- Определено в:
-
addAttributeChangeNotificationListenerв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
inlistener- Объект-слушатель, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean. -
inAttributeName- Имя атрибута ModelMBean, для которого необходимо получать уведомления о изменениях. Если null, то все изменения атрибутов будут вызывать отправку attributeChangeNotification. -
inhandback- Контекст, который будет передан слушателю вместе с уведомлением при его генерации. - Исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Переданное имя атрибута не существует. -
IllegalArgumentException- Слушатель не может быть null. - См. также:
removeAttributeChangeNotificationListener
public void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
ModelMBeanNotificationBroadcaster- Определено в:
-
removeAttributeChangeNotificationListenerв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
inlistener- Имя слушателя, который обрабатывал уведомления, испускаемые зарегистрированным MBean. Этот метод удалит всю информацию, связанную с этим слушателем. -
inAttributeName- Атрибут, для которого слушатель больше не хочет получать уведомления attributeChangeNotifications. Если null, слушатель будет удален для всех attributeChangeNotifications. - Исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Если параметр inAttributeName не соответствует имени атрибута. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или равен null. - См. также:
sendAttributeChangeNotification
public void sendAttributeChangeNotification(AttributeChangeNotification ntfyObj) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Определено в:
-
sendAttributeChangeNotificationв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
ntfyObj- Уведомление, которое должно быть передано в метод 'handleNotification' объекта-слушателя. - Исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Объект AttributeChangeNotification, переданный в качестве параметра, равен null.
sendAttributeChangeNotification
public void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Определено в:
-
sendAttributeChangeNotificationв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
inOldVal- Исходное значение атрибута -
inNewVal- Текущее значение атрибутаThe constructed attributeChangeNotification will be: type "jmx.attribute.change" source this ModelMBean instance sequence 1 attributeName oldValue.getName() attributeType oldValue's class attributeOldValue oldValue.getValue() attributeNewValue newValue.getValue()
- Исключения:
-
MBeanException- Оборачивает исключение распределённой коммуникации. -
RuntimeOperationsException- Оборачивает IllegalArgumentException: Объект Attribute, переданный в качестве параметра, равен null или имена двух объектов Attribute в параметрах не совпадают.
getClassLoaderRepository
protected ClassLoaderRepository getClassLoaderRepository()
ClassLoaderRepository, который должен быть использован в этом объекте.- Возвращает:
- хранилище Class Loader.
preRegister
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
Для обеспечения правильной семантики во время выполнения RequireModelMBean, любой подкласс RequiredModelMBean, перегружающий или переопределяющий этот метод, должен вызвать super.preRegister(server, name) в своей реализации preRegister.
- Определено в:
-
preRegisterв интерфейсеMBeanRegistration - Параметры:
-
server- Сервер MBean, в котором будет зарегистрирован MBean. -
name- Имя объекта MBean. Это имя равно null, если параметр name для одного изcreateMBeanилиregisterMBeanметодов в интерфейсеMBeanServerравен null. В этом случае этот метод должен вернуть не-null ObjectName для нового MBean. - Возвращает:
- Имя, под которым должен быть зарегистрирован MBean. Это значение не должно быть null. Если параметр
nameне равен null, это обычно, но не обязательно, возвращаемое значение. - Исключения:
-
Exception- Это исключение будет перехвачено сервером MBean и переброшено какMBeanRegistrationException.
postRegister
public void postRegister(Boolean registrationDone)
Для обеспечения правильной семантики во время выполнения RequireModelMBean, любой подкласс RequiredModelMBean, перегружающий или переопределяющий этот метод, должен вызвать super.postRegister(registrationDone) в своей реализации postRegister.
- Определено в:
-
postRegisterв интерфейсеMBeanRegistration - Параметры:
-
registrationDone- Указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачно.
preDeregister
public void preDeregister() throws Exception
Для обеспечения правильной семантики во время выполнения RequireModelMBean, любой подкласс RequiredModelMBean, перегружающий или переопределяющий этот метод, должен вызвать super.preDeregister() в своей реализации preDeregister.
- Определено в:
-
preDeregisterв интерфейсеMBeanRegistration - Исключения:
-
Exception- Это исключение будет перехвачено сервером MBean и переброшено какMBeanRegistrationException.
postDeregister
public void postDeregister()
Для обеспечения правильной семантики во время выполнения RequireModelMBean, любой подкласс RequiredModelMBean, перегружающий или переопределяющий этот метод, должен вызвать super.postDeregister() в своей реализации postDeregister.
- Определено в:
-
postDeregisterв интерфейсеMBeanRegistration
© 1993, 2021, 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/17/docs/api/java.management/javax/management/modelmbean/RequiredModelMBean.html