Интерфейс 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 |
Добавляет прослушиватель в этот MBean. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, в котором для каждого уведомления, отправляемого этим MBean, указаны имя класса Java уведомления и тип уведомления. |
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
Подробное описание методов
addNotificationListener
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
- Параметры:
-
listener— объект прослушивателя, который будет обрабатывать уведомления, отправляемые источником уведомлений. -
filter— объект фильтра. Если фильтр равен null, фильтрация перед обработкой уведомлений выполняться не будет. -
handback— непрозрачный объект, который будет передан прослушивателю при отправке уведомления. Этот объект не может использоваться источником уведомлений. Он должен быть без изменений повторно отправлен прослушивателю вместе с уведомлением. - Выбрасывает:
-
IllegalArgumentException— параметр прослушивателя равен null. - См. также:
removeNotificationListener
void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
- Параметры:
-
listener— прослушиватель, ранее добавленный в этот MBean. - Выбрасывает:
-
ListenerNotFoundException— прослушиватель не зарегистрирован в MBean. - См. также:
getNotificationInfo
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, в котором для каждого уведомления, отправляемого этим MBean, указаны имя класса Java уведомления и тип уведомления.
MBean не запрещено отправлять уведомления, не описанные в этом массиве. Однако для правильной работы некоторых клиентов сервера 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/NotificationBroadcaster.html