Класс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет прослушиватель. |
protected void |
handleNotification |
Этот метод вызывается методом sendNotification для каждого прослушивателя, чтобы отправить ему уведомление. |
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе JMXAddressable
getAddress | Модификатор и тип | Метод | Описание |
|---|---|---|
JMXServiceURL |
getAddress() |
Адрес этого объекта. |
Методы, объявленные в интерфейсе JMXConnectorServerMBean
getAddress, getAttributes, isActive, start, stop | Модификатор и тип | Метод | Описание |
|---|---|---|
JMXServiceURL |
getAddress() |
Адрес этого сервера соединителей. |
Map |
getAttributes() |
Атрибуты этого сервера соединителей. |
boolean |
isActive() |
Определяет, активен ли сервер соединителей. |
void |
start() |
Активирует сервер соединителей, то есть начинает прослушивать подключения клиентов. |
void |
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 которого можно использовать для установления одного нового соединения с этим сервером соединителей.
Не каждый соединитель поддерживает создание клиентских заглушек. RMI-соединитель поддерживает эту возможность.
Реализация этого метода по умолчанию использует 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 выбрасывает исключение, попытка отмены регистрации завершается неудачей. Перед отменой регистрации MBean рекомендуется явно вызвать метод stop.
- Определено в:
-
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.