Интерфейс 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
Краткое описание методов
Подробное описание методов
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, переданное в качестве параметраObjectNameсодержит шаблон или не указаноObjectNameдля MBean. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
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).- Параметры:
-
className- Имя класса MBean, который должен быть создан. -
name- Имя объекта MBean. Может быть null. -
loaderName- Имя объекта загрузчика классов, который должен быть использован. -
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. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: переданное в качестве параметра имя класса равно null, переданное в качестве параметраObjectNameсодержит шаблон или не указаноObjectNameдля MBean. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
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.- Параметры:
-
className- Имя класса MBean, который должен быть создан. -
name- Имя объекта MBean. Может быть null. -
params- Массив, содержащий параметры вызываемого конструктора, инкапсулированные вMarshalledObject. Вложенный массив может быть null, что эквивалентно пустому массиву. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. Может быть 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, переданное в качестве параметраObjectNameсодержит шаблон или не указаноObjectNameдля MBean. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
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.- Параметры:
-
className- Имя класса MBean, который должен быть создан. -
name- Имя объекта MBean. Может быть null. -
loaderName- Имя объекта загрузчика классов, который должен быть использован. -
params- Массив, содержащий параметры вызываемого конструктора, инкапсулированные вMarshalledObject. Вложенный массив может быть null, что эквивалентно пустому массиву. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. Может быть 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. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: переданное в качестве параметра имя класса равно null, переданное в качестве параметраObjectNameсодержит шаблон или не указаноObjectNameдля MBean. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
unregisterMBean
void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, IOException
MBeanServerConnection.unregisterMBean(ObjectName).- Parameters:
-
name- Имя объекта MBean, подлежащего удалению. -
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
MBeanRegistrationException- Метод preDeregister (MBeanRegistrationинтерфейс) MBean выбросил исключение. -
RuntimeOperationsException- Оборачивает исключениеjava.lang.IllegalArgumentException: имя объекта в параметре равно null или MBean, который вы пытаетесь удалить, является MBeanMBeanServerDelegate. -
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IOException
MBeanServerConnection.getObjectInstance(ObjectName).- Parameters:
-
name- Имя объекта MBean. -
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Returns:
ObjectInstanceсвязанный с MBean, указанным name. СодержащийObjectNameэтоname, а содержащее имя класса это.getMBeanInfo(name).getClassName()- Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null. -
SecurityException- если у клиента или делегированного Subject нет разрешения на выполнение данной операции. -
IOException- если произошла общая ошибка связи.
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
MBeanServerConnection.queryMBeans(ObjectName, QueryExp). QueryExp обернут в MarshalledObject. - Parameters:
-
name- Шаблон имени объекта, идентифицирующий MBean, которые нужно получить. Если значение равно null или не указаны свойства домена и ключа, будут получены все зарегистрированные MBean. -
query- Выражение запроса, применяемое для выбора MBean, упакованное вMarshalledObject. ЕслиMarshalledObjectсодержит значение null, выражение запроса для выбора MBean не будет применено. -
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Returns:
- Множество содержащее объекты
ObjectInstanceдля выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список. - 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 или не указаны свойства домена и ключа, будут получены имена всех зарегистрированных MBean. -
query- Выражение запроса, применяемое для выбора MBean, упакованное вMarshalledObject. ЕслиMarshalledObjectсодержит значение null, выражение запроса для выбора MBean не будет применено. -
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Returns:
- Множество содержащее ObjectNames для выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
- Throws:
-
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение данной операции. -
IOException- если произошла общая ошибка связи.
isRegistered
boolean isRegistered(ObjectName name, Subject delegationSubject) throws IOException
MBeanServerConnection.isRegistered(ObjectName).- Parameters:
-
name- Имя объекта MBean, подлежащего проверке. -
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Returns:
- True, если MBean уже зарегистрирован в сервере MBean, иначе false.
- Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null. -
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение данной операции. -
IOException- если произошла общая ошибка связи.
getMBeanCount
Integer getMBeanCount(Subject delegationSubject) throws IOException
MBeanServerConnection.getMBeanCount().- Parameters:
-
delegationSubject-Subjectсодержащий делегированные принципы илиnullесли вместо этого используется аутентификационный принцип. - Returns:
- количество зарегистрированных MBean.
- 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- Указанный атрибут недоступен в MBean. -
MBeanException- Оборачивает исключение, брошенное getter MBean. -
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
ReflectionException- Оборачиваетjava.lang.Exceptionвыброшенное при попытке вызвать getter. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null. -
RuntimeMBeanException- Оборачивает исключение runtime, брошенное getter MBean. -
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 не зарегистрирован в сервере MBean. -
ReflectionException- Произошла ошибка при вызове метода getAttributes динамического MBean. -
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.- Parameters:
-
name- Имя MBean, в котором будет установлено атрибут. -
attribute- Идентификатор атрибута, который нужно установить, и значение, на которое нужно установить, упакован вMarshalledObject. -
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется вместо этого принцип аутентификации. - Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InvalidAttributeValueException- Указанное значение для атрибута недействительно. -
MBeanException- Обёртка исключения, брошенного методом установки MBean. -
ReflectionException- Обёртка исключенияjava.lang.Exceptionпри попытке вызвать метод установки. -
RuntimeOperationsException- Обёртка исключенияjava.lang.IllegalArgumentException: имя объекта в параметре null или атрибут в параметре null. -
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи. - See Also:
setAttributes
AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, IOException
MBeanServerConnection.setAttributes(ObjectName, AttributeList). Параметр AttributeList упакован в MarshalledObject.- Parameters:
-
name- Имя объекта MBean, для которого нужно установить атрибуты. -
attributes- Список атрибутов: идентификаторы атрибутов, которые нужно установить, и значения, на которые нужно их установить, упакованы вMarshalledObject. -
delegationSubject-Subject, содержащий делегированные принципы илиnull, если вместо этого используется принцип аутентификации. - Returns:
- Список атрибутов, которые были установлены со своими новыми значениями.
- Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
ReflectionException- Произошла ошибка при попытке вызвать метод getAttributes у динамического MBean. -
RuntimeOperationsException- Обёртка исключенияjava.lang.IllegalArgumentException: имя объекта в параметре null или список атрибутов в параметре null. -
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи. - See Also:
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.- Parameters:
-
name- Имя объекта MBean, на котором нужно вызвать метод. -
operationName- Имя операции, которую нужно вызвать. -
params- Массив параметров, которые нужно установить при вызове операции, упакованный вMarshalledObject. -
signature- Массив подписей операции. Объекты классов будут загружены с помощью того же загрузчика классов, что и MBean, на котором была вызвана операция. Может быть null, что эквивалентно пустому массиву. -
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется принцип аутентификации. - Returns:
- Объект, возвращённый операцией, представляющий результат вызова операции на указанном MBean.
- Throws:
-
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().- Parameters:
-
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется принцип аутентификации. - Returns:
- домен по умолчанию.
- Throws:
-
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
getDomains
String[] getDomains(Subject delegationSubject) throws IOException
MBeanServerConnection.getDomains().- Parameters:
-
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется принцип аутентификации. - Returns:
- список доменов.
- Throws:
-
SecurityException- если у клиента или делегированного субъекта нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи.
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException
MBeanServerConnection.getMBeanInfo(ObjectName).- Parameters:
-
name- Имя MBean для анализа -
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется принцип аутентификации. - Returns:
- Экземпляр
MBeanInfo, позволяющий получить все атрибуты и операции этого MBean. - Throws:
-
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).- Parameters:
-
name-ObjectNameMBean. -
className- Имя класса. -
delegationSubject-Subject, содержащий делегированные принципы илиnull, если используется принцип аутентификации. - Returns:
- true, если указанный MBean является экземпляром указанного класса в соответствии с вышеуказанными правилами, иначе false.
- Throws:
-
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 (обратная связь) также упакован в MarshalledObject.- Параметры:
-
name- Имя MBean, к которому должен быть добавлен слушатель. -
listener- Имя объекта слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean. -
filter- Объект фильтра, инкапсулированный вMarshalledObject. Если фильтр, упакованный вMarshalledObject, имеет значение null, фильтрация перед обработкой уведомлений не будет выполнена. -
handback- Контекст, который будет отправлен слушателю при испускании уведомления, инкапсулированный вMarshalledObject. -
delegationSubject-Subject, содержащий принципы делегирования, илиnull, если используется вместо этого принципал аутентификации. - Исключения:
-
InstanceNotFoundException- Имя MBean слушателя уведомлений или передатчика уведомлений не совпадает ни с одним из зарегистрированных MBean. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean, именованныйlistener, существует, но не реализует интерфейсNotificationListener, илиnameилиlistenerравно null. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject) throws InstanceNotFoundException, ListenerNotFoundException, IOException
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName).- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Имя объекта слушателя, который нужно удалить. -
delegationSubject-Subjectсодержащий принципы делегирования илиnull, если вместо этого используется принципал аутентификации. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBeans. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException, еслиnameилиlistenerравно null. - См. также:
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.- Параметры:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Слушатель, который был ранее добавлен к этому MBean. -
filter- Фильтр, указанный при добавлении слушателя, инкапсулированный вMarshalledObject. -
handback- Обратная связь, указанная при добавлении слушателя, инкапсулированный вMarshalledObject. -
delegationSubject-Subjectсодержащий принципы делегирования илиnull, если вместо этого используется принципал аутентификации. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBeans. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или он не зарегистрирован с заданным фильтром и обратной связью. -
SecurityException- если у клиента, или делегированного Subject, если таковой имеется, нет разрешения на выполнение этой операции. -
IOException- если произошла общая ошибка связи. -
RuntimeOperationsException- ОборачиваетIllegalArgumentException, еслиnameилиlistenerравно null. - См. также:
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 удалённому клиенту.
Если хотя бы одна пара (имя, фильтр) не может быть зарегистрирована, операция завершается ошибкой, и никакие имена или фильтры не регистрируются.
- Параметры:
-
names-ObjectNames, идентифицирующие MBeans, испускающие уведомления. -
filters- массив сериализованных представленийNotificationFilters. Элементы этого массива могут быть null. -
delegationSubjects-Subjectsот имени которого добавляются слушатели. Элементы этого массива могут быть null. Также, сам параметрdelegationSubjectsможет быть null, что эквивалентно массиву нулевых значений с таким же размером, как массивыnamesиfilters. - Возвращает:
- массив
listenerIDs, идентифицирующих локальных слушателей. Этот массив имеет такое же количество элементов, как и у параметров. - Исключения:
-
IllegalArgumentException- еслиnamesилиfiltersравно null, или еслиnamesсодержит null элемент, или если три массива не имеют одинакового размера. -
ClassCastException- если один из элементовfiltersдесериализуется как не-null объект, который не являетсяNotificationFilter. -
InstanceNotFoundException- если ни один изnamesне соответствует ни одному из зарегистрированных MBean. -
SecurityException- если для одного из MBean у клиента, или делегированного 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- список идентификаторов, соответствующих слушателям, которые необходимо удалить. -
delegationSubject-Subject, содержащий делегированные принципы илиnullв случае использования принципа аутентификации вместо этого. - Throws:
-
InstanceNotFoundException- если заданныйnameне соответствует ни одному зарегистрированному MBean. -
ListenerNotFoundException- если один из слушателей не найден на стороне сервера. Это исключение может возникнуть, если MBean отбросил слушателя по какой-либо причине, отличной от вызоваMBeanServer.removeNotificationListener. -
SecurityException- если у клиента или делегированного Subject нет разрешения на удаление слушателей. -
IOException- если произошла общая ошибка связи. -
IllegalArgumentException- еслиObjectNameилиlistenerIdsравно null или еслиlistenerIdsсодержит null-элемент.
fetchNotifications
NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException
Извлекает уведомления из сервера-соединителя. Этот метод может блокироваться до тех пор, пока не появится хотя бы одно уведомление или пока не истечет заданное время ожидания. Метод также может в любой момент вернуть ноль уведомлений.
Уведомление может быть включено в результат, если его порядковый номер не меньше clientSequenceNumber, и этот клиент зарегистрировал хотя бы одного слушателя для MBean, генерирующего уведомление, с фильтром, принимающим уведомление. Каждый слушатель, заинтересованный в уведомлении, идентифицируется целым числом ID, возвращённым методом addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]).
- Parameters:
-
clientSequenceNumber- первый порядковый номер, который интересует клиент. Если отрицателен, он интерпретируется как порядковый номер, который будет иметь следующее уведомление. -
maxNotifications- максимальное количество различных уведомлений для возврата. МассивTargetedNotificationв возвращаемомNotificationResultможет содержать больше элементов, если то же уведомление появляется более одного раза. Поведение не определено, если этот параметр отрицателен. -
timeout- максимальное время в миллисекундах ожидания прихода уведомления. Может быть 0, чтобы указать, что метод не должен ждать, если нет уведомлений, но должен вернуть значение сразу. Может бытьLong.MAX_VALUE, чтобы указать отсутствие таймаута. Поведение не определено, если этот параметр отрицателен. - Returns:
- A
NotificationResult. - Throws:
-
IOException- если произошла общая ошибка связи.
© 1993, 2023, 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/21/docs/api/java.management.rmi/javax/management/remote/rmi/RMIConnection.html