|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
public interface RelationServiceMBean
Relation Service 负责创建和删除关系类型和关系,还负责处理一致性和提供查询机制。
方法摘要 | |
---|---|
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)
返回关系中存在的所有角色。 |
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)
检索给定关系中具有给定名称的角色值。 |
Boolean |
hasRelation(String relationId)
用给定的关系 id 检查是否存在 Relation Service 中标识的关系。 |
void |
isActive()
检查该 Relation Service 是否处于活动状态。 |
String |
isRelation(ObjectName objectName)
如果 Relation Service 中作为关系添加 MBean,则返回与给定 ObjectName 相关的关系 id。 |
ObjectName |
isRelationMBean(String relationId)
如果用 MBean 表示关系(由用户创建且作为 Relation Service 中的关系添加),则返回该 MBean 的 ObjectName。 |
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> oldRoleValue)
发送给定关系中的角色更新通知 (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> oldRoleValue)
针对给定关系中给定角色的更新来处理 Relation Service 角色映射的更新。 |
方法详细信息 |
---|
void isActive() throws RelationServiceNotRegisteredException
RelationServiceNotRegisteredException
- 如果尚未注册 Relation Serviceboolean getPurgeFlag()
true 表示立即肃清。
setPurgeFlag(boolean)
void setPurgeFlag(boolean purgeFlag)
true 表示立即肃清。
purgeFlag
- 标志getPurgeFlag()
void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeName
- 关系类型的名称roleInfoArray
- 角色信息的数组
IllegalArgumentException
- 如果参数为 null
InvalidRelationTypeException
- 如果:
- 具有该名称的关系类型已经存在
- 两个不同的角色信息使用了同一个名称
- 未提供角色信息
- 提供了一个 null 角色信息
void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeObj
- 关系类型对象(实现该 RelationType 接口)
IllegalArgumentException
- 如果参数为 null或者 relationTypeObj.getRelationTypeName()
返回 null。
InvalidRelationTypeException
- 如果已经存在具有该名称的关系类型List<String> getAllRelationTypeNames()
List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 关系类型的名称
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果不存在具有该名称的关系类型。RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
relationTypeName
- 关系类型的名称roleInfoName
- 角色的名称
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果在 Relation Service 中的关系类型未知
RoleInfoNotFoundException
- 如果该角色不是该关系类型的一部分。void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
此类型的关系对象将从 Relation Service 中移除。
relationTypeName
- 要移除的关系类型名称
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果不存在具有该名称的关系类型void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
按照在参数中提供的角色列表初始化角色。将未按此方法初始化的角色设置为 ObjectName 的空 ArrayList。
发送带类型 RELATION_BASIC_CREATION 的 RelationNotification。
relationId
- 关系标识符,用来唯一地标识 Relation Service 中的关系relationTypeName
- 关系类型的名称(必须在 Relation Service 中创建)roleList
- 要初始化该关系的角色的角色列表(可以为 null)。
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
InvalidRelationIdException
- 如果关系 id 已经使用
RelationTypeNotFoundException
- 如果在 Relation Service 中关系类型是未知的
InvalidRoleValueException
- 如果:
- 两个不同的角色使用了同一个角色名称
- 给定值中引用的 MBean 数小于期望的最小程度
- 提供的值中引用的 MBean 数超过期望的最大程度
- 该值中引用的 MBean 的一个对象不是该角色期望的 MBean 类的对象
- 如果不存在为该角色提供的 MBean
void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
要作为关系添加 MBean,其必须遵循以下做法:
- 实现该 Relation 接口
- 具有 RelationService ObjectName,即当前 Relation Service 的 ObjectName
- 具有在当前 Relation Service 中唯一且未使用的关系 id
- 具有关系类型,即在 Relation Service 中创建的关系类型
- 具有遵循在关系类型中提供的角色信息的角色。
relationObjectName
- 要添加的关系 MBean 的 ObjectName。
IllegalArgumentException
- 如果参数为 null
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
NoSuchMethodException
- 如果 MBean 未实现 Relation 接口
InvalidRelationIdException
- 如果:
- MBean 中没有关系标识符
- 在 Relation Service 中已经使用关系标识符
InstanceNotFoundException
- 如果尚未注册给定 ObjectName 的 MBean
InvalidRelationServiceException
- 如果:
- MBean 中没有 Relation Service 名称
- MBean 中的 Relation Service 名称不是当前 Relation Service 的名称
RelationTypeNotFoundException
- 如果:
- MBean 中没有关系类型名称
- MBean 中的关系类型名称与 Relation Service 中创建的关系类型不对应
InvalidRoleValueException
- 如果:
- 角色中引用的 MBean 数小于期望的最小程度
- 角色中引用的 MBean 数超过期望的最大程度
- 该值中引用的 MBean 的一个对象不是该角色期望的 MBean 类的对象
- 为角色提供的 MBean 不存在
RoleNotFoundException
- 如果为关系类型中不存在的角色提供了值ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 标识关系的关系 id
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在与该 id 相关的关系String isRelation(ObjectName objectName) throws IllegalArgumentException
objectName
- 假定关系的 ObjectName
IllegalArgumentException
- 如果参数为 nullBoolean hasRelation(String relationId) throws IllegalArgumentException
relationId
- 标识关系的关系 id
IllegalArgumentException
- 如果参数为 nullList<String> getAllRelationIds()
Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
roleName
- 要检查的角色名称relationTypeName
- 关系类型的名称
- 如果角色可读,则用 0 表示
- 对应于 RoleStatus.NO_ROLE_WITH_NAME 的整数
- 对应于 RoleStatus.ROLE_NOT_READABLE 的整数
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果 Relation Service 中的关系类型是未知的Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
role
- 要检查的角色relationTypeName
- 关系类型的名称initFlg
- 指定已完成角色的初始化检查,并且不验证写入访问的标志。
- 如果角色可以设置,则用 0 表示
- 对应于 RoleStatus.NO_ROLE_WITH_NAME 的整数
- 对应于 RoleStatus.ROLE_NOT_WRITABLE 的整数
- 对应于 RoleStatus.LESS_THAN_MIN_ROLE_DEGREE 的整数
- 对应于 RoleStatus.MORE_THAN_MAX_ROLE_DEGREE 的整数
- 对应于 RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS 的整数
- 对应于 RoleStatus.REF_MBEAN_NOT_REGISTERED 的整数
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果是未知关系类型void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_CREATION,如果该关系是 Relation Service 内部的一个对象
- RelationNotification.RELATION_MBEAN_CREATION,如果该关系是作为关系添加的 MBean。
源对象是 Relation Service 本身。
它在 Relation Service createRelation() 和 addRelation() 方法中调用。
relationId
- 更新的关系的关系标识符
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在给定关系 id 的关系void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_UPDATE,如果该关系是 Relation Service 内部的一个对象
- RelationNotification.RELATION_MBEAN_UPDATE,如果该关系是作为关系添加的 MBean。
源对象是 Relation Service 本身。
它在关系 MBean setRole()(针对给定角色)和 setRoles()(针对每个角色)方法(RelationSupport 类中提供的实现)中调用。
它还在 Relation Service setRole()(针对给定角色)和 setRoles()(针对每个角色)方法中调用。
relationId
- 更新的关系的关系标识符newRole
- 新的角色(名称和新的值)oldRoleValue
- 旧角色值(ObjectName 对象的列表)
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在给定关系 id 的关系void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_REMOVAL,如果该关系是 Relation Service 内部的一个对象
- RelationNotification.RELATION_MBEAN_REMOVAL,如果该关系是作为关系添加的 MBean。
源对象是 Relation Service 本身。
它在 Relation Service removeRelation() 方法中调用。
relationId
- 更新的关系的关系标识符unregMBeanList
- 期望因为关系移除而注销的 MBean 的 ObjectName 列表(可以为 null)
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在给定关系 id 的关系void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
它在关系 MBean setRole()(针对给定角色)和 setRoles()(针对每个角色)方法(RelationSupport 类中提供的实现)中调用。
它还在 Relation Service setRole()(针对给定角色)和 setRoles()(针对每个角色)方法中调用。
为了允许 Relation Service 维护一致性(MBean 注销时)以及能够执行查询,更新角色时必须调用此方法。
relationId
- 已更新关系的关系标识符newRole
- 新的角色(名称和新值)oldRoleValue
- 旧角色值(ObjectName 对象的列表)
IllegalArgumentException
- 如果参数为 null
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
RelationNotFoundException
- 如果没有给定 id 的关系。void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
发送 RelationNotification 通知,其类型是:
- RelationNotification.RELATION_BASIC_REMOVAL,如果该关系只在 Relation Service 内部
- RelationNotification.RELATION_MBEAN_REMOVAL,如果该关系作为 MBean 注册。
对于在这样的关系中引用的 MBean,将不执行任何操作,
relationId
- 要移除的关系的关系 id
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有对应于给定关系 id 的关系void purgeRelations() throws RelationServiceNotRegisteredException
根据 purgeFlag 值,此方法即可以在接收到关系中引用的 MBean 的注销通知时自动调用(如果将该标志设置为 true),也可以不调用(如果将该标志设置为 false)。
在此情况下,用户负责调用它来维护关系的一致性。一定要记住:如果注销 MBean 但没立即执行肃清,这时如果重新使用 ObjectName 并将其指派给关系中另一个引用的 MBean,那么手动调用此 purgeRelations() 就会出现问题,因为这样会认为此 ObjectName 就是已注销的 MBean,不把它看作新的 MBean。
该行为取决于在其中引用注销的 MBean 的角色数量:
- 如果移除角色中的一个 MBean 引用使其引用数少于最小程度,则必须移除该关系。
- 如果移除 MBean 引用后剩余的引用数仍然在该容量范围内,则保持该关系并在调用其 handleMBeanUnregistration() 回调时更新。
RelationServiceNotRegisteredException
- 如果该 Relation Service 未在 MBean Server 中注册。Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于 CIM "Reference" 和 "ReferenceName" 操作。
mbeanName
- MBean 的 ObjectNamerelationTypeName
- 可以为 null;如果已指定,则将只在搜索时考虑该类型的关系。其他情况下将考虑所有关系类型。roleName
- 可以为 null;如果已指定,则只返回将在该角色中引用的 MBean 关系。其他情况要考虑所有角色。
IllegalArgumentException
- 如果参数为 nullMap<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于 CIM Associator 和 AssociatorName 操作。
mbeanName
- MBean 的 ObjectNamerelationTypeName
- 可以为 null;如果已指定,则将只在搜索时考虑该类型的关系。其他情况下将考虑所有关系类型。roleName
- 可以为 null;如果已指定,则只返回将在该角色中引用的 MBean 关系。其他情况要考虑所有角色。
IllegalArgumentException
- 如果参数为 nullList<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 关系类型名称
IllegalArgumentException
- 如果参数为 null
RelationTypeNotFoundException
- 如果不存在具有该名称的关系类型。List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 关系 idroleName
- 角色名称
RelationServiceNotRegisteredException
- 如果 Relation Service 未注册
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有带给定 id 的关系
RoleNotFoundException
- 如果:
- 不存在具有给定名称的角色
或者
- 角色不可读。
setRole(java.lang.String, javax.management.relation.Role)
RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
relationId
- 关系 idroleNameArray
- 要检索的角色名称的数组
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有带给定 id 的关系setRoles(java.lang.String, javax.management.relation.RoleList)
RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
relationId
- 关系 id
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有指定 id 的关系
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 关系 idroleName
- 角色名称
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有带指定 id 的关系
RoleNotFoundException
- 如果不存在具有指定名称的角色void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException, RelationTypeNotFoundException
将按照其在关系的关系类型中提供的相应角色定义检查角色
通过处理引用的 MBean 注销,Relation Service 将跟踪更改来保持关系的一致性。
relationId
- 关系 idrole
- 要设置的角色(名称和新值)
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有带给定 id 的关系
RoleNotFoundException
- 如果:
- 内部关系
以及
- 角色不存在或不可写
InvalidRoleValueException
- 如果为内部关系且为角色提供的值无效:
- 给定值中引用的 MBean 数小于期望的最小程度
或者
- 提供的值中引用的 MBean 数超过期望的最大程度
或者
- 该值中引用的 MBean 的一个对象不是该角色期望的 MBean 类的对象
或者
- 为该角色提供的 MBean 不存在
RelationTypeNotFoundException
- 如果为未知关系类型getRole(java.lang.String, java.lang.String)
RoleResult setRoles(String relationId, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
将按照其在关系的关系类型中提供的相应角色定义检查角色
通过处理引用的 MBean 注销,Relation Service 跟踪更改来保持关系的一致性。
relationId
- 关系 idroleList
- 要设置的角色列表
RelationServiceNotRegisteredException
- 如果 Relation Service 未在 MBean Server 中注册
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果没有带给定 id 的关系getRoles(java.lang.String, java.lang.String[])
Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 关系 id
ObjectName -> ArrayList of String(角色名)
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在给定关系 id 的关系String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 关系 id
IllegalArgumentException
- 如果参数为 null
RelationNotFoundException
- 如果不存在给定关系 id 的关系
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。