Пакет javax.management.remote
Интерфейсы для удалённого доступа к серверам MBean JMX. Этот пакет определяет основные интерфейсы для удалённого управления сервером MBean JMX.
В JMX используется понятие коннектора. Коннектор подключается к серверу MBean API JMX и предоставляет к нему доступ удалённым клиентам Java. Клиентская сторона коннектора экспортирует, по существу, тот же интерфейс, что и сервер MBean, а именно интерфейс MBeanServerConnection.
Коннектор предоставляет удалённый доступ к серверу MBean через заданный протокол.
- В JMX Remote API определён стандартный коннектор — коннектор RMI, который обеспечивает удалённый доступ к MBeanServer через RMI.
- Также возможны другие протоколы коннекторов с использованием
JMXConnectorFactory.
Адреса коннекторов
Как правило, у сервера коннектора есть адрес, представленный классом 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
- См. также:
| Класс | Описание |
|---|---|
| JMXAddressable | Реализуется объектами, у которых может быть адрес JMXServiceURL. |
| JMXAuthenticator | Интерфейс для определения способа преобразования удалённых учётных данных в субъект JAAS. |
| JMXConnectionNotification | Уведомление, отправляемое при открытии или закрытии клиентского подключения, а также при потере уведомлений. |
| JMXConnector | Клиентская сторона коннектора API JMX. |
| JMXConnectorFactory | Фабрика для создания клиентов коннектора API JMX. |
| JMXConnectorProvider | Поставщик для создания клиентов коннектора API JMX с использованием заданного протокола. |
| JMXConnectorServer | Суперкласс всех серверов коннектора. |
| JMXConnectorServerFactory | Фабрика для создания серверов коннектора API JMX. |
| JMXConnectorServerMBean | Интерфейс MBean для серверов коннектора. |
| JMXConnectorServerProvider | Поставщик для создания серверов коннектора API JMX с использованием заданного протокола. |
| JMXPrincipal | Идентификатор удалённого клиента JMX Remote API. |
| JMXProviderException | Исключение, выбрасываемое JMXConnectorFactory и JMXConnectorServerFactory, когда для требуемого протокола существует поставщик, но по какой-либо причине его нельзя использовать. |
| JMXServerErrorException | Исключение, возникающее в результате удалённого вызова метода MBeanServer, если при обработке вызова на удалённом сервере MBean выбрасывается Error. |
| JMXServiceURL | Адрес сервера коннектора API JMX. |
| MBeanServerForwarder | Объект этого класса реализует интерфейс MBeanServer и оборачивает другой объект, который также реализует этот интерфейс. |
| NotificationResult | Результат запроса буферизованных уведомлений. |
| SubjectDelegationPermission | Устарел, предназначен для удаления: этот элемент API может быть удалён в будущей версии. Этот класс был полезен только совместно с диспетчером безопасности, который больше не поддерживается. |
| TargetedNotification | Пара (уведомление, идентификатор слушателя). |
© 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/package-summary.html