Интерфейс 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 с уведомлением и объектом обратной связи, предоставленным addNotificationListener.
Если один и тот же слушатель добавляется более одного раза, он учитывается столько раз, сколько раз его добавляли. Часто бывает полезно добавить одного и того же слушателя с различными фильтрами или объектами обратной связи.
Реализации этого интерфейса могут отличаться в отношении потока, в котором вызываются методы фильтров и слушателей.
Если вызов метода фильтра или слушателя вызывает исключение Exception, это исключение не должно препятствовать вызову других слушателей. Однако, если вызов метода вызывает Error, рекомендуется остановить обработку уведомления на этом этапе, и, если это возможно, переслать Error отправителю уведомления.
Новый код следует использовать интерфейс NotificationEmitter вместо этого.
Реализации этого интерфейса и NotificationEmitter должны быть внимательны к синхронизации. В частности, не рекомендуется удерживать какие-либо блокировки во время вызова слушателя. Для решения проблемы возможного изменения списка слушателей во время отправки уведомления, хорошей стратегией является использование CopyOnWriteArrayList для этого списка.
- С:
- 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- Параметр слушателя равен null. - См. также:
removeNotificationListener(javax.management.NotificationListener)
removeNotificationListener
void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
Удаляет слушателя из данного MBean. Если слушатель был зарегистрирован с различными объектами обратной связи или фильтрами уведомлений, все соответствующие записи будут удалены.
- Параметры:
-
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, 2020, 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/11/docs/api/java.management/javax/management/NotificationBroadcaster.html