Класс 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 |
Возвращает заглушку клиента для этого сервера подключения. |
Методы, объявленные в классе 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 и RMI Connector), поддерживают.
Реализация по умолчанию этого метода использует JMXConnectorServerMBean.getAddress() и JMXConnectorFactory для генерации заглушки, с кодом, эквивалентным следующему:
JMXServiceURL addr =getAddress(); returnJMXConnectorFactory.newJMXConnector(addr, env);
Сервер подключения, для которого это не подходит, должен переопределить этот метод, чтобы либо реализовать соответствующую логику, либо бросить исключение UnsupportedOperationException.
- Определено в:
-
toJMXConnectorв интерфейсеJMXConnectorServerMBean - Параметры:
-
env- параметры клиентского подключения того же типа, что и те, которые могут быть предоставлены методуJMXConnector.connect(Map). Может быть нулевым, что эквивалентно пустому словарю. - Возвращает:
- клиентскую заглушку, которая может быть использована для создания нового подключения к этому серверу подключения.
- Исключения:
-
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. Может быть нулевым. См.Notification.getMessage(). -
userData- данные пользователя для отправляемого уведомленияJMXConnectionNotification. Может быть нулевым. См.Notification.getUserData(). - Исключения:
-
NullPointerException- еслиconnectionIdравно null.
connectionClosed
protected void connectionClosed(String connectionId, String message, Object userData)
Вызывается подклассом при нормальном закрытии клиентского подключения. Удаляет connectionId из списка, возвращаемого методом getConnectionIds(), затем отправляет уведомление JMXConnectionNotification с типом JMXConnectionNotification.CLOSED.
- Параметры:
-
connectionId- идентификатор закрытого подключения. -
message- сообщение для отправляемого уведомленияJMXConnectionNotification. Может быть нулевым. См.Notification.getMessage(). -
userData- данные пользователя для отправляемого уведомленияJMXConnectionNotification. Может быть нулевым. См.Notification.getUserData(). - Исключения:
-
NullPointerException- еслиconnectionIdравно null.
connectionFailed
protected void connectionFailed(String connectionId, String message, Object userData)
Вызывается подклассом при сбое подключения клиента. Удаляет connectionId из списка, возвращаемого getConnectionIds(), затем отправляет уведомление JMXConnectionNotification с типом JMXConnectionNotification.FAILED.
- Parameters:
-
connectionId- идентификатор неисправного соединения. -
message- сообщение для отправляемого уведомленияJMXConnectionNotification. Может быть null. См.Notification.getMessage(). -
userData- данные для отправляемого уведомленияJMXConnectionNotification. Может быть null. См.Notification.getUserData(). - Throws:
-
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Если реализация этого метода бросает исключение 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Если реализация этого метода бросает исключение RuntimeException или Error, сервер MBean перебросит их внутри RuntimeMBeanException или RuntimeErrorException соответственно. Однако бросок исключения в postDeregister не изменит состояние MBean: MBean уже был успешно дезактивирован и останется таким.
Это может быть запутанно для кода, вызывающего unregisterMBean(), так как он может предположить, что отмена регистрации MBean не удалась. Поэтому рекомендуется, чтобы реализации postDeregister не выбрасывали исключения Runtime или Errors, если это возможно.
- Specified by:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/remote/JMXConnectorServer.html