Класс 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, доступны из MBeans, коннекторов/адаптеров, таких как другие MBeans. С помощью 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 |
Отправляет уведомление об изменении атрибута, содержащее старое и новое значение атрибута, зарегистрированным слушателям уведомлений об изменении атрибута в 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 можно зарегистрировать в MBeanServer.
- Возникает:
-
MBeanException- Обёртка исключения распределённой коммуникации. -
RuntimeOperationsException- ОбёрткаRuntimeExceptionво время создания объекта.
RequiredModelMBean
public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки MBeanInfo и описателей RequiredModelMBean его можно зарегистрировать в MBeanServer.- Параметры:
-
mbi- Объект ModelMBeanInfo, который будет использоваться RequiredModelMBean. Переданный ModelMBeanInfo клонируется и изменяется в соответствии сsetModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo) - Возникает:
-
MBeanException- Обёртка исключения распределённой коммуникации. -
RuntimeOperationsException- Обёртка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 предоставит свои собственные значения по умолчанию для ModelMBeanNotificationInfo этих уведомлений.
- Задано:
-
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.
Вызвать
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. Чтобы указать, что оно всегда действительное, используйте очень большое число для этого поля.
- Определено в:
-
invokeв интерфейсеDynamicMBean - Параметры:
-
opName- Имя вызываемого метода. Имя может быть полным квалифицированным именем метода, включая имя класса, или только именем метода, если имя класса определено в поле 'class' описателя операции. -
opArgs- Массив, содержащий параметры, которые должны быть установлены при вызове операции -
sig- Массив, содержащий сигнатуру операции. Объекты классов будут загружены с помощью того же загрузчика классов, что и тот, который использовался для загрузки MBean, на котором была вызвана операция. - Возвращает:
- Объект, возвращённый методом, который представляет собой результат вызова метода на указанном управляемом ресурсе.
- Имеет дело с:
-
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, чтобы вызов работал правильно.
- Определено в:
-
getAttributeв интерфейсеDynamicMBean - Параметры:
-
attrName- Строка, определяющая имя атрибута, который нужно получить. Она должна соответствовать имени ModelMBeanAttributeInfo. - Возвращает:
- Значение извлечённого атрибута из поля 'value' описателя или из вызова операции в поле 'getMethod' описателя.
- Имеет дело с:
-
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. - См. также:
getAttributes
public AttributeList getAttributes(String[] attrNames)
- Определено в:
-
getAttributesв интерфейсеDynamicMBean - Параметры:
-
attrNames- Массив строк с именами атрибутов, которые нужно получить. - Возвращает:
- Массив полученных атрибутов.
- Имеет дело с:
-
RuntimeOperationsException- ОбёрткаIllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. - См. также:
setAttribute
public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
Если currencyTimeLimit > 0, то новое значение атрибута кешируется в поле 'value' описателя атрибута, а поле 'lastUpdatedTimeStamp' устанавливается на текущую временную метку.
Если поле 'persist' в описателе атрибута не равно null, то используется политика сохранения из описателя атрибута для сохранения атрибута в постоянном хранилище.
Сохранить объект MBean, если поле 'persistPolicy' имеет значение:
- != "never"
- = "always"
- = "onUpdate"
- = "onTimer" и now > 'lastPersistTime' + 'persistPeriod'
- = "NoMoreOftenThan" и now > 'lastPersistTime' + 'persistPeriod'
- = "never"
- = = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
- = "onUnregister"
- = = "NoMoreOftenThan" и now < 'lastPersistTime' + 'persistPeriod'
Информация ModelMBeanInfo объекта Model MBean сохраняется в файле.
- Specified by:
-
setAttributeв интерфейсеDynamicMBean - Parameters:
-
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:
- Массив атрибутов, которые были установлены, с их новыми значениями в экземплярах атрибутов.
- 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, который должен использоваться в этом объекте.- Возвращает:
- репозиторий загрузчика классов.
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, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/modelmbean/RequiredModelMBean.html