Интерфейс JMXConnectorServerMBean
- Все известные реализующие классы:
- JMXConnectorServer, RMIConnectorServer
public interface JMXConnectorServerMBean
Интерфейс MBean для серверов подключения. Сервер подключения JMX API прикреплен к серверу MBean и устанавливает подключения к этому серверу MBean для удаленных клиентов.
Новый созданный сервер подключения неактивен и еще не прослушивает подключения. Только после вызова метода start он начинает прослушивать подключения.
- С момента:
- 1.5
Методы
| Модификатор и тип | Метод и описание |
|---|---|
JMXServiceURL |
getAddress() Адрес этого сервера подключения. |
Map<String,?> |
getAttributes() Атрибуты этого сервера подключения. |
String[] |
getConnectionIds() Список идентификаторов текущих открытых подключений к этому серверу подключения. |
boolean |
isActive() Определяет, активен ли сервер подключения. |
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf) Вставляет объект, который перехватывает запросы к серверу MBean, поступающие через этот сервер подключения. |
void |
start() Активирует сервер подключения, то есть начинает прослушивать подключения клиентов. |
void |
stop() Деактивирует сервер подключения, то есть прекращает прослушивание подключений клиентов. |
JMXConnector |
toJMXConnector(Map<String,?> env) Возвращает клиентский заглушку для этого сервера подключения. |
Методы
start
void start()
throws IOException Активирует сервер подключения, то есть начинает прослушивать подключения клиентов. Вызов этого метода, когда сервер подключения уже активен, не оказывает никакого эффекта. Вызов этого метода, когда сервер подключения был остановлен, сгенерирует IOException.
- Исключение:
-
IOException- если невозможно начать прослушивание или если сервер подключения был остановлен. -
IllegalStateException- если сервер подключения не присоединён к серверу MBean.
stop
void stop() throws IOException
Деактивирует сервер подключения, то есть прекращает прослушивание подключений клиентов. Вызов этого метода также закроет все подключения клиентов, которые были созданы этим сервером. После возвращения из этого метода, будь то нормально или с исключением, сервер подключения не будет создавать новых подключений клиентов.
После того, как сервер подключения был остановлен, его нельзя запустить снова.
Вызов этого метода, когда сервер подключения уже остановлен, не оказывает никакого эффекта. Вызов этого метода, когда сервер подключения ещё не был запущен, отключит объект сервера подключения постоянно.
Если при закрытии подключения клиента возникает исключение, это исключение не выбрасывается из этого метода. JMXConnectionNotification с типом JMXConnectionNotification.FAILED отправляется из этого MBean с идентификатором подключения, которое не удалось закрыть.
Закрытие сервера подключения — потенциально медленная операция. Например, если машина клиента с открытым подключением зависла, операция закрытия может ожидать таймаута сетевого протокола. Вызывающие стороны, которые не хотят блокироваться при операции закрытия, должны делать это в отдельном потоке.
- Исключение:
-
IOException- если сервер не может быть закрыт корректно. Когда это исключение выбрасывается, сервер уже попытался закрыть все подключения клиентов. Все подключения клиентов закрыты, за исключением тех, которые вызвали исключения при попытке сервера закрыть их.
isActive
boolean isActive()
Определяет, активен ли сервер подключения. Сервер подключения начинает быть активным, когда его метод start успешно возвращается и остаётся активным до тех пор, пока не будет вызван его метод stop или пока сервер подключения не выйдет из строя.
- Возвращает:
- true, если сервер подключения активен.
setMBeanServerForwarder
void setMBeanServerForwarder(MBeanServerForwarder mbsf)
Вставляет объект, который перехватывает запросы к серверу MBean, поступающие через этот сервер подключения. Этот объект будет предоставлен в качестве MBeanServer для любого нового подключения, созданного этим сервером подключения. Существующие подключения не затрагиваются.
Этот метод может быть вызван более одного раза с различными объектами MBeanServerForwarder. Результатом является цепочка перенаправляющих. Последний добавленный перенаправляющий стоит первым в цепочке. Подробнее:
-
Если этот сервер подключения уже связан с объектом
MBeanServer, то этот объект передаётся вmbsf.setMBeanServer. Если при этом возникает исключение, этот метод выбрасывает то же исключение без каких-либо других действий. -
Если этот сервер ещё не связан с объектом
MBeanServer, или если вызовmbsf.setMBeanServer(упомянутый выше) выполняется успешно, тоmbsfстановитсяMBeanServerэтого сервера подключения.
- Параметры:
-
mbsf- новыйMBeanServerForwarder. - Исключение:
-
IllegalArgumentException- если вызовmbsf.setMBeanServerзавершается ошибкойIllegalArgumentException. Это включает случай, когдаmbsfравно null.
getConnectionIds
String[] getConnectionIds()
Список идентификаторов текущих открытых подключений к этому серверу подключения.
- Возвращает:
- новый массив строк, содержащий список идентификаторов. Если нет открытых подключений, этот массив будет пустым.
getAddress
JMXServiceURL getAddress()
Адрес этого сервера подключения.
Возвращаемый адрес может не совпадать с исходным JMXServiceURL, который был передан при создании сервера подключения, так как исходный адрес может не всегда быть полным. Например, номер порта может быть динамически назначен при запуске сервера подключения. Вместо этого возвращаемый адрес — фактический JMXServiceURL сервера JMXConnectorServer. Это адрес, который клиенты передают в JMXConnectorFactory.connect(JMXServiceURL).
Обратите внимание, что возвращаемый адрес может быть null , если JMXConnectorServer ещё не active.
- Возвращает:
- адрес этого сервера подключения или null, если он отсутствует.
getAttributes
Map<String,?> getAttributes()
Атрибуты этого сервера подключения.
- Возвращает:
- только для чтения карта, содержащая атрибуты этого сервера подключения. Атрибуты, значения которых не сериализуемы, опушены из этой карты. Если нет сериализуемых атрибутов, возвращаемая карта пуста.
toJMXConnector
JMXConnector toJMXConnector(Map<String,?> env)
throws IOException Возвращает клиентскую заглушку для этого сервера подключения. Клиентская заглушка — сериализуемый объект, метод connect которого может быть использован для создания нового подключения к этому серверу подключения.
Данный сервер подключения может не поддерживать создание клиентских заглушек. Однако, серверы, определённые API JMX Remote (JMXMP Connector и RMI Connector), поддерживают.
- Параметры:
-
env- параметры подключения клиента того же типа, что и те, которые могут быть предоставлены вJMXConnector.connect(Map). Может быть null, что эквивалентно пустой карте. - Возвращает:
- клиентскую заглушку, которая может быть использована для создания нового подключения к этому серверу подключения.
- Исключение:
-
UnsupportedOperationException- если этот сервер подключения не поддерживает создание клиентских заглушек. -
IllegalStateException- если JMXConnectorServer не запущен (см.isActive()). -
IOException- если проблема с коммуникацией означает, что заглушка не может быть создана.
© 1993, 2020, 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.