Spec-Zone.ru › OpenJDK 27

Класс 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 интерфейса 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(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 и дескрипторы).
void setModelMBeanInfo(ModelMBeanInfo mbi)
Инициализирует объект ModelMBean с использованием переданного ModelMBeanInfo.
void store()
Сохраняет текущее состояние этого экземпляра MBean в постоянном хранилище.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

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

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

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

Определено в:
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.
См. также:
  • 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' дескриптора атрибута содержит имя допустимого дескриптора операции, выполняется метод, описанный этим дескриптором операции. В этой реализации для корректной работы 'setMethod' дескриптор операции должен быть задан правильно и присвоен modelMBeanInfo. Ответ метода устанавливается в качестве значения атрибута в дескрипторе.

Если 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 сохраняется в файле.

Определено в:
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.
См. также:
  • getAttribute(java.lang.String)

setAttributes

public AttributeList setAttributes(AttributeList attributes)
Задаёт значения массива атрибутов этого ModelMBean. Выполняет метод setAttribute() для каждого атрибута в списке.
Определено в:
setAttributes в интерфейсе DynamicMBean
Параметры:
attributes — список атрибутов: идентификаторы атрибутов, значения которых требуется задать.
Возвращает:
Массив заданных атрибутов с новыми значениями в экземплярах Attribute.
Исключения:
RuntimeOperationsException — оборачивает IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null.
См. также:
  • getAttributes(String[])

addNotificationListener

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

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Удаляет слушателя уведомлений RequiredModelMBean.
Определено в:
removeNotificationListener в интерфейсе NotificationBroadcaster
Параметры:
listener — имя слушателя, обрабатывавшего уведомления, отправленные зарегистрированным MBean. Этот метод удаляет все сведения, связанные с этим слушателем.
Исключения:
ListenerNotFoundException — слушатель не зарегистрирован в MBean или равен null.
См. также:
  • addNotificationListener(NotificationListener, NotificationFilter, Object)

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

sendNotification

public void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Отправляет уведомление, содержащее переданную текстовую строку, зарегистрированным слушателям уведомлений ModelMBean.
Определено в:
sendNotification в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
ntfyText — текст, передаваемый в уведомлении методу 'handleNotification' объекта-слушателя. Создаваемое уведомление будет иметь: тип "jmx.modelmbean.generic", источник — этот экземпляр ModelMBean, порядковый номер — 1
Исключения:
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"
Таким образом, эти два уведомления всегда добавляются к уведомлениям, указанным приложением.
Определено в:
getNotificationInfo в интерфейсе NotificationBroadcaster
Возвращает:
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, любое изменение атрибута приведёт к созданию attributeChangeNotification.
inhandback — контекст, который будет передан прослушивателю вместе с уведомлением.
Исключения:
MBeanException — обёртывает исключение распределённого взаимодействия.
RuntimeOperationsException — обёртывает IllegalArgumentException. Имя атрибута, переданное в параметре, не существует.
IllegalArgumentException — прослушиватель не может иметь значение null.
См. также:
  • ModelMBeanNotificationBroadcaster.removeAttributeChangeNotificationListener(NotificationListener, String)

removeAttributeChangeNotificationListener

public void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Удаляет прослушиватель уведомлений attributeChangeNotification из RequiredModelMBean.
Указано в:
removeAttributeChangeNotificationListener в интерфейсе ModelMBeanNotificationBroadcaster
Параметры:
inlistener — имя прослушивателя, который обрабатывал уведомления, отправленные зарегистрированным MBean. Этот метод удаляет все сведения, связанные с данным прослушивателем.
inAttributeName — атрибут, уведомления attributeChangeNotification об изменениях которого прослушиватель больше не хочет получать. Если значение равно null, прослушиватель будет удалён для всех уведомлений attributeChangeNotification.
Исключения:
MBeanException — обёртывает исключение распределённого взаимодействия.
RuntimeOperationsException — обёртывает IllegalArgumentException. Параметр inAttributeName не соответствует имени атрибута.
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean или имеет значение null.
См. также:
  • ModelMBeanNotificationBroadcaster.addAttributeChangeNotificationListener(NotificationListener, String, 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 в ModelMBean уведомление attributeChangeNotification, содержащее старое и новое значения атрибута.
Указано в:
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, если параметр имени в одном из методов 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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