Spec-Zone.ru › OpenJDK 17

Интерфейс RMIConnection

Все суперинтерфейсы:
AutoCloseable, Closeable, Remote
Все известные реализующие классы:
RMIConnectionImpl, RMIConnectionImpl_Stub
public interface RMIConnection extends Closeable, Remote

Объект RMI, используемый для перенаправления запроса MBeanServer от клиента к его реализации MBeanServer на стороне сервера. Для каждого удаленного клиента, подключенного к RMI-коннектору, существует один удалённый объект, реализующий этот интерфейс.

Код пользователя обычно не обращается к этому интерфейсу. Он определён как часть публичного API, чтобы разные реализации этого API взаимодействовали друг с другом.

Для обеспечения десериализации параметров клиента на стороне сервера с правильным загрузчиком классов, параметры клиента, такие как параметры, используемые для вызова метода, упаковываются в MarshalledObject. Реализация этого интерфейса должна сначала получить соответствующий загрузчик классов для операции и её целевого объекта, а затем десериализовать маршаллированные параметры с помощью этого загрузчика. За исключением указанных случаев, параметр, являющийся MarshalledObject или MarshalledObject[], не должен быть null; поведение не определено, если он таковым является.

Аспекты загрузки классов подробно описаны в Спецификации JMX, версия 1.4

Большинство методов в этом интерфейсе соответствуют методам в интерфейсе MBeanServerConnection. Если аспект поведения метода не указан здесь, он совпадает с соответствующим методом MBeanServerConnection.

С:
1.5

Краткое описание методов

Модификатор и тип Метод Описание
void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)
Обрабатывает метод MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object).
Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects)
Обрабатывает метод MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object).
void close()
Закрывает это соединение.
ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject)
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]).
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject)
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]).

Подробное описание методов

getConnectionId

String getConnectionId() throws IOException

Возвращает идентификатор соединения. Эта строка отличается для каждого открытого соединения с заданным сервером RMI-коннектора.

Возвращает:
идентификатор соединения
Исключение:
IOException - если произошла общая ошибка связи.
См. также:
  • RMIConnector.connect

close

void close() throws IOException

Закрывает это соединение. По возвращении из этого метода RMI-объект, реализующий этот интерфейс, становится неэкспортированным, поэтому дальнейшие удалённые вызовы к нему завершатся ошибкой.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Исключение:
IOException - если соединение не удалось закрыть, или удалённый объект не удалось сделать неэкспортированным, или произошла ошибка связи при передаче запроса на удалённое закрытие.

createMBean

ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName).
Параметры:
className - Имя класса MBean, который должен быть создан.
name - Имя объекта MBean. Может быть null.
delegationSubject - Subject, содержащий делегированные принципы или null, если используется принцип аутентификации вместо него.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса вновь созданного MBean. Если содержащийся ObjectName равен n, то содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключение:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызова конструктора MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean выбросил исключение.
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: переданное имя класса равно null, переданное имя объекта содержит шаблон или для MBean не указано имя.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, ObjectName).

createMBean

ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]). Параметр Object[] обернут в MarshalledObject.

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]). Параметр Object[] обернут в MarshalledObject.
END_OF_DOCUMENT_MARKER

unregisterMBean

void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, IOException
Обрабатывает метод MBeanServerConnection.unregisterMBean(ObjectName).
Parameters:
name - Имя объекта управляемого компонента (MBean), который необходимо удалить.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Throws:
InstanceNotFoundException - Управляемый компонент (MBean), указанный именем, не зарегистрирован в сервере управляемых компонентов.
MBeanRegistrationException - Метод preDeregister ((MBeanRegistration интерфейс)) управляемого компонента выбросил исключение.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или управляемый компонент, который вы пытаетесь удалить, является управляемым компонентом MBeanServerDelegate.
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.getObjectInstance(ObjectName).
Parameters:
name - Имя объекта управляемого компонента (MBean).
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
Объект ObjectInstance, связанный с управляемым компонентом, заданным параметром name. Содержимое ObjectName является name, а имя содержащегося класса — getMBeanInfo(name).getClassName().
Throws:
InstanceNotFoundException - Управляемый компонент (MBean), указанный именем, не зарегистрирован в сервере управляемых компонентов.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null.
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.queryMBeans(ObjectName, QueryExp). QueryExp упакован в MarshalledObject.
Parameters:
name - Шаблон имени объекта управляемого компонента (MBean) для поиска. Если равно null или не указаны свойства домена и ключа, будут возвращены все зарегистрированные управляемые компоненты.
query - Выражение запроса, применяемое для выбора управляемых компонентов, упакованное в MarshalledObject. Если MarshalledObject содержит значение null, для выбора управляемых компонентов не будет применено никакого выражения запроса.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
Множество, содержащее объекты ObjectInstance для выбранных управляемых компонентов. Если ни один управляемый компонент не удовлетворяет запросу, возвращается пустой список.
Throws:
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

queryNames

Set<ObjectName> queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.queryNames(ObjectName, QueryExp). QueryExp упакован в MarshalledObject.
Parameters:
name - Шаблон имени объекта управляемого компонента (MBean) для поиска. Если равно null или не указаны свойства домена и ключа, будут возвращены имена всех зарегистрированных управляемых компонентов.
query - Выражение запроса, применяемое для выбора имён управляемых компонентов, упакованное в MarshalledObject. Если MarshalledObject содержит значение null, для выбора управляемых компонентов не будет применено никакого выражения запроса.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
Множество, содержащее ObjectNames для выбранных управляемых компонентов. Если ни один управляемый компонент не удовлетворяет запросу, возвращается пустой список.
Throws:
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

isRegistered

boolean isRegistered(ObjectName name, Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.isRegistered(ObjectName).
Parameters:
name - Имя объекта управляемого компонента (MBean) для проверки.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
True, если управляемый компонент уже зарегистрирован в сервере управляемых компонентов, false в противном случае.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null.
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

getMBeanCount

Integer getMBeanCount(Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.getMBeanCount().
Parameters:
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
количество зарегистрированных управляемых компонентов.
Throws:
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

getAttribute

Object getAttribute(ObjectName name, String attribute, Subject delegationSubject) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.getAttribute(ObjectName, String).
Parameters:
name - Имя объекта управляемого компонента (MBean), из которого необходимо извлечь атрибут.
attribute - Строка, определяющая имя атрибута, который необходимо извлечь.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
Значение извлечённого атрибута.
Throws:
AttributeNotFoundException - Указанный атрибут недоступен в управляемом компоненте.
MBeanException - Оборачивает исключение, выброшенное методом getter управляемого компонента.
InstanceNotFoundException - Управляемый компонент (MBean), указанный именем, не зарегистрирован в сервере управляемых компонентов.
ReflectionException - Оборачивает исключение java.lang.Exception, выброшенное при попытке вызвать метод getter.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null.
RuntimeMBeanException - Оборачивает исключение runtime, выброшенное методом getter управляемого компонента.
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
See Also:
  • setAttribute(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

getAttributes

AttributeList getAttributes(ObjectName name, String[] attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.getAttributes(ObjectName, String[]).
Parameters:
name - Имя объекта управляемого компонента (MBean), из которого извлекаются атрибуты.
attributes - Список атрибутов, которые необходимо извлечь.
delegationSubject - Subject содержащий принципы делегирования или null в случае использования принципа аутентификации.
Returns:
Список извлечённых атрибутов.
Throws:
InstanceNotFoundException - Управляемый компонент (MBean), указанный именем, не зарегистрирован в сервере управляемых компонентов.
ReflectionException - Произошло исключение при попытке вызвать метод getAttributes у динамического управляемого компонента.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или массив атрибутов в параметре равен null.
SecurityException - если у клиента или делегированного субъекта (если таковой имеется) нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
See Also:
  • setAttributes(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

setAttribute

void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.setAttribute(ObjectName, Attribute). Параметр Attribute упакован в MarshalledObject.
Параметры:
name - Имя MBean, в котором нужно установить атрибут.
attribute - Идентификатор атрибута, который нужно установить, и значение, на которое он должен быть установлен, инкапсулированные в MarshalledObject.
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InvalidAttributeValueException - Указанное значение для атрибута некорректно.
MBeanException - Обёртка исключения, брошенного установщиком атрибута MBean.
ReflectionException - Обёртка исключения java.lang.Exception, возникшего при попытке вызвать установщик.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
См. также:
  • getAttribute(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject)

setAttributes

AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.setAttributes(ObjectName, AttributeList). Параметр AttributeList упакован в MarshalledObject.
Параметры:
name - Имя объекта MBean, в котором необходимо установить атрибуты.
attributes - Список атрибутов: идентификаторы атрибутов, которые нужно установить, и значения, на которые они должны быть установлены, инкапсулированные в MarshalledObject.
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
Список атрибутов, которые были установлены, с их новыми значениями.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
ReflectionException - Произошла ошибка при попытке вызвать метод getAttributes динамического MBean.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
См. также:
  • getAttributes(javax.management.ObjectName, java.lang.String[], javax.security.auth.Subject)

invoke

Object invoke(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.invoke(ObjectName, String, Object[], String[]). Параметр Object[] упакован в MarshalledObject.
Параметры:
name - Имя объекта MBean, на котором должен быть вызван метод.
operationName - Имя операции, которая должна быть вызвана.
params - Массив параметров, которые должны быть установлены при вызове операции, упакованные в MarshalledObject. Упакованный массив может быть null, что эквивалентно пустому массиву.
signature - Массив, содержащий сигнатуру операции. Объекты классов будут загружены с помощью того же загрузчика классов, что и MBean, на котором была вызвана операция. Может быть null, что эквивалентно пустому массиву.
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
Объект, возвращённый операцией, представляющий результат вызова операции на указанном MBean.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
MBeanException - Обёртка исключения, брошенного вызванным методом MBean.
ReflectionException - Обёртка исключения java.lang.Exception, возникшего при попытке вызвать метод.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
RuntimeOperationsException - Обёртка исключения IllegalArgumentException, когда name или operationName равны null.

getDefaultDomain

String getDefaultDomain(Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.getDefaultDomain().
Параметры:
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
стандартный домен.
Исключения:
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

getDomains

String[] getDomains(Subject delegationSubject) throws IOException
Обрабатывает метод MBeanServerConnection.getDomains().
Параметры:
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
список доменов.
Исключения:
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException
Обрабатывает метод MBeanServerConnection.getMBeanInfo(ObjectName).
Параметры:
name - Имя MBean для анализа
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
Экземпляр MBeanInfo, позволяющий получить все атрибуты и операции этого MBean.
Исключения:
IntrospectionException - Произошла ошибка во время интроспекции.
InstanceNotFoundException - MBean не найден.
ReflectionException - Произошла ошибка при попытке вызвать getMBeanInfo у динамического MBean.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null.

isInstanceOf

boolean isInstanceOf(ObjectName name, String className, Subject delegationSubject) throws InstanceNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.isInstanceOf(ObjectName, String).
Параметры:
name - ObjectName MBean.
className - Имя класса.
delegationSubject - Subject, содержащий принципалы делегирования, или null, если вместо этого используется принципал аутентификации.
Возвращает:
true, если указанный MBean является экземпляром указанного класса согласно вышеуказанным правилам, иначе false.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
SecurityException - если у клиента или делегированного субъекта нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
RuntimeOperationsException - Обёртка исключения java.lang.IllegalArgumentException: имя объекта в параметре равно null.

addNotificationListener

void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object). Параметр NotificationFilter заключён в MarshalledObject. Параметр Object (handback) также заключён в MarshalledObject.
Parameters:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Имя объекта слушателя, который будет обрабатывать уведомления, исходящие от зарегистрированного MBean.
filter - Объект фильтра, упакованный в MarshalledObject. Если фильтр, упакованный в MarshalledObject, имеет значение null, никакое фильтрование не будет выполнено перед обработкой уведомлений.
handback - Контекст, который будет отправлен слушателю при выходе уведомления, упакованный в MarshalledObject.
delegationSubject - Subject, содержащий принципы делегирования, или null, если используется вместо этого принцип аутентификации.
Throws:
InstanceNotFoundException - Имя MBean слушателя или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean.
IllegalArgumentException - Обёртка исключения IllegalArgumentException. MBean, названный listener, существует, но не реализует интерфейс NotificationListener, или name или listener равны null.
SecurityException - если у клиента или делегированного Subject нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
See Also:
  • removeNotificationListener(ObjectName, ObjectName, Subject)
  • removeNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName).
Parameters:
name - Имя MBean, из которого должен быть удалён слушатель.
listener - Имя объекта слушателя, который нужно удалить.
delegationSubject - Subject, содержащий принципы делегирования, или null, если вместо этого используется принцип аутентификации.
Throws:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
SecurityException - если у клиента или делегированного Subject нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
IllegalArgumentException - Обёртка исключения IllegalArgumentException, когда name или listener равны null.
See Also:
  • addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
Обрабатывает метод MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object). Параметр NotificationFilter заключён в MarshalledObject. Параметр Object также заключён в MarshalledObject.
Parameters:
name - Имя MBean, из которого нужно удалить слушателя.
listener - Слушатель, ранее добавленный в этот MBean.
filter - Фильтр, указанный при добавлении слушателя, заключённый в MarshalledObject.
handback - Handback, указанный при добавлении слушателя, заключённый в MarshalledObject.
delegationSubject - Subject, содержащий принципы делегирования, или null, если вместо этого используется принцип аутентификации.
Throws:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и handback.
SecurityException - если у клиента или делегированного Subject нет разрешения на выполнение этой операции.
IOException - если произошла общая ошибка связи.
IllegalArgumentException - Обёртка исключения IllegalArgumentException, когда name или listener равны null.
See Also:
  • addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

addNotificationListeners

Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects) throws InstanceNotFoundException, IOException

Обрабатывает метод MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object).

Регистрация на уведомления от указанных MBean, соответствующих заданным фильтрам. После этого удалённый клиент может получить уведомления с помощью метода fetchNotifications.

Для каждого слушателя исходный NotificationListener и handback сохраняются на стороне клиента; для возможности их идентификации сервер генерирует и возвращает уникальный listenerID. Этот listenerID передаётся вместе с Notifications удалённому клиенту.

Если хотя бы одна пара (имя, фильтр) не может быть зарегистрирована, операция завершается с исключением, и никакие имена или фильтры не регистрируются.

Parameters:
names - ObjectNames MBean, испускающие уведомления.
filters - Массив упакованных представлений NotificationFilters. Элементы этого массива могут быть null.
delegationSubjects - Subjects от имени которого добавляются слушатели. Элементы этого массива могут быть null. Кроме того, сам параметр delegationSubjects может быть null, что эквивалентно массиву нулевых значений с таким же размером, как массивы names и filters.
Returns:
Массив listenerIDs, идентифицирующих локальных слушателей. Этот массив имеет такое же количество элементов, как и параметры.
Throws:
IllegalArgumentException - если names или filters равны null, или если names содержит нулевой элемент, или если три массива не имеют одинаковый размер.
ClassCastException - если один из элементов filters распаковывается в непустой объект, который не является NotificationFilter.
InstanceNotFoundException - если ни один из names не соответствует зарегистрированному MBean.
SecurityException - если для одного из MBeans у клиента или делегированного Subject нет разрешения добавить слушателя.
IOException - если произошла общая ошибка связи.

removeNotificationListeners

void removeNotificationListeners(ObjectName name, Integer[] listenerIDs, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException

Обрабатывает методы removeNotificationListener(ObjectName, NotificationListener) и removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object).

Этот метод удаляет одного или нескольких NotificationListener из заданного MBean в сервере MBean.

NotificationListeners идентифицируются с помощью ID, возвращённых методом addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]).

Parameters:
name - ObjectName MBean, испускающие уведомления.
listenerIDs - Список ID, соответствующих слушателям для удаления.
delegationSubject - Subject, содержащий принципы делегирования или null, если используется принцип аутентификации.
Throws:
InstanceNotFoundException - если заданный name не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - если один из слушателей не найден на стороне сервера. Это исключение может произойти, если MBean отбросил слушателя по какой-либо причине, отличной от вызова MBeanServer.removeNotificationListener.
SecurityException - если у клиента или делегированного Subject нет разрешения на удаление слушателей.
IOException - если произошла общая ошибка связи.
IllegalArgumentException - если ObjectName или listenerIds равны null или если listenerIds содержит нулевой элемент.

fetchNotifications

NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException

Получает уведомления с сервера подключения. Этот метод может блокироваться до тех пор, пока не будет получено хотя бы одно уведомление или пока не истечёт заданный таймаут. Метод также может в любой момент вернуть ноль уведомлений.

Уведомление может быть включено в результат, если его порядковый номер не меньше clientSequenceNumber и этот клиент зарегистрировал хотя бы одного слушателя для MBean, генерирующего уведомление, с фильтром, принимающим это уведомление. Каждый слушатель, заинтересованный в уведомлении, идентифицируется целым числом ID, возвращенным методом addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]).

Параметры:
clientSequenceNumber - первый порядковый номер, интересующий клиента. Если отрицательное значение, оно интерпретируется как порядковый номер, который будет иметь следующее уведомление.
maxNotifications - максимальное количество различных уведомлений для возврата. Массив TargetedNotification в возвращаемом NotificationResult может содержать больше элементов, если то же уведомление появляется более одного раза. Поведение не определено, если этот параметр отрицательный.
timeout - максимальное время в миллисекундах ожидания прибытия уведомления. Может быть 0, чтобы указать, что метод не должен ждать, если нет уведомлений, но должен сразу вернуть результат. Может быть Long.MAX_VALUE, чтобы указать отсутствие таймаута. Поведение не определено, если этот параметр отрицательный.
Возвращает:
Массив NotificationResult.
Исключение:
IOException - если произошла общая ошибка связи.

© 1993, 2021, 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/17/docs/api/java.management.rmi/javax/management/remote/rmi/RMIConnection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API