Spec-Zone.ru › OpenJDK 17

Класс JMXConnectorServer

java.lang.Object
javax.management.NotificationBroadcasterSupport
javax.management.remote.JMXConnectorServer
Все реализованные интерфейсы:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean
Прямые известные подклассы:
RMIConnectorServer
public abstract class JMXConnectorServer extends NotificationBroadcasterSupport implements JMXConnectorServerMBean, MBeanRegistration, JMXAddressable

Базовый класс для всех серверов подключения. Сервер подключения прикреплен к серверу MBean. Он прослушивает запросы подключения клиентов и создает подключение для каждого из них.

Сервер подключения ассоциируется с сервером MBean либо путем регистрации его в этом сервере MBean, либо путем передачи сервера MBean в его конструктор.

Сервер подключения неактивен при создании. Он начинает прослушивать запросы подключения клиентов только при вызове метода start. Сервер подключения прекращает прослушивание запросов подключения клиентов при вызове метода stop или при удалении сервера подключения из сервера MBean.

Остановка сервера подключения не приводит к его удалению из сервера MBean. Остановленный сервер подключения нельзя перезапустить.

Каждый раз при подключении или разрыве соединения с клиентом генерируется уведомление класса JMXConnectionNotification.

С момента:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final String AUTHENTICATOR
Имя атрибута, определяющего аутентификатор для сервера подключения.

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

Конструктор Описание
JMXConnectorServer()
Конструирует сервер подключения, который будет зарегистрирован как MBean в сервере MBean, к которому он прикреплен.
JMXConnectorServer(MBeanServer mbeanServer)
Конструирует сервер подключения, прикрепленный к указанному серверу MBean.

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

Модификатор и тип Метод Описание
protected void connectionClosed(String connectionId, String message, Object userData)
Вызывается подклассом при нормальном закрытии соединения с клиентом.
protected void connectionFailed(String connectionId, String message, Object userData)
Вызывается подклассом при сбое соединения с клиентом.
protected void connectionOpened(String connectionId, String message, Object userData)
Вызывается подклассом при открытии нового соединения с клиентом.
String[] getConnectionIds()
Список идентификаторов текущих открытых соединений с этим сервером подключения.
MBeanServer getMBeanServer()
Возвращает сервер MBean, к которому прикреплен этот сервер подключения.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, указывающий на уведомления, которые отправляет этот MBean.
void postDeregister()
Позволяет MBean выполнить любые операции, необходимые после его удаления из сервера MBean.
void postRegister(Boolean registrationDone)
Позволяет MBean выполнить любые операции, необходимые после его регистрации в сервере MBean или после неудачной регистрации.
void preDeregister()
Вызывается сервером MBean при удалении этого сервера подключения из этого сервера MBean.
ObjectName preRegister(MBeanServer mbs, ObjectName name)
Вызывается сервером MBean при регистрации этого сервера подключения в этом сервере MBean.
void setMBeanServerForwarder(MBeanServerForwarder mbsf)
Вставляет объект, перехватывающий запросы к серверу MBean, поступающие через этот сервер подключения.
JMXConnector toJMXConnector(Map<String,?> env)
Возвращает заглушку клиента для этого сервера подключения.

Методы, объявленные в классе javax.management.NotificationBroadcasterSupport

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе javax.management.remote.JMXAddressable

getAddress

Методы, объявленные в интерфейсе javax.management.remote.JMXConnectorServerMBean

getAddress, getAttributes, isActive, start, stop

Подробное описание полей

AUTHENTICATOR

public static final String AUTHENTICATOR

Имя атрибута, определяющего аутентификатор для сервера подключения. Значение, связанное с этим атрибутом, если таковое имеется, должно быть объектом, реализующим интерфейс JMXAuthenticator.

См. также:
  • Значения константных полей

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

JMXConnectorServer

public JMXConnectorServer()

Создаёт сервер подключения, который будет зарегистрирован как MBean в сервере MBean, к которому он подключён. Этот конструктор обычно вызывается одним из createMBean методов при создании, внутри сервера MBean, сервера подключения, делающего его доступным удалённо.

JMXConnectorServer

public JMXConnectorServer(MBeanServer mbeanServer)

Создаёт сервер подключения, подключённый к заданному серверу MBean. Сервер подключения, созданный таким образом, может быть зарегистрирован в другом сервере MBean или не зарегистрирован ни в каком сервере MBean.

Параметры:
mbeanServer - сервер MBean, к которому подключён этот сервер подключения. Нулевой, если этот сервер подключения будет подключён к серверу MBean путём регистрации в нём.

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

getMBeanServer

public MBeanServer getMBeanServer()

Возвращает сервер MBean, к которому подключён этот сервер подключения.

Возвращает:
сервер MBean, к которому подключён этот сервер подключения, или null, если он ещё не подключён к серверу MBean.

setMBeanServerForwarder

public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
Описание скопировано из интерфейса: JMXConnectorServerMBean

Вставляет объект, который перехватывает запросы сервера MBean, поступающие через этот сервер подключения. Этот объект будет предоставлен в качестве MBeanServer для любого нового подключения, созданного этим сервером подключения. Существующие подключения не затронуты.

Этот метод может быть вызван более одного раза с различными объектами MBeanServerForwarder. Результатом является цепочка прокси. Последний добавленный прокси является первым в цепочке. Более подробно:

  • Если этот сервер подключения уже связан с объектом MBeanServer, то этот объект передаётся в mbsf.setMBeanServer. Если при этом возникает исключение, этот метод выбрасывает то же самое исключение без каких-либо других последствий.

  • Если этот сервер подключения ещё не связан с объектом MBeanServer, или если вызов mbsf.setMBeanServer , упомянутый выше, удался, то mbsf становится MBeanServer этого сервера подключения.

Определено в:
setMBeanServerForwarder в интерфейсе JMXConnectorServerMBean
Параметры:
mbsf - новый MBeanServerForwarder.

getConnectionIds

public String[] getConnectionIds()
Описание скопировано из интерфейса: JMXConnectorServerMBean

Список идентификаторов для открытых подключений к этому серверу подключения.

Определено в:
getConnectionIds в интерфейсе JMXConnectorServerMBean
Возвращает:
новый массив строк, содержащий список идентификаторов. Если открытых подключений нет, этот массив будет пустым.

toJMXConnector

public JMXConnector toJMXConnector(Map<String,?> env) throws IOException

Возвращает заглушку клиента для этого сервера подключения. Заглушка клиента — это сериализуемый объект, чей метод connect может быть использован для создания одного нового подключения к этому серверу подключения.

Данный сервер подключения не обязан поддерживать генерацию заглушек клиентов. Однако, серверы, указанные в JMX Remote API (JMXMP Connector и RMI Connector), поддерживают это.

Реализация по умолчанию этого метода использует JMXConnectorServerMBean.getAddress() и JMXConnectorFactory для генерации заглушки, с кодом, эквивалентным следующему:

 JMXServiceURL addr = getAddress();
 return JMXConnectorFactory.newJMXConnector(addr, env);
 

Сервер подключения, для которого это неприменимо, должен переопределить этот метод, так чтобы он либо реализовал соответствующую логику, либо бросал исключение UnsupportedOperationException.

Определено в:
toJMXConnector в интерфейсе JMXConnectorServerMBean
Параметры:
env - параметры подключения клиента, аналогичные тем, которые могут быть предоставлены в JMXConnector.connect(Map). Может быть null, что эквивалентно пустому отображению.
Возвращает:
заглушка клиента, которая может использоваться для создания нового подключения к этому серверу подключения.
Исключения:
UnsupportedOperationException - если этот сервер подключения не поддерживает генерацию заглушек клиентов.
IllegalStateException - если JMXConnectorServer не запущен (см. JMXConnectorServerMBean.isActive()).
IOException - если проблема с коммуникацией означает, что заглушка не может быть создана.

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()

Возвращает массив, указывающий на уведомления, которые отправляет этот MBean. Реализация в JMXConnectorServer возвращает массив с одним элементом, указывающим, что он может отправлять уведомления класса JMXConnectionNotification с типами, определёнными в этом классе. Подкласс, который может отправлять другие уведомления, должен вернуть массив, содержащий этот элемент плюс описания других уведомлений.

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

connectionOpened

protected void connectionOpened(String connectionId, String message, Object userData)

Вызывается подклассом, когда открывается новое клиентское подключение. Добавляет connectionId в список, возвращаемый getConnectionIds(), затем отправляет JMXConnectionNotification с типом JMXConnectionNotification.OPENED.

Параметры:
connectionId - идентификатор нового подключения. Он должен отличаться от идентификатора любого подключения, ранее открытого этим сервером подключения.
message - сообщение для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getMessage().
userData - userData для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getUserData().
Исключения:
NullPointerException - если connectionId равно null.

connectionClosed

protected void connectionClosed(String connectionId, String message, Object userData)

Вызывается подклассом, когда клиентское подключение закрывается нормально. Удаляет connectionId из списка, возвращаемого getConnectionIds(), затем отправляет JMXConnectionNotification с типом JMXConnectionNotification.CLOSED.

Параметры:
connectionId - идентификатор закрытого подключения.
message - сообщение для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getMessage().
userData - userData для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getUserData().
Исключения:
NullPointerException - если connectionId равно null.

connectionFailed

protected void connectionFailed(String connectionId, String message, Object userData)

Вызывается подклассом, когда клиентское подключение терпит неудачу. Удаляет connectionId из списка, возвращаемого getConnectionIds(), затем отправляет JMXConnectionNotification с типом JMXConnectionNotification.FAILED.

Параметры:
connectionId - идентификатор неудачного подключения.
message - сообщение для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getMessage().
userData - userData для отправляемого JMXConnectionNotification. Может быть null. См. Notification.getUserData().
Исключения:
NullPointerException - если connectionId равно null.

preRegister

public ObjectName preRegister(MBeanServer mbs, ObjectName name)

Вызывается сервером MBean при регистрации этого сервера подключения в этом сервере MBean. Этот сервер подключения подключается к серверу MBean, и его метод getMBeanServer() вернёт mbs.

Если этот сервер подключения уже подключен к серверу MBean, этот метод не оказывает никакого эффекта. Сервер MBean, к которому он подключен, не обязательно является тем, в котором он регистрируется.

Specified by:
preRegister в интерфейсе MBeanRegistration
Parameters:
mbs - сервер MBean, в котором регистрируется этот сервер подключения.
name - имя объекта MBean.
Returns:
Имя, под которым MBean должен быть зарегистрирован.
Throws:
NullPointerException - если mbs или name равно null.

postRegister

public void postRegister(Boolean registrationDone)
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить все необходимые операции после регистрации в сервере MBean или после того, как регистрация завершилась неудачей.

Если реализация этого метода вызывает RuntimeException или Error, сервер MBean перебросит эти исключения внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако, вызов исключения в postRegister не изменит состояние MBean: если MBean уже зарегистрирован (registrationDone равно true), MBean останется зарегистрированным.

Это может быть непонятно для кода, вызывающего createMBean() или registerMBean(), так как такой код может предположить, что регистрация MBean завершилась неудачей, когда такое исключение возникает. Поэтому рекомендуется, чтобы реализации postRegister не вызывали исключений Runtime или Errors, если это возможно избежать.

Specified by:
postRegister в интерфейсе MBeanRegistration
Parameters:
registrationDone - Указывает, был ли MBean успешно зарегистрирован в сервере MBean. Значение false означает, что этап регистрации завершился неудачей.

preDeregister

public void preDeregister() throws Exception

Вызывается сервером MBean при аннулировании регистрации этого сервера подключения из этого сервера MBean. Если этот сервер подключения был подключен к этому серверу MBean путём регистрации в нём, и если сервер подключения всё ещё активен, то при аннулировании регистрации будет вызван метод stop. Если метод stop вызывает исключение, попытка аннулирования регистрации завершится неудачей. Рекомендуется вызывать метод stop явно перед аннулированием регистрации MBean.

Specified by:
preDeregister в интерфейсе MBeanRegistration
Throws:
IOException - если вызвано методом stop.
Exception - Это исключение будет перехвачено сервером MBean и переброшено как MBeanRegistrationException.

postDeregister

public void postDeregister()
Описание скопировано из интерфейса: MBeanRegistration
Позволяет MBean выполнить все необходимые операции после аннулирования регистрации в сервере MBean.

Если реализация этого метода вызывает RuntimeException или Error, сервер MBean перебросит эти исключения внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако, вызов исключения в postDeregister не изменит состояние MBean: MBean уже успешно аннулирован и останется таким.

Это может быть непонятно для кода, вызывающего unregisterMBean(), так как он может предположить, что аннулирование регистрации MBean завершилось неудачей. Поэтому рекомендуется, чтобы реализации postDeregister не вызывали исключения Runtime или Errors, если это возможно избежать.

Specified by:
postDeregister в интерфейсе MBeanRegistration

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

Spec-Zone.ru

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