Spec-Zone.ru › OpenJDK 24

Класс 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, доступны из MBeans, коннекторов/адаптеров, таких как другие MBeans. С помощью 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)
Отправляет уведомление об изменении атрибута, содержащее старое и новое значение атрибута, зарегистрированным слушателям уведомлений об изменении атрибута в 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.

MBeanInfo и описатели RequiredModelMBean можно настроить с помощью метода setModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo). После настройки MBeanInfo и описателей RequiredModelMBean можно зарегистрировать в MBeanServer.

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

RequiredModelMBean

public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
Создаёт объект RequiredModelMBean, используя переданный ModelMBeanInfo. Пока RequiredModelMBean не зарегистрирован в MBeanServer, его MBeanInfo и описатели можно настроить с помощью метода 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
Инициализирует объект 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 и описатели).
Задано:
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.

Вызвать

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. Чтобы указать, что оно всегда действительное, используйте очень большое число для этого поля.

Определено в:
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
Возвращает значение определённого атрибута, определённого для этого 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, чтобы вызов работал правильно.

Определено в:
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.
См. также:
  • setAttribute(javax.management.Attribute)

getAttributes

public AttributeList getAttributes(String[] attrNames)
Возвращает значения нескольких атрибутов в ModelMBean. Выполняет getAttribute для каждого имени атрибута в массиве attrNames, переданном в.
Определено в:
getAttributes в интерфейсе DynamicMBean
Параметры:
attrNames - Массив строк с именами атрибутов, которые нужно получить.
Возвращает:
Массив полученных атрибутов.
Имеет дело с:
RuntimeOperationsException - Обёртка IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
См. также:
  • 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 объекта 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:
  • 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 будет генерироваться для этого attributeName.
Указано в:
addAttributeChangeNotificationListener в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
inlistener - Объект прослушивателя, который будет обрабатывать уведомления, отправляемые зарегистрированным MBean.
inAttributeName - Имя атрибута ModelMBean, для которого необходимо получать уведомления об изменениях. Если null, то все изменения атрибутов приведут к отправке 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. В этом случае этот метод должен вернуть не 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, 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

Spec-Zone.ru

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