Интерфейс 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 |
|
Integer[] |
addNotificationListeners |
|
void |
close() |
Закрывает это соединение. |
ObjectInstance |
createMBean |
Обрабатывает метод MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]). |
ObjectInstance |
createMBean |
Подробное описание методов
getConnectionId
String getConnectionId() throws IOException
Возвращает идентификатор соединения. Эта строка отличается для каждого открытого соединения с заданным сервером RMI-коннектора.
- Возвращает:
- идентификатор соединения
- Исключение:
-
IOException- если произошла общая ошибка связи. - См. также:
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.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:
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:
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- если произошла общая ошибка связи. - См. также:
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- если произошла общая ошибка связи. - См. также:
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-ObjectNameMBean. -
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
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:
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:
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-ObjectNamesMBean, испускающие уведомления. -
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-ObjectNameMBean, испускающие уведомления. -
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