Класс RequiredModelMBean
- Все реализованные интерфейсы:
DynamicMBean, MBeanRegistration, ModelMBean, ModelMBeanNotificationBroadcaster, NotificationBroadcaster, NotificationEmitter, PersistentMBean
public class RequiredModelMBean extends Object implements ModelMBean, MBeanRegistration, NotificationEmitter
Ресурсы Java, которыми требуется управлять, создают экземпляр RequiredModelMBean с помощью метода createMBean интерфейса MBeanServer. Затем ресурс задает MBeanInfo и дескрипторы для экземпляра RequiredModelMBean. Атрибуты и операции, предоставляемые через ModelMBeanInfo для ModelMBean, доступны из MBeans и коннекторов/адаптеров так же, как и другие MBeans. С помощью дескрипторов можно определить значения и методы в управляемом приложении и сопоставить их с атрибутами и операциями ModelMBean. Это сопоставление можно определять динамически и программно во время выполнения.
Каждый экземпляр RequiredModelMBean, созданный в MBeanServer, становится управляемым:
его атрибуты и операции становятся удаленно доступными через коннекторы/адаптеры, подключенные к этому MBeanServer.
Объект Java нельзя зарегистрировать в MBeanServer, если он не является совместимым с 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 и дескрипторы). |
void |
setModelMBeanInfo |
Инициализирует объект ModelMBean с помощью переданного ModelMBeanInfo. |
void |
store() |
Сохраняет текущее состояние этого экземпляра MBean в постоянном хранилище. |
Подробное описание конструкторов
RequiredModelMBean
public RequiredModelMBean() throws MBeanException, RuntimeOperationsException
RequiredModelMBean с пустым ModelMBeanInfo. MBeanInfo и дескрипторы RequiredModelMBean можно настроить с помощью метода setModelMBeanInfo(ModelMBeanInfo). После настройки MBeanInfo и дескрипторов RequiredModelMBean можно зарегистрировать в MBeanServer.
- Исключения:
-
MBeanException— оборачивает исключение распределенной связи. -
RuntimeOperationsException— оборачиваетRuntimeExceptionпри создании объекта.
RequiredModelMBean
public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
setModelMBeanInfo(ModelMBeanInfo). После настройки MBeanInfo и дескрипторов RequiredModelMBean можно зарегистрировать в MBeanServer.- Параметры:
-
mbi— объект ModelMBeanInfo, который будет использоваться RequiredModelMBean. Переданный ModelMBeanInfo клонируется и изменяется, как указано вsetModelMBeanInfo(ModelMBeanInfo) - Исключения:
-
MBeanException— оборачивает исключение распределенной связи. -
RuntimeOperationsException— оборачиваетIllegalArgumentException: переданный в параметре MBeanInfo имеет значение null.
Подробное описание методов
setModelMBeanInfo
public void setModelMBeanInfo(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
После настройки и установки ModelMBeanInfo (с дескрипторами) для 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.
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' > Now.
- Если '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' > Now.
- Если '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.
- Метод isReadable объекта ModelMBeanAttributeInfo возвращает '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. - См. также:
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 сохраняется в файле.
- Определено в:
-
setAttributeв интерфейсеDynamicMBean - Параметры:
-
attribute— экземпляр Attribute, содержащий имя атрибута, которому задается значение, и само значение. - Исключения:
-
AttributeNotFoundException— указанный атрибут недоступен в MBean.
К AttributeNotFoundException могут привести следующие случаи:- Для указанного атрибута не найден ModelMBeanAttributeInfo.
- Метод isWritable объекта ModelMBeanAttributeInfo возвращает 'false'.
-
InvalidAttributeValueException— для указанного атрибута не определен дескриптор. -
MBeanException— оборачивает одно из следующих исключений:- Исключение, выброшенное методом установки управляемого объекта.
-
ServiceNotFoundException, если в дескрипторе атрибута определено поле setMethod, а управляемый ресурс равен null; либо если поле setMethod не определено и для атрибута не включено кэширование. Обратите внимание: если поле getMethod также отсутствует, кэширование включается автоматически. -
InvalidTargetObjectTypeException: значение поля 'targetType' не равно 'objectReference'. - Исключение, выброшенное методом получения управляемого объекта.
-
ReflectionException— оборачиваетException, выброшенное при попытке вызвать метод установки. -
RuntimeOperationsException— оборачиваетIllegalArgumentException: атрибут в параметре равен null. - См. также:
setAttributes
public AttributeList setAttributes(AttributeList attributes)
- Определено в:
-
setAttributesв интерфейсеDynamicMBean - Параметры:
-
attributes— список атрибутов: идентификаторы атрибутов, которым задаются значения, и сами значения. - Возвращает:
- Массив заданных атрибутов с новыми значениями в экземплярах Attribute.
- Исключения:
-
RuntimeOperationsException— оборачиваетIllegalArgumentException: имя объекта в параметре или атрибуты в параметре равны null. - См. также:
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
- Определено в:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener— объект-слушатель, который будет обрабатывать уведомления, отправленные зарегистрированным MBean. -
filter— объект-фильтр. Если он равен null, перед обработкой уведомлений фильтрация выполняться не будет. -
handback— контекст, отправляемый слушателю вместе с уведомлением при его выдаче. - Исключения:
-
IllegalArgumentException— слушатель не может быть равен null. - См. также:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
- Определено в:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener— имя слушателя, обрабатывавшего уведомления, отправленные зарегистрированным MBean. Этот метод удаляет всю информацию, связанную с этим слушателем. - Исключения:
-
ListenerNotFoundException— слушатель не зарегистрирован в MBean или равен null. - См. также:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitterУдаляет слушателя из этого MBean. У MBean должен быть слушатель, точно соответствующий параметрам listener, filter и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть равны null только в том случае, если они также равны null у удаляемого слушателя.
- Определено в:
-
removeNotificationListenerв интерфейсеNotificationEmitter - Параметры:
-
listener— слушатель, ранее добавленный в этот MBean. -
filter— фильтр, указанный при добавлении слушателя. -
handback— handback, указанный при добавлении слушателя. - Исключения:
-
ListenerNotFoundException— слушатель не зарегистрирован в MBean либо не зарегистрирован с указанными фильтром и handback.
sendNotification
public void sendNotification(Notification ntfyObj) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Определено в:
-
sendNotificationв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
ntfyObj— уведомление, которое будет передано методу 'handleNotification' объекта-слушателя. - Исключения:
-
MBeanException— оборачивает исключение распределенной связи. -
RuntimeOperationsException— оборачивает IllegalArgumentException: объект Notification, переданный в параметре, равен null.
sendNotification
public void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
ModelMBeanNotificationBroadcaster- Определено в:
-
sendNotificationв интерфейсеModelMBeanNotificationBroadcaster - Параметры:
-
ntfyText— текст, который будет передан в уведомлении методу 'handleNotification' объекта-слушателя. Созданное уведомление будет иметь: тип "jmx.modelmbean.generic", источник — этот экземпляр ModelMBean, порядковый номер 1 - Исключения:
-
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"
- Определено в:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Возвращает:
- 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. В этом случае данный метод должен вернуть ненулевой 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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/modelmbean/RequiredModelMBean.html