Spec-Zone.ru › OpenJDK 21

Класс RequiredModelMBean

java.lang.Object
javax.management.modelmbean.RequiredModelMBean
Все реализованные интерфейсы:
DynamicMBean, MBeanRegistration, ModelMBean, ModelMBeanNotificationBroadcaster, NotificationBroadcaster, NotificationEmitter, PersistentMBean
public class RequiredModelMBean extends Object implements ModelMBean, MBeanRegistration, NotificationEmitter
Этот класс является реализацией ModelMBean. Соответствующая реализация ModelMBean должна поставляться с каждым JMX-агентом, и класс должен называться RequiredModelMBean.

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(ModelMBeanInfo mbi)
Создаёт объект RequiredModelMBean, используя переданный ModelMBeanInfo.

Краткое описание методов

Модификатор и тип Метод Описание
void addAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName, Object inhandback)
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя.
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя.
Object getAttribute(String attrName)
Возвращает значение определённого атрибута для данного ModelMBean.
AttributeList getAttributes(String[] attrNames)
Возвращает значения нескольких атрибутов в ModelMBean.
protected ClassLoaderRepository getClassLoaderRepository()
Возвращает хранилище загрузчиков классов, используемое для загрузки классов.
MBeanInfo getMBeanInfo()
Возвращает атрибуты, операции, конструкторы и уведомления, которые этот RequiredModelMBean экспонирует для управления.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив уведомлений, всегда генерируемых RequiredModelMBean.
Object invoke(String opName, Object[] opArgs, String[] sig)
Вызывает метод на RequiredModelMBean и возвращает результат выполнения метода.
void load()
Инициализирует экземпляр MBean данными, найденными для MBean в постоянном хранилище.
void postDeregister()
Позволяет MBean выполнить любые операции, необходимые после его удаления из сервера MBean.
void postRegister(Boolean registrationDone)
Позволяет MBean выполнить любые операции, необходимые после его регистрации в сервере MBean или после того, как регистрация не удалась.
void preDeregister()
Позволяет MBean выполнить любые операции, необходимые перед его удалением из сервера MBean.
ObjectName preRegister(MBeanServer server, ObjectName name)
Позволяет MBean выполнить любые операции, необходимые перед его регистрацией в сервере MBean.
void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName)
Удаляет слушателя для уведомлений об изменениях атрибутов из RequiredModelMBean.
void removeNotificationListener(NotificationListener listener)
Удаляет слушателя уведомлений из RequiredModelMBean.
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из этого MBean.
void sendAttributeChangeNotification(AttributeChangeNotification ntfyObj)
Отправляет уведомление об изменении атрибута зарегистрированным слушателям на ModelMBean.
void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal)
Отправляет уведомление об изменении атрибута, содержащее старое и новое значения атрибута, зарегистрированным слушателям AttributeChangeNotification на ModelMBean.
void sendNotification(String ntfyText)
Отправляет уведомление, содержащее переданную строку текста, зарегистрированным слушателям уведомлений на ModelMBean.
void sendNotification(Notification ntfyObj)
Отправляет уведомление, переданное зарегистрированным слушателям уведомлений на ModelMBean, как jmx.modelmbean.generic уведомление.
void setAttribute(Attribute attribute)
Устанавливает значение определенного атрибута имени ModelMBean.
AttributeList setAttributes(AttributeList attributes)
Устанавливает значения массива атрибутов этого ModelMBean.
void setManagedResource(Object mr, String mr_type)
Устанавливает дескриптор объекта, над которым будут выполняться все методы в данном интерфейсе управления ModelMBean (MBeanInfo и Descriptors).
void setModelMBeanInfo(ModelMBeanInfo mbi)
Инициализирует объект ModelMBean, используя переданный ModelMBeanInfo.
void store()
Захватывает текущее состояние этого экземпляра MBean и записывает его в постоянное хранилище.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

RequiredModelMBean

public RequiredModelMBean() throws MBeanException, RuntimeOperationsException
Создаёт RequiredModelMBean с пустым ModelMBeanInfo.

Информацию об MBean (MBeanInfo) и описатели (Descriptors) можно настроить, используя метод setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки информации об MBean и описателей, RequiredModelMBean можно зарегистрировать в MBeanServer.

Возбуждает:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает RuntimeException во время создания объекта.

RequiredModelMBean

public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
Создаёт объект RequiredModelMBean, используя переданный ModelMBeanInfo. Пока RequiredModelMBean не зарегистрирован в MBeanServer, информацию об MBean (MBeanInfo) и описатели (Descriptors) можно настроить, используя метод setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки информации об MBean и описателей, 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
Инициализирует объект ModelMBean, используя переданный ModelMBeanInfo. Этот метод позволяет установить настроенный ModelMBeanInfo для ModelMBean, пока он не зарегистрирован в MBeanServer.
После того, как 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
Устанавливает обработку объекта, к которому будут применяться все методы в этом интерфейсе управления ModelMBean (MBeanInfo и Descriptors).
Определено в:
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()
Возвращает атрибуты, операции, конструкторы и уведомления, которые этот RequiredModelMBean предоставляет для управления.
Определено в:
getMBeanInfo в интерфейсе DynamicMBean
Возвращает:
Экземпляр ModelMBeanInfo, позволяющий получить все атрибуты, операции и уведомления этого MBean.

invoke

public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException
Вызывает метод на или через RequiredModelMBean и возвращает результат выполнения метода.

Если заданный метод для вызова, вместе с предоставленной сигнатурой, соответствует одному из доступных методов 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
Возвращает значение определённого атрибута для этого ModelMBean. Последнее возвращенное значение атрибута может быть кэшировано в описателе атрибута. Действительное значение будет в поле 'value', если оно есть. Если поле 'currencyTimeLimit' в описателе:
  • <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:
  • setAttribute(javax.management.Attribute)

getAttributes

public AttributeList getAttributes(String[] attrNames)
Возвращает значения нескольких атрибутов в ModelMBean. Выполняет getAttribute для каждого имени атрибута в массиве attrNames, переданном в параметре.
Specified by:
getAttributes в интерфейсе DynamicMBean
Parameters:
attrNames - Массив строк с именами атрибутов, которые должны быть получены.
Returns:
Массив полученных атрибутов.
Throws:
RuntimeOperationsException - Оборачивает исключение IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
See Also:
  • setAttributes(javax.management.AttributeList)

setAttribute

public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
Устанавливает значение определённого атрибута именованного объекта ModelMBean. Если поле 'setMethod' в описателе атрибута содержит имя допустимого описателя операции, то выполняется метод, описываемый этим описателем операции. В этой реализации описатель операции должен быть правильно указан и назначен в modelMBeanInfo, чтобы 'setMethod' работал корректно. Ответ от метода устанавливается в качестве значения атрибута в описателе.

Если currencyTimeLimit > 0, то новое значение атрибута кэшируется в поле 'value' описателя атрибута, а поле 'lastUpdatedTimeStamp' устанавливается в текущую отметку времени.

Если поле persist в описателе атрибута не равно null, то для хранения атрибута используется политика сохранения из описателя атрибута.
Сохранять объект MBean, если поле 'persistPolicy' имеет значение:

  • != "never"
  • = "always"
  • = "onUpdate"
  • = "onTimer" и now > 'lastPersistTime' + 'persistPeriod'
  • = "NoMoreOftenThan" и now > 'lastPersistTime' + 'persistPeriod'
Не сохранять объект MBean, если поле 'persistPolicy' имеет значение:
  • = "never"
  • = = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
  • = "onUnregister"
  • = = "NoMoreOftenThan" и now < 'lastPersistTime' + 'persistPeriod'

Модель ModelMBeanInfo хранится в файле.

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:
  • getAttribute(java.lang.String)

setAttributes

public AttributeList setAttributes(AttributeList attributes)
Устанавливает значения массива атрибутов этого объекта ModelMBean. Выполняет метод setAttribute() для каждого атрибута в списке.
Specified by:
setAttributes в интерфейсе DynamicMBean
Parameters:
attributes - Список атрибутов: идентификаторы атрибутов, которые нужно установить, и значения, на которые нужно установить.
Returns:
Массив установленных атрибутов с их новыми значениями в экземплярах атрибутов.
Throws:
RuntimeOperationsException - Оборачивает исключение IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
See Also:
  • getAttributes(java.lang.String[])

addNotificationListener

public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
Регистрирует объект, реализующий интерфейс NotificationListener, как слушатель. Метод 'handleNotification()' этого объекта будет вызываться при каждом уведомлении, выпущенном через или объектом ModelMBean. Это не включает уведомления об изменении атрибутов. Их необходимо регистрировать отдельно.
Specified by:
addNotificationListener в интерфейсе NotificationBroadcaster
Parameters:
listener - Объект слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным объектом MBean.
filter - Объект фильтра. Если null, фильтрация не будет выполняться перед обработкой уведомлений.
handback - Контекст, который будет отправлен слушателю с уведомлением при его отправке.
Throws:
IllegalArgumentException - Слушатель не может быть null.
See Also:
  • removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Удаляет слушателя уведомлений из RequiredModelMBean.
Specified by:
removeNotificationListener в интерфейсе NotificationBroadcaster
Parameters:
listener - Имя слушателя, который обрабатывал уведомления, испускаемые зарегистрированным объектом MBean. Этот метод удалит всю информацию, связанную с этим слушателем.
Throws:
ListenerNotFoundException - Слушатель не зарегистрирован в объекте MBean или равен null.
See Also:
  • addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

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
Отправляет уведомление, которое передаётся зарегистрированным слушателям уведомлений в ModelMBean в качестве уведомления jmx.modelmbean.generic.
Specified by:
sendNotification в интерфейсе ModelMBeanNotificationBroadcaster
Parameters:
ntfyObj - Уведомление, которое должно быть передано методу 'handleNotification' объекта слушателя.
Throws:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает исключение IllegalArgumentException: Объект уведомления в параметре равен null.

sendNotification

public void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Отправляет уведомление, содержащее строку текста, передаваемую зарегистрированным слушателям уведомлений в ModelMBean.
Specified by:
sendNotification в интерфейсе ModelMBeanNotificationBroadcaster
Parameters:
ntfyText - Текст, который должен быть передан в уведомлении методу 'handleNotification' объекта слушателя. Сконструированное уведомление будет иметь тип "jmx.modelmbean.generic", источник этого экземпляра ModelMBean и последовательность 1.
Throws:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает исключение IllegalArgumentException: Строка текста уведомления в параметре равна null.

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив уведомлений, всегда генерируемых объектом RequiredModelMBean.

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
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя. Метод 'handleNotification()' этого объекта будет вызываться при генерации любого уведомления attributeChangeNotification через или от ModelMBean. Это не включает другие уведомления. Они должны быть зарегистрированы независимо. Для этого имени атрибута будет сгенерировано уведомление AttributeChangeNotification.
Определено в:
addAttributeChangeNotificationListener в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
inlistener - Объект-слушатель, который будет обрабатывать уведомления, исходящие от зарегистрированного MBean.
inAttributeName - Имя атрибута ModelMBean, для которого требуется получать уведомления о изменениях. Если null, то все изменения атрибутов будут вызывать issue уведомления attributeChangeNotification.
inhandback - Контекст, который будет передан слушателю вместе с уведомлением при его генерации.
Исключения:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает IllegalArgumentException. Имя атрибута, переданное в качестве параметра, не существует.
IllegalArgumentException - Слушатель не может быть null.
См. также:
  • ModelMBeanNotificationBroadcaster.removeAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String)

removeAttributeChangeNotificationListener

public void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Удаляет слушателя уведомлений attributeChangeNotifications из RequiredModelMBean.
Определено в:
removeAttributeChangeNotificationListener в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
inlistener - Имя слушателя, который обрабатывал уведомления, исходящие от зарегистрированного MBean. Этот метод удалит всю информацию, связанную с этим слушателем.
inAttributeName - Атрибут, для которого слушатель больше не хочет получать уведомления attributeChangeNotifications. Если null, слушатель будет удален для всех attributeChangeNotifications.
Исключения:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает IllegalArgumentException, если параметр inAttributeName не соответствует имени атрибута.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или равен null.
См. также:
  • ModelMBeanNotificationBroadcaster.addAttributeChangeNotificationListener(javax.management.NotificationListener, java.lang.String, java.lang.Object)

sendAttributeChangeNotification

public void sendAttributeChangeNotification(AttributeChangeNotification ntfyObj) throws MBeanException, RuntimeOperationsException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Отправляет уведомление attributeChangeNotification, переданное в качестве параметра, зарегистрированным слушателям attributeChangeNotification на ModelMBean.
Определено в:
sendAttributeChangeNotification в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
ntfyObj - Уведомление, которое должно быть передано методу 'handleNotification' объекта слушателя.
Исключения:
MBeanException - Оборачивает исключение распределённой коммуникации.
RuntimeOperationsException - Оборачивает IllegalArgumentException: Объект AttributeChangeNotification, переданный в качестве параметра, равен null.

sendAttributeChangeNotification

public void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal) throws MBeanException, RuntimeOperationsException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Отправляет уведомление attributeChangeNotification, содержащее старое и новое значение атрибута, зарегистрированным слушателям AttributeChangeNotification на ModelMBean.
Определено в:
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
Позволяет MBean выполнить необходимые операции перед регистрацией в сервере MBean. Если имя MBean не указано, MBean может предоставить имя для своей регистрации. Если возникает любое исключение, MBean не будет зарегистрирован в сервере MBean.

Для обеспечения правильной семантики выполнения 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)
Позволяет MBean выполнить любые необходимые операции после регистрации в сервере MBean или после того, как регистрация завершилась неудачно.

Для обеспечения правильной семантики выполнения RequireModelMBean, любой подкласс RequiredModelMBean, переопределяющий или перегружающий этот метод, должен вызвать super.postRegister(registrationDone) в своей собственной реализации postRegister.

Определено в:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone - Указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что фаза регистрации завершилась неудачно.

preDeregister

public void preDeregister() throws Exception
Позволяет MBean выполнить необходимые операции перед тем, как сервер MBean его дезактивирует.

Для обеспечения правильной семантики выполнения RequireModelMBean, любой подкласс RequiredModelMBean, переопределяющий или перегружающий этот метод, должен вызвать super.preDeregister() в своей собственной реализации preDeregister.

Определено в:
preDeregister в интерфейсе MBeanRegistration
Исключения:
Exception - Это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postDeregister

public void postDeregister()
Позволяет MBean выполнить любые необходимые операции после его дезактивации в сервере MBean.

Для обеспечения правильной семантики выполнения RequireModelMBean, любой подкласс RequiredModelMBean, переопределяющий или перегружающий этот метод, должен вызвать super.postDeregister() в своей собственной реализации postDeregister.

Определено в:
postDeregister в интерфейсе MBeanRegistration

© 1993, 2023, 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/21/docs/api/java.management/javax/management/modelmbean/RequiredModelMBean.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API