Пакет javax.management.remote
Интерфейсы для удалённого доступа к серверам JMX MBean. Этот пакет определяет основные интерфейсы, необходимые для удалённого управления сервером JMX MBean. Спецификация этой функциональности завершена частью III Спецификации JMX, версия 1.4.
Спецификация JMX определяет понятие коннекторов. Коннектор прикреплён к серверу MBean API JMX и делает его доступным для удалённых Java-клиентов. Клиентская сторона коннектора экспортирует по существу тот же интерфейс, что и сервер MBean, в частности интерфейс MBeanServerConnection.
Коннектор делает сервер MBean удалённо доступным через заданный протокол. JMX Remote API позволяет использовать различные типы коннекторов:
- JMX Remote API определяет стандартный коннектор, коннектор RMI, который предоставляет удалённый доступ к MBeanServer через RMI.
- JMX Remote API также определяет необязательный коннектор, коннектор JMXMP, реализующий протокол сообщений JMX (JMXMP). Поскольку он является необязательным, он не входит в этот пакет (см. примечание ниже).
- Пользовательские протоколы коннекторов также возможны с помощью
JMXConnectorFactoryи, необязательно, с помощью универсального коннектора (не входит в этот пакет, см. примечание ниже).
Примечание: необязательные пакеты, реализующие необязательную часть JMX Remote API, не включены в Java SE Platform, но доступны из реализации JMX Remote API Reference Implementation.
Адреса коннекторов
Обычно сервер коннектора имеет адрес, представленный классом JMXServiceURL. Адрес для коннектора RMI может выглядеть так:
service:jmx:rmi:///jndi/rmi://myhost:1099/myname
В этом JMXServiceURL, первый rmi: указывает на коннектор RMI, а второй rmi: указывает на RMI-реестр, в который сервер коннектора RMI сохранил свой заглушку.
Приведённый пример показывает только один формат адреса. Адрес для коннектора RMI может иметь несколько форм, как подробно описано в документации для пакета .javax.management.remote.rmi
Создание сервера коннектора
Сервер коннектора создаётся путём построения экземпляра подкласса JMXConnectorServer. Обычно этот экземпляр создаётся с помощью метода JMXConnectorServerFactory.newJMXConnectorServer.
Обычно сервер коннектора связывается с сервером MBean, либо зарегистрировав его в этом сервере MBean, либо предоставив сервер MBean в качестве параметра при создании сервера коннектора.
Создание клиента коннектора
Клиент коннектора обычно создаётся путём предоставления JMXServiceURL сервера коннектора, к которому нужно подключиться, методу JMXConnectorFactory.connect.
Для более специализированных случаев клиент коннектора может быть создан путём непосредственного создания класса, реализующего интерфейс JMXConnector, например, класса RMIConnector.
Дополнительные параметры клиента или сервера
При создании клиента или сервера коннектора можно предоставить объект типа Map, который определяет дополнительные параметры. Каждый элемент в этом Map имеет ключ, являющийся строкой, и соответствующее значение, тип которого подходит для этого ключа. Стандартные ключи, определённые JMX Remote API, все начинаются со строки "jmx.remote.". В документе JMX Remote API перечислены эти стандартные ключи.
Идентификаторы соединений
Каждое подключение, открытое сервером коннектора, имеет строковый идентификатор, называемый его идентификатором подключения. Этот идентификатор появляется в событиях JMXConnectionNotification, излучаемых сервером коннектора, в списке, возвращаемом методом getConnectionIds(), и в значении, возвращаемом методом клиента getConnectionId().
Например, идентификатор соединения может выглядеть так:
rmi://192.18.1.9 username 1
Формальная грамматика идентификаторов подключений, следующая этой конвенции, приведена ниже (используя обозначение грамматики из раздела 2.4 Спецификации языка Java™):
ConnectionId:
Protocol : ClientAddressopt Space ClientIdopt Space ArbitraryText
ClientAddress:
// HostAddress ClientPortopt
ClientPort
: HostPort Protocol — это протокол, который будет распознан JMXConnectorFactory.
ClientAddress — это адрес и порт подключающегося клиента, если они могут быть определены, в противном случае ничего. HostAddress — это интернет-адрес хоста, с которого подключается клиент, в числовом или DNS-формате. Численные IPv6-адреса заключены в квадратные скобки []. HostPort — это десятичный номер порта, с которого подключается клиент.
ClientId — это идентификатор сущности клиента, обычно строка, возвращаемая методом JMXPrincipal.getName(). Эта строка не должна содержать пробелов.
ArbitraryText — это любой дополнительный текст, который сервер коннектора добавляет при создании идентификатора клиента. Как минимум, он должен быть достаточным для различения этого идентификатора соединения от идентификатора любого другого открытого соединения, в настоящее время открытого этим сервером коннектора.
- С момента:
- 1.5
- См. также:
- Спецификация JMX, версия 1.4
| Интерфейс | Описание |
|---|---|
| JMXAddressable | Реализуется объектами, которые могут иметь адрес |
| JMXAuthenticator | Интерфейс для определения того, как удалённые учётные данные преобразуются в объект JAAS Subject. |
| JMXConnector | Клиентская сторона коннектора API JMX. |
| JMXConnectorProvider | Поставщик для создания клиентов коннекторов API JMX с использованием заданного протокола. |
| JMXConnectorServerMBean | Интерфейс MBean для серверов коннекторов. |
| JMXConnectorServerProvider | Поставщик для создания серверов коннекторов API JMX с использованием заданного протокола. |
| MBeanServerForwarder | Объект этого класса реализует интерфейс MBeanServer и оборачивает другой объект, также реализующий этот интерфейс. |
| Класс | Описание |
|---|---|
| JMXConnectionNotification | Уведомление, издаваемое при открытии или закрытии соединения клиента, или при потере уведомлений. |
| JMXConnectorFactory | Фабрика для создания клиентов коннекторов API JMX. |
| JMXConnectorServer | Базовый класс каждого сервера коннектора. |
| JMXConnectorServerFactory | Фабрика для создания серверов коннекторов API JMX. |
| JMXPrincipal | Идентификатор удалённого клиента JMX Remote API. |
| JMXServiceURL | Адрес сервера коннектора API JMX. |
| NotificationResult | Результат запроса для буферизованных уведомлений. |
| SubjectDelegationPermission | Разрешение, необходимое для идентификатора аутентификации для выполнения операций от имени идентификатора авторизации. |
| TargetedNotification | Пара (уведомление, идентификатор слушателя). |
| Исключение | Описание |
|---|---|
| JMXProviderException | Исключение, выброшенное |
| JMXServerErrorException | Исключение, выброшенное в результате удалённого вызова метода |
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/remote/package-summary.html