Spec-Zone.ru › OpenJDK 25

Интерфейс NotificationBroadcaster

Все известные подинтерфейсы:
ModelMBean, ModelMBeanNotificationBroadcaster, NotificationEmitter
Все известные реализующие классы:
CounterMonitor, GaugeMonitor, JMXConnectorServer, MBeanServerDelegate, Monitor, NotificationBroadcasterSupport, RelationService, RequiredModelMBean, RMIConnectorServer, StandardEmitterMBean, StringMonitor, Timer
public interface NotificationBroadcaster

Интерфейс, реализуемый MBean, который отправляет уведомления. Он позволяет зарегистрировать в MBean прослушиватель уведомлений.

Отправка уведомлений

Когда MBean отправляет уведомление, он учитывает каждый прослушиватель, добавленный с помощью addNotificationListener и впоследствии не удаленный с помощью removeNotificationListener. Если для этого прослушивателя был указан фильтр и метод isNotificationEnabled фильтра возвращает false, прослушиватель игнорируется. В противном случае вызывается метод handleNotification прослушивателя с уведомлением и объектом обратной передачи, переданным в addNotificationListener.

Если один и тот же прослушиватель добавлен более одного раза, он учитывается столько раз, сколько был добавлен. Часто бывает полезно добавить один и тот же прослушиватель с разными фильтрами или объектами обратной передачи.

Реализации этого интерфейса могут различаться тем, в каком потоке вызываются методы фильтров и прослушивателей.

Если вызов метода фильтра или прослушивателя выбрасывает Exception, это исключение не должно препятствовать вызову других прослушивателей. Однако, если вызов метода выбрасывает Error, рекомендуется прекратить обработку уведомления на этом этапе, а если есть возможность передать Error отправителю уведомления, это следует сделать.

В новом коде следует использовать интерфейс NotificationEmitter.

При реализации этого интерфейса и NotificationEmitter следует внимательно относиться к синхронизации. В частности, реализации не следует удерживать какие-либо блокировки во время вызова прослушивателя. Чтобы учесть возможность изменения списка прослушивателей во время отправки уведомления, рекомендуется использовать для этого списка CopyOnWriteArrayList.

С версии:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет прослушиватель в этот MBean.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, в котором для каждого уведомления, отправляемого этим MBean, указаны имя класса Java уведомления и тип уведомления.
void removeNotificationListener(NotificationListener listener)
Удаляет прослушиватель из этого MBean.

Подробное описание методов

addNotificationListener

void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
Добавляет прослушиватель в этот MBean.
Параметры:
listener — объект прослушивателя, который будет обрабатывать уведомления, отправляемые источником уведомлений.
filter — объект фильтра. Если фильтр равен null, фильтрация перед обработкой уведомлений выполняться не будет.
handback — непрозрачный объект, который будет передан прослушивателю при отправке уведомления. Этот объект не может использоваться источником уведомлений. Он должен быть без изменений повторно отправлен прослушивателю вместе с уведомлением.
Выбрасывает:
IllegalArgumentException — параметр прослушивателя равен null.
См. также:
  • removeNotificationListener(NotificationListener)

removeNotificationListener

void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Удаляет прослушиватель из этого MBean. Если прослушиватель был зарегистрирован с разными объектами обратной передачи или фильтрами уведомлений, будут удалены все записи, соответствующие этому прослушивателю.
Параметры:
listener — прослушиватель, ранее добавленный в этот MBean.
Выбрасывает:
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean.
См. также:
  • addNotificationListener(NotificationListener, NotificationFilter, Object)
  • NotificationEmitter.removeNotificationListener(NotificationListener, NotificationFilter, Object)

getNotificationInfo

MBeanNotificationInfo[] getNotificationInfo()

Возвращает массив, в котором для каждого уведомления, отправляемого этим MBean, указаны имя класса Java уведомления и тип уведомления.

MBean не запрещено отправлять уведомления, не описанные в этом массиве. Однако для правильной работы некоторых клиентов сервера MBean массив может быть необходим в полном виде.

Возвращает:
массив возможных уведомлений.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, включая общие сведения о концепциях, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/NotificationBroadcaster.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API