Spec-Zone.ru › OpenJDK 25

Класс 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 Agent, а класс должен называться 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

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

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

Определено в:
getAttribute в интерфейсе DynamicMBean
Параметры:
attrName — строка, задающая имя извлекаемого атрибута. Оно должно совпадать с именем ModelMBeanAttributeInfo.
Возвращает:
Значение извлеченного атрибута из поля 'value' дескриптора или в результате вызова операции, указанной в поле 'getMethod' дескриптора.
Исключения:
AttributeNotFoundException — указанный атрибут недоступен в MBean. К AttributeNotFoundException могут привести следующие случаи:
  • Для Model MBean не найден ModelMBeanInfo.
  • Для указанного имени атрибута не найден ModelMBeanAttributeInfo.
  • Метод isReadable объекта ModelMBeanAttributeInfo возвращает 'false'.
MBeanException — оборачивает одно из следующих исключений:
  • InvalidAttributeValueException: метод получения атрибута вернул значение неверного типа либо в дескрипторе атрибута не определено поле 'getMethod' и значение по умолчанию отсутствует.
  • ServiceNotFoundException: для метода получения атрибута не определен ModelMBeanOperationInfo, с ModelMBeanOperationInfo не связан дескриптор либо управляемый ресурс имеет значение null.
  • InvalidTargetObjectTypeException: значение поля 'targetType' не равно 'objectReference'.
  • Исключение, выброшенное методом получения управляемого объекта.
ReflectionException — оборачивает Exception, выброшенное при попытке вызвать метод получения.
RuntimeOperationsException — оборачивает IllegalArgumentException: имя атрибута в параметре равно null.
См. также:
  • setAttribute(javax.management.Attribute)

getAttributes

public AttributeList getAttributes(String[] attrNames)
Возвращает значения нескольких атрибутов в ModelMBean. Выполняет getAttribute для каждого имени атрибута из переданного массива attrNames.
Определено в:
getAttributes в интерфейсе DynamicMBean
Параметры:
attrNames — массив строк с именами извлекаемых атрибутов.
Возвращает:
Массив извлеченных атрибутов.
Исключения:
RuntimeOperationsException — оборачивает IllegalArgumentException: имя объекта в параметре или атрибуты в параметре равны 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 сохраняется в файле.

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

addNotificationListener

public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
Регистрирует объект, реализующий интерфейс NotificationListener, в качестве слушателя. Метод 'handleNotification()' этого объекта будет вызываться при выдаче любого уведомления через ModelMBean или от нее. Это не относится к уведомлениям attributeChangeNotifications. Для них необходимо регистрироваться отдельно.
Определено в:
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 или самим ModelMBean. Другие уведомления не включаются. Для них необходимо выполнить отдельную регистрацию. Для этого attributeName будет создано уведомление 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 - Атрибут, для которого слушатель больше не хочет получать attributeChangeNotifications. Если значение равно null, слушатель будет удален для всех attributeChangeNotifications.
Исключения:
MBeanException - Оборачивает исключение распределенного взаимодействия.
RuntimeOperationsException - Оборачивает IllegalArgumentException, если параметр inAttributeName не соответствует имени атрибута.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или имеет значение null.
См. также:
  • ModelMBeanNotificationBroadcaster.addAttributeChangeNotificationListener(NotificationListener, String, Object)

sendAttributeChangeNotification

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

sendAttributeChangeNotification

public void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal) throws MBeanException, RuntimeOperationsException
Описание скопировано из интерфейса: ModelMBeanNotificationBroadcaster
Отправляет зарегистрированным в ModelMBean слушателям AttributeChangeNotification уведомление 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, если параметр 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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/modelmbean/RequiredModelMBean.html

Spec-Zone.ru

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