java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.relation.RelationService
public class RelationService
Relation Service 负责创建和删除关系类型和关系,负责处理一致性并负责提供查询机制。
它通过扩展 NotificationBroadcasterSupport 实现 NotificationBroadcaster,以便在从中移除关系时发送通知。
它实现 NotificationListener 接口,以便能够接收有关注销关系角色中引用的 MBean 的通知以及注销关系 MBean 的通知。
它实现 MBeanRegistration 接口,以便能够检索其 ObjectName 和 MBean Server。
构造方法摘要 | |
---|---|
RelationService(boolean immediatePurgeFlag) 构造方法。 |
方法摘要 | |
---|---|
void |
addRelation(ObjectName relationObjectName) 作为 Relation Service 中的关系添加由用户创建(且由其在 MBean Server 中注册)的 MBean。 |
void |
addRelationType(RelationType relationTypeObj) 作为关系类型添加给定的对象。 |
Integer |
checkRoleReading(String roleName, String relationTypeName) 检查给定 Role 能否以给定类型的关系进行读取。 |
Integer |
checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) 检查给定 Role 能否以给定类型的关系进行设置。 |
void |
createRelation(String relationId, String relationTypeName, RoleList roleList) 创建给定关系类型的简单关系(由 RelationSupport 对象表示),并将其添加到 Relation Service 中。 |
void |
createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) 用给定的角色信息(由 RoleInfo 对象提供)创建一个关系类型(RelationTypeSupport 对象),并将其添加到 Relation Service 中。 |
Map<ObjectName,List<String>> |
findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) 检索与关系中给定关系相关的 MBean。 |
Map<String,List<String>> |
findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) 检索在引用给定 MBean 的引用关系。 |
List<String> |
findRelationsOfType(String relationTypeName) 返回给定类型的关系的关系 id。 |
List<String> |
getAllRelationIds() 返回由 Relation Service 处理的所有关系的所有关系 id。 |
List<String> |
getAllRelationTypeNames() 检索所有已知关系类型的名称。 |
RoleResult |
getAllRoles(String relationId) 返回关系中存在的所有角色。 |
MBeanNotificationInfo[] |
getNotificationInfo() 返回一个 NotificationInfo 对象,它包含通知的 Java 类的名称和发送的通知类型。 |
boolean |
getPurgeFlag() 返回一个标志,以指示何时接收注销关系中引用的 MBean 的通知,指示是否必须执行关系的直接“肃清”(查找不再有效的关系),或者是否只在将显式调用 purgeRelations 方法时执行该操作。 |
Map<ObjectName,List<String>> |
getReferencedMBeans(String relationId) 检索关系的各种角色中引用的 MBean。 |
String |
getRelationTypeName(String relationId) 返回给定关系的相关关系类型的名称。 |
List<ObjectName> |
getRole(String relationId, String roleName) 检索给定关系中给定角色名称的角色值。 |
Integer |
getRoleCardinality(String relationId, String roleName) 检索给定角色中当前引用的 MBean 数。 |
RoleInfo |
getRoleInfo(String relationTypeName, String roleInfoName) 检索给定关系类型的给定角色名称的角色信息。 |
List<RoleInfo> |
getRoleInfos(String relationTypeName) 检索给定关系类型的角色信息(RoleInfo 对象)的列表。 |
RoleResult |
getRoles(String relationId, String[] roleNameArray) 检索给定关系中具有给定名称的角色值。 |
void |
handleNotification(Notification notif, Object handback) 出现 JMX 通知时调用。 |
Boolean |
hasRelation(String relationId) 用给定的关系 id 检查是否存在 Relation Service 中标识的关系。 |
void |
isActive() 检查该 Relation Service 是否处于活动状态。 |
String |
isRelation(ObjectName objectName) 如果已经将 MBean 作为关系添加在 Relation Service 中,则返回与给定 ObjectName 相关的关系 id。 |
ObjectName |
isRelationMBean(String relationId) 如果用 MBean 表示关系(由用户创建且作为 Relation Service 中的关系添加),则返回该 MBean 的 ObjectName。 |
void |
postDeregister() 允许 MBean 在已从 MBean 服务器注销之后执行所需要的任何操作。 |
void |
postRegister(Boolean registrationDone) 允许 MBean 在被注册到 MBean 服务器或注销失败后执行任何所需要的操作。 |
void |
preDeregister() 允许该 MBean 在从 MBean 服务器注销之前执行它所需要的任何操作。 |
ObjectName |
preRegister(MBeanServer server, ObjectName name) 允许 MBean 在被注册到 MBean 服务器之前执行它所需要的任何操作。 |
void |
purgeRelations() 肃清关系。 |
void |
removeRelation(String relationId) 从 Relation Service 移除给定的关系。 |
void |
removeRelationType(String relationTypeName) 从 Relation Service 中移除给定的关系类型。 |
void |
sendRelationCreationNotification(String relationId) 发送关系创建通知 (RelationNotification)。 |
void |
sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) 发送关系移除通知 (RelationNotification)。 |
void |
sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldValue) 发送给定关系中的角色更新通知 (RelationNotification)。 |
void |
setPurgeFlag(boolean purgeFlag) 设置一个标志,以指示注销关系中引用的 MBean 时是否接收通知,是否必须执行关系的直接“肃清”(查找不再有效的关系),或者是否只在显式调用 purgeRelations 方法时执行该操作。 |
void |
setRole(String relationId, Role role) 设置给定关系中的给定角色。 |
RoleResult |
setRoles(String relationId, RoleList roleList) 设置给定关系中的给定角色。 |
void |
updateRoleMap(String relationId, Role newRole, List<ObjectName> oldValue) 针对给定关系中给定角色的更新来处理 Relation Service 角色映射的更新。 |
从类 javax.management.NotificationBroadcasterSupport 继承的方法 |
---|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public RelationService(boolean immediatePurgeFlag)
immediatePurgeFlag
- 指示何时接收注销关系中引用的 MBean 的通知,指示是否必须执行关系的直接“肃清”(查找不再有效的关系),或者是否只在显式调用 purgeRelations 方法时执行该操作。
true 表示立即肃清。
方法详细信息 |
---|
public void isActive() throws RelationServiceNotRegisteredException
RelationServiceMBean
中的
isActive
RelationServiceNotRegisteredException
- 如果未注册 Relation Service
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
复制的描述
MBeanRegistration
中的
preRegister
server
- 将要在其中注册该 MBean 的 MBean 服务器。
name
- 该 MBean 的对象名。如果
MBeanServer
接口中的某个
createMBean
方法或
registerMBean
方法的 name 参数为 null,则此 name 也为 null。在这种情况下,此方法必须为新 MBean 返回非 null 的 ObjectName。
name
参数不为 null,则它通常但并非一定为返回值。
Exception
- MBean 服务器会捕捉此异常并以
MBeanRegistrationException
的形式重新抛出。
public void postRegister(Boolean registrationDone)
MBeanRegistration
复制的描述
MBeanRegistration
中的
postRegister
registrationDone
- 指示该 MBean 是否已在 MBean 服务器中成功注册。false 值意味着注册阶段已失败。
public void preDeregister() throws Exception
MBeanRegistration
复制的描述
MBeanRegistration
中的
preDeregister
Exception
- MBean 服务器会捕捉此异常并以
MBeanRegistrationException
的形式重新抛出。
public void postDeregister()
MBeanRegistration
复制的描述
MBeanRegistration
中的
postDeregister
public boolean getPurgeFlag()
true 表示立即肃清。
RelationServiceMBean
中的
getPurgeFlag
setPurgeFlag(boolean)
public void setPurgeFlag(boolean purgeFlag)
true 表示立即肃清。
RelationServiceMBean
中的
setPurgeFlag
purgeFlag
- 标志
getPurgeFlag()
public void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
RelationServiceMBean
中的
createRelationType
relationTypeName
- 关系类型的名称
roleInfoArray
- 角色信息的数组
IllegalArgumentException
- 如果参数为 null
InvalidRelationTypeException
- 如果:
- 具有该名称的关系类型已经存在
- 两个不同的角色信息使用了同一个名称
- 未提供角色信息
- 提供了一个 null 角色信息
public void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
RelationServiceMBean
中的
addRelationType
relationTypeObj
- 关系类型对象(实现该 RelationType 接口)
IllegalArgumentException
- 如果参数为 null或者
relationTypeObj.getRelationTypeName()
返回 null。
InvalidRelationTypeException
- 如果:
- 两个不同的角色用了同一个名称
- 未提供角色信息
- 提供了一个 null 角色信息
- 具有该名称的关系类型已经存在
public List<String> getAllRelationTypeNames()
RelationServiceMBean
中的
getAllRelationTypeNames
public List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
RelationServiceMBean
中的
getRoleInfos
relationTypeName
- 关系类型的名称
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果不存在具有该名称的关系类型。
public RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
RelationServiceMBean
中的
getRoleInfo
relationTypeName
- 关系类型的名称
roleInfoName
- 角色的名称
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果在 Relation Service 中的关系类型未知
RoleInfoNotFoundException
- 如果该角色不是该关系类型的一部分。
public void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
此类型的关系对象将要从 Relation Service 中移除。
RelationServiceMBean
中的
removeRelationType
relationTypeName
- 要移除的关系类型名称
RelationServiceNotRegisteredException
- 如果该 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果不存在具有该名称的关系类型
public void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
按照在参数中提供的角色列表初始化角色。将未按此方法初始化的角色设置为 ObjectName 的空 ArrayList。
发送类型为 RELATION_BASIC_CREATION 的 RelationNotification。
RelationServiceMBean
中的
createRelation
relationId
- 关系标识符,用来唯一地标识 Relation Service 中的关系
relationTypeName
- 关系类型的名称(必须在 Relation Service 中创建)
roleList
- 要初始化该关系的角色的角色列表(可以为 null)。
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null(角色列表除外,它在未进行角色初始化时可以为 null)
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
InvalidRelationIdException
- 如果关系 id 已经使用
RelationTypeNotFoundException
- 如果在 Relation Service 中关系类型未知
InvalidRoleValueException
- 如果:
- 两个不同的角色使用了同一个角色名称
- 给定值中引用的 MBean 数小于期望的最小程度
- 提供的值中引用的 MBean 数超过期望的最大程度
- 该值中引用的 MBean 的一个对象不是该角色期望的 MBean 类的对象
- 如果不存在为该角色提供的 MBean
public void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
将作为关系