Интерфейс 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, рекомендуется остановить обработку уведомления на этом этапе, и если возможно, распространить это исключение к отправителю уведомления.
Этот интерфейс следует использовать новому коду вместо интерфейса NotificationBroadcaster.
Реализации этого интерфейса и NotificationBroadcaster должны быть осторожны в отношении синхронизации. В частности, не рекомендуется удерживать какие-либо блокировки во время вызова слушателя. Для обработки возможности изменения списка слушателей во время отправки уведомления рекомендуется использовать CopyOnWriteArrayList для этого списка.
- Since:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
removeNotificationListener |
Удаляет слушателя из этого 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 в удаляемом слушателе.
- Parameters:
-
listener- Слушатель, который был ранее добавлен в этот MBean. -
filter- Фильтр, который был указан при добавлении слушателя. -
handback- Объект handback, который был указан при добавлении слушателя. - Throws:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean, или он не зарегистрирован с указанным фильтром и handback.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/NotificationEmitter.html