Интерфейс 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 |
Удаляет слушателя из этого MBean. |
Методы, объявленные в интерфейсе NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет слушателя в этот MBean. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, в котором для каждого уведомления, отправляемого этим MBean, указаны имя класса Java уведомления и тип уведомления. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
Подробное описание методов
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, 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.