Интерфейс 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. |
Методы, объявленные в интерфейсе 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- Передаваемый объект, который был указан при добавлении слушателя. - Исключения:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с указанным фильтром и передаваемым объектом.
© 1993, 2021, 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/17/docs/api/java.management/javax/management/NotificationEmitter.html