Класс 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 |
Создает сервер соединителей, подключенный к указанному серверу MBean. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
connectionClosed |
Вызывается подклассом при нормальном закрытии подключения клиента. |
protected void |
connectionFailed |
Вызывается подклассом при сбое подключения клиента. |
protected void |
connectionOpened |
Вызывается подклассом при открытии нового подключения клиента. |
String[] |
getConnectionIds() |
Список идентификаторов текущих открытых подключений к этому серверу соединителей. |
MBeanServer |
getMBeanServer() |
Возвращает сервер MBean, к которому подключен этот сервер соединителей. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, указывающий уведомления, отправляемые этим MBean. |
void |
postDeregister() |
Позволяет MBean выполнить необходимые операции после отмены его регистрации на сервере MBean. |
void |
postRegister |
Позволяет MBean выполнить необходимые операции после регистрации на сервере MBean или после сбоя регистрации. |
void |
preDeregister() |
Вызывается сервером MBean при отмене регистрации этого сервера соединителей на этом сервере MBean. |
ObjectName |
preRegister |
Вызывается сервером MBean при регистрации этого сервера соединителей на этом сервере MBean. |
void |
setMBeanServerForwarder |
Вставляет объект, перехватывающий запросы к серверу MBean, поступающие через этот сервер соединителей. |
JMXConnector |
toJMXConnector |
Возвращает клиентскую заглушку для этого сервера соединителей. |
Методы, объявленные в классе 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(); returnJMXConnectorFactory.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Если реализация этого метода выбрасывает 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Если реализация этого метода выбрасывает RuntimeException или Error, сервер MBean повторно выбросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако выбрасывание исключения в postDeregister не изменит состояние MBean: отмена регистрации MBean уже успешно выполнена и останется в силе.
Это может сбить с толку код, вызывающий unregisterMBean(), поскольку он может предположить, что отмена регистрации MBean не удалась. Поэтому рекомендуется, чтобы реализации postDeregister по возможности не выбрасывали исключения RuntimeException или Error.
- Определено в:
-
postDeregisterв интерфейсеMBeanRegistration
© 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