Интерфейс 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(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- Объект обратной связи, который был указан при добавлении слушателя. - Исключения:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean, или он не зарегистрирован с заданным фильтром и объектом обратной связи.
© 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.