Spec-Zone.ru › OpenJDK 25

Класс 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)
Возвращает клиентскую заглушку для этого сервера соединителей.

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

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

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

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

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

getAddress

Методы, объявленные в интерфейсе 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, к которому подключен этот сервер соединителей. Значение null, если этот сервер соединителей будет подключен к серверу 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, к которому он подключен, не обязательно является тем сервером, на котором он регистрируется.

Определено в:
preRegister в интерфейсе MBeanRegistration
Параметры:
mbs — сервер MBean, на котором регистрируется этот сервер соединителей.
name — имя объекта MBean.
Возвращает:
имя, под которым регистрируется MBean.
Выбрасывает:
NullPointerException — если mbs или name равно null.

postRegister

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

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

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

Определено в:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone — указывает, успешно ли зарегистрирован MBean на сервере MBean. Значение false означает, что этап регистрации завершился неудачей.

preDeregister

public void preDeregister() throws Exception

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

Определено в:
preDeregister в интерфейсе MBeanRegistration
Выбрасывает:
IOException — если выброшено методом stop.
Exception — это исключение будет перехвачено сервером MBean и повторно выброшено как MBeanRegistrationException.

postDeregister

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

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

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

Определено в:
postDeregister в интерфейсе MBeanRegistration

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/remote/JMXConnectorServer.html

Spec-Zone.ru

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