Интерфейс 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 прослушивателя с уведомлением и объектом обратной связи, переданным в addNotificationListener.
Если один и тот же прослушиватель добавлен несколько раз, он учитывается столько раз, сколько был добавлен. Часто полезно добавлять один и тот же прослушиватель с разными фильтрами или объектами обратной связи.
Реализации этого интерфейса могут различаться тем, в каком потоке вызываются методы фильтров и прослушивателей.
Если при вызове метода фильтра или прослушивателя выбрасывается Exception, это исключение не должно препятствовать вызову других прослушивателей. Однако если при вызове метода выбрасывается Error, рекомендуется на этом этапе прекратить обработку уведомления; если есть возможность передать Error отправителю уведомления, это следует сделать.
В новом коде вместо интерфейса NotificationBroadcaster следует использовать этот интерфейс.
При реализации этого интерфейса и NotificationBroadcaster следует внимательно относиться к синхронизации. В частности, реализации не следует удерживать какие-либо блокировки во время вызова прослушивателя. Чтобы учесть возможность изменения списка прослушивателей во время рассылки уведомления, рекомендуется использовать для этого списка CopyOnWriteArrayList.
- Начиная с:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
Методы, объявленные в интерфейсе 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— объект обратной связи, указанный при добавлении прослушивателя. - Выбрасывает:
-
ListenerNotFoundException— прослушиватель не зарегистрирован в 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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/NotificationEmitter.html