Интерфейс NotificationEmitter
- Все суперинтерфейсы:
NotificationBroadcaster
- Все известные реализующие классы:
-
CounterMonitor,GaugeMonitor,JMXConnectorServer,MBeanServerDelegate,Monitor,NotificationBroadcasterSupport,RelationService,RequiredModelMBean,RMIConnectorServer,StandardEmitterMBean,StringMonitor,Timer
public interface NotificationEmitter extends NotificationBroadcaster
Интерфейс, реализуемый MBean, который испускает уведомления. Он позволяет зарегистрировать слушателя в MBean в качестве слушателя уведомлений.
Доставка уведомлений
Когда MBean испускает уведомление, он рассматривает каждого слушателя, который был добавлен с помощью addNotificationListener и не был удален позже с помощью removeNotificationListener. Если для этого слушателя был указан фильтр, и если метод фильтра isNotificationEnabled возвращает false, слушатель игнорируется. В противном случае, вызывается метод слушателя handleNotification с уведомлением и объектом handback, который был предоставлен addNotificationListener.
Если один и тот же слушатель добавляется более одного раза, он рассматривается столько раз, сколько раз он был добавлен. Часто полезно добавить одного и того же слушателя с различными фильтрами или объектами handback.
Реализации этого интерфейса могут отличаться в отношении потока, в котором вызываются методы фильтров и слушателей.
Если вызов метода фильтра или слушателя генерирует Exception, то эта исключение не должно препятствовать вызову других слушателей. Однако, если вызов метода генерирует Error, рекомендуется остановить обработку уведомления на этом этапе, и если возможно, распространить Error на отправителя уведомления, это следует сделать.
Этот интерфейс следует использовать новому коду вместо интерфейса NotificationBroadcaster.
Реализации этого интерфейса и интерфейса NotificationBroadcaster должны быть осторожны в отношении синхронизации. В частности, не рекомендуется, чтобы реализация удерживала какие-либо блокировки во время вызова слушателя. Чтобы справиться с возможностью изменения списка слушателей во время передачи уведомления, хорошей стратегией является использование CopyOnWriteArrayList для этого списка.
- С:
- 1.5
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback) |
Удаляет слушателя из этого MBean. |
Методы, объявленные в интерфейсе javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
Методы
removeNotificationListener
void removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
throws ListenerNotFoundException
Удаляет слушателя из этого MBean. MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, если и только если они равны null в удаляемом слушателе.
- Параметры:
-
listener- Слушатель, который ранее был добавлен в этот MBean. -
filter- Фильтр, который был указан при добавлении слушателя. -
handback- Handback, который был указан при добавлении слушателя. - Исключения:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или он не зарегистрирован с заданным фильтром и handback.
© 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/NotificationEmitter.html