Spec-Zone.ru › OpenJDK 24

Интерфейс NotificationBroadcaster

Все известные подинтерфейсы:
ModelMBean, ModelMBeanNotificationBroadcaster, NotificationEmitter
Все известные реализующие классы:
CounterMonitor, GaugeMonitor, JMXConnectorServer, MBeanServerDelegate, Monitor, NotificationBroadcasterSupport, RelationService, RequiredModelMBean, RMIConnectorServer, StandardEmitterMBean, StringMonitor, Timer
public interface NotificationBroadcaster

Интерфейс, реализуемый MBean, который испускает уведомления. Он позволяет регистрировать слушателя в качестве слушателя уведомлений для MBean.

Распространение уведомлений

Когда MBean испускает уведомление, он рассматривает каждого слушателя, который был добавлен с помощью addNotificationListener и не был удален с помощью removeNotificationListener. Если с этим слушателем был предоставлен фильтр, и метод фильтра isNotificationEnabled возвращает false, слушатель игнорируется. В противном случае, вызывается метод слушателя handleNotification с уведомлением и объектом handback, который был предоставлен addNotificationListener.

Если один и тот же слушатель добавляется более одного раза, он учитывается столько раз, сколько раз он был добавлен. Часто бывает полезно добавлять одного и того же слушателя с различными фильтрами или объектами handback.

Реализации этого интерфейса могут отличаться в отношении потока, в котором вызываются методы фильтров и слушателей.

Если вызов метода фильтра или слушателя вызывает Exception, то эта исключительная ситуация не должна препятствовать вызову других слушателей. Однако, если вызов метода вызывает Error, то рекомендуется остановить обработку уведомления на этом этапе, и, если это возможно, передать Error отправителю уведомления.

Новый код должен использовать интерфейс NotificationEmitter вместо этого.

Реализации этого интерфейса и NotificationEmitter должны быть внимательны к синхронизации. В частности, не рекомендуется удерживать какие-либо блокировки во время вызова слушателя. Для решения проблемы, связанной с возможным изменением списка слушателей во время распространения уведомления, хорошая стратегия заключается в использовании CopyOnWriteArrayList для этого списка.

Since:
1.5

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

Модификатор и тип Метод Описание
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя к этому MBean.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, указывающий для каждого уведомления, которое может отправлять этот MBean, имя Java-класса уведомления и тип уведомления.
void removeNotificationListener(NotificationListener listener)
Удаляет слушателя из этого MBean.

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

addNotificationListener

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

removeNotificationListener

void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с различными объектами handback или фильтрами уведомлений, все записи, соответствующие слушателю, будут удалены.
Параметры:
listener - Слушатель, который был ранее добавлен в этот MBean.
Исключение:
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
См. также:
  • addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
  • NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

getNotificationInfo

MBeanNotificationInfo[] getNotificationInfo()

Возвращает массив, указывающий для каждого уведомления, которое может отправлять этот MBean, имя Java-класса уведомления и тип уведомления.

Не является ошибкой, если MBean отправляет уведомления, не описанные в этом массиве. Однако некоторые клиенты сервера MBean могут зависеть от того, что массив является полным для их корректной работы.

Возвращает:
массив возможных уведомлений.

© 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/NotificationBroadcaster.html

Spec-Zone.ru

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