public interface RelationServiceMBean
Modifier and Type | Method and Description |
---|---|
void |
addRelation(ObjectName relationObjectName)
将由用户创建的一个MBean(并由他注册在MBean服务器中)添加为关系服务中的关系。
|
void |
addRelationType(RelationType relationTypeObj)
将给定对象添加为关系类型。
|
Integer |
checkRoleReading(String roleName, String relationTypeName)
检查给定角色是否可以以给定类型的关系读取。
|
Integer |
checkRoleWriting(Role role, String relationTypeName, Boolean initFlag)
检查给定的角色是否可以按给定类型的关系进行设置。
|
void |
createRelation(String relationId, String relationTypeName, RoleList roleList)
创建给定关系类型的简单关系(由RelationSupport对象表示),并将其添加到关系服务中。
|
void |
createRelationType(String relationTypeName, RoleInfo[] roleInfoArray)
使用给定的角色信息(由RoleInfo对象提供)创建关系类型(RelationTypeSupport对象),并将其添加到关系服务中。
|
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()
返回由关系服务处理的所有关系的所有关系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)
检索当前在给定角色中引用的MBeans数。
|
RoleInfo |
getRoleInfo(String relationTypeName, String roleInfoName)
检索给定关系类型的给定角色的角色信息。
|
List<RoleInfo> |
getRoleInfos(String relationTypeName)
检索给定关系类型的角色信息(RoleInfo对象)的列表。
|
RoleResult |
getRoles(String relationId, String[] roleNameArray)
以给定的关系取得给定名称的角色值。
|
Boolean |
hasRelation(String relationId)
检查在关系服务中是否存在与给定关系id相关联的关系。
|
void |
isActive()
检查关系服务是否处于活动状态。
|
String |
isRelation(ObjectName objectName)
如果MBean作为关系服务中的关系添加,则返回与给定ObjectName关联的关系id。
|
ObjectName |
isRelationMBean(String relationId)
如果关系由MBean(由用户创建并在关系服务中添加为关系)表示,则返回MBean的ObjectName。
|
void |
purgeRelations()
清除关系。
|
void |
removeRelation(String relationId)
从关系服务中删除给定的关系。
|
void |
removeRelationType(String relationTypeName)
从关系服务中删除给定的关系类型。
|
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)
处理关系服务角色图更新给定关系中给定角色的更新。
|
void isActive() throws RelationServiceNotRegisteredException
RelationServiceNotRegisteredException
- 如果没有注册
boolean getPurgeFlag()
真的是立即清除。
setPurgeFlag(boolean)
void setPurgeFlag(boolean purgeFlag)
真的是立即清除。
purgeFlag
- 国旗
getPurgeFlag()
void createRelationType(String relationTypeName, RoleInfo[] roleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeName
- 关系类型的名称
roleInfoArray
- 角色信息数组
IllegalArgumentException
- 如果为空参数
InvalidRelationTypeException
- 如果:
- 已经有一个关系类型与该名称
- 相同的名称已被用于两个不同的角色信息
- 没有提供角色信息
- 提供一个空的角色信息
void addRelationType(RelationType relationTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
relationTypeObj
- 关系类型对象(实现RelationType接口)
IllegalArgumentException
- 如果为空参数或如果
relationTypeObj.getRelationTypeName()
返回null。
InvalidRelationTypeException
- 如果已经有该名称的关系类型
List<String> getAllRelationTypeNames()
List<RoleInfo> getRoleInfos(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 关系类型的名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果与该名称没有关系类型。
RoleInfo getRoleInfo(String relationTypeName, String roleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
relationTypeName
- 关系类型的名称
roleInfoName
- 角色名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
RoleInfoNotFoundException
- 如果角色不是关系类型的一部分。
void removeRelationType(String relationTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
该类型的关系对象将从关系服务中删除。
relationTypeName
- 要删除的关系类型的名称
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果与该名称没有关系类型
void createRelation(String relationId, String relationTypeName, RoleList roleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
角色根据参数中提供的角色列表进行初始化。 没有以这种方式初始化的那些设置为ObjectName的空ArrayList。
发送一个类型为RELATION_BASIC_CREATION的关系通知。
relationId
- 关系标识符,用于唯一标识关系服务内的关系
relationTypeName
- 关系类型的名称(必须在关系服务中创建)
roleList
- 用于初始化关系角色的角色列表(可以为null)。
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
InvalidRelationIdException
- 如果关系id已经使用
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
InvalidRoleValueException
- 如果:
- 相同的角色名称用于两个不同的角色
- 给定值中引用的MBean的数量小于预期的最小度
- 提供的值中引用的MBean的数量超过预期的最大度
- 值中的一个引用的MBean不是该角色的MBean类的对象
- 为该角色提供的MBean不存在
void addRelation(ObjectName relationObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
要作为关系添加,MBean必须符合以下条件:
- 实现Relation界面
- 为RelationService ObjectName提供当前关系服务的ObjectName
- 在当前关系服务中具有唯一且不被使用的关系ID
- 在关系服务中创建关系类型
- 具有符合关系类型中提供的角色信息的角色。
relationObjectName
- 要添加的关系MBean的ObjectName。
IllegalArgumentException
- 如果为空参数
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
NoSuchMethodException
- 如果MBean不实现关系接口
InvalidRelationIdException
- 如果:
- 在MBean中没有关系标识符
- 关系标识符已经在关系服务中使用
InstanceNotFoundException
- 如果给定的ObjectName的MBean尚未注册
InvalidRelationServiceException
- 如果:
- 在MBean中没有关系服务名称
- MBean中的关系服务名称不是当前的关系服务
RelationTypeNotFoundException
- 如果:
- 在MBean中没有关系类型名称
- MBean中的关系类型名称与关系服务中创建的关系类型不对应
InvalidRoleValueException
- 如果:
- 一个角色中引用的MBean的数量小于预期的最小度
- 角色中引用的MBean的数量超过预期的最大度
- 值中的一个引用的MBean不是该角色的MBean类的对象
- 为一个角色提供的MBean不存在
RoleNotFoundException
- 如果为关系类型中不存在的角色提供值
ObjectName isRelationMBean(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
-
relationId
关系的关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 与该id无关系
String isRelation(ObjectName objectName) throws IllegalArgumentException
objectName
- 假定关系的ObjectName
IllegalArgumentException
- 如果为空参数
Boolean hasRelation(String relationId) throws IllegalArgumentException
relationId
-
relationId
关系的关系id
IllegalArgumentException
- 如果为空参数
Integer checkRoleReading(String roleName, String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
roleName
- 要检查的角色的名称
relationTypeName
- 关系类型的名称
- 如果角色可以读取,则为0
- 对应于RoleStatus.NO_ROLE_WITH_NAME的整数
- 对应于RoleStatus.ROLE_NOT_READABLE的整数
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果关系类型在关系服务中未知
Integer checkRoleWriting(Role role, String relationTypeName, Boolean initFlag) throws IllegalArgumentException, RelationTypeNotFoundException
role
- 要检查的角色
relationTypeName
- 关系类型的名称
initFlag
- 用于指定对角色初始化进行检查的标志,不得验证写访问。
- 如果角色可以设置为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
- 如果为空参数
RelationTypeNotFoundException
- 如果未知的关系类型
void sendRelationCreationNotification(String relationId) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_CREATION,如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_CREATION如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它在Relation Service中创建createRelation()和addRelation()方法。
relationId
- 更新关系的关系标识符
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
void sendRoleUpdateNotification(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_UPDATE如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_UPDATE如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它被称为关于MBean setRole()(用于给定角色)和setRoles()(对于每个角色)方法(RelationSupport类中提供的实现)。
它也在Relation Service中调用setRole()(用于给定的角色)和setRoles()(对于每个角色)的方法。
relationId
- 更新关系的关系标识符
newRole
- 新角色(名称和新值)
oldRoleValue
- 旧角色值(ObjectName对象列表)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
void sendRelationRemovalNotification(String relationId, List<ObjectName> unregMBeanList) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_REMOVAL,如果关系是关系服务内部的一个对象
- RelationNotification.RELATION_MBEAN_REMOVAL,如果关系是作为关系添加的MBean。
源对象是Relation Service本身。
它在Relation Service中调用removeRelation()方法。
relationId
- 更新关系的关系标识符
unregMBeanList
- 由于关系删除而预期未注册的MBean的
unregMBeanList
列表(可以为null)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
void updateRoleMap(String relationId, Role newRole, List<ObjectName> oldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
它被称为关于MBean setRole()(用于给定角色)和setRoles()(对于每个角色)方法(RelationSupport类中提供的实现)。
它也在Relation Service中调用setRole()(用于给定的角色)和setRoles()(对于每个角色)的方法。
为了使关系服务保持一致性(在MBean注销的情况下)并且能够执行查询,当更新角色时,必须调用此方法。
relationId
- 更新关系的关系标识符
newRole
- 新角色(名称和新值)
oldRoleValue
- 旧角色值(ObjectName对象列表)
IllegalArgumentException
- 如果为空参数
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
RelationNotFoundException
- 如果没有给定id的关系。
void removeRelation(String relationId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
发送关系通知通知,其类型为:
- RelationNotification.RELATION_BASIC_REMOVAL,如果关系仅在关系服务内部
- RelationNotification.RELATION_MBEAN_REMOVAL,如果关系被注册为MBean。
对于在这种关系中引用的MBean,将不会做任何事情,
relationId
- 要删除的关系的关系id
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果没有对应给定关系id的关系
void purgeRelations() throws RelationServiceNotRegisteredException
根据purgeFlag值,当接收到关联中引用的MBean的注销的通知(如果该标志设置为true),或者(如果该标志设置为false),则该方法被自动调用。
在这种情况下,用户可以调用它来保持关系的一致性。 要记住,如果MBean未注册,并且清除不立即完成,如果ObjectName被重用并分配给关系中引用的另一个MBean,则手动调用此purgeRelations()方法将导致麻烦,因为将ObjectName作为对应于未注册的MBean,没有看到新的MBean。
行为取决于引用未注册的MBean的角色的基数:
- 如果删除角色中的一个MBean引用使其引用次数小于最小度,则必须删除该关系。
- 如果删除MBean引用后剩余的引用数仍然在基数范围内,请保持关系并更新它调用其handleMBeanUnregistration()回调。
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册。
Map<String,List<String>> findReferencingRelations(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于CIM“引用”和“引用名称”操作。
mbeanName
- MBean的ObjectName
relationTypeName
- 可以为null;
如果指定的话,只有这种类型的关系才会在搜索中被考虑。
否则会考虑所有的关系类型。
roleName
- 可以为null;
如果指定,则仅返回该角色中引用MBean的关系。
否则所有角色都被考虑。
IllegalArgumentException
- 如果为空参数
Map<ObjectName,List<String>> findAssociatedMBeans(ObjectName mbeanName, String relationTypeName, String roleName) throws IllegalArgumentException
这对应于CIM Associator和AssociatorNames操作。
mbeanName
- MBean的ObjectName
relationTypeName
- 可以为null;
如果指定的话,只有这种类型的关系才会在搜索中被考虑。
否则会考虑所有的关系类型。
roleName
- 可以为null;
如果指定,则仅考虑在该角色中引用MBean的关系。
否则所有角色都被考虑。
IllegalArgumentException
- 如果为空参数
List<String> findRelationsOfType(String relationTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
relationTypeName
- 关系类型名称
IllegalArgumentException
- 如果为空参数
RelationTypeNotFoundException
- 如果与该名称没有关系类型。
List<ObjectName> getRole(String relationId, String roleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 关系id
roleName
- 角色名称
RelationServiceNotRegisteredException
- 如果关系服务未注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
RoleNotFoundException
- 如果:
- 给定名字没有任何作用
要么
- 角色不可读。
setRole(java.lang.String, javax.management.relation.Role)
RoleResult getRoles(String relationId, String[] roleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
relationId
- 关系id
roleNameArray
- 要检索的角色的名称数组
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为null参数
RelationNotFoundException
- 如果与给定的id没有关系
setRoles(java.lang.String, javax.management.relation.RoleList)
RoleResult getAllRoles(String relationId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
relationId
- 关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果没有给定id的关系
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
Integer getRoleCardinality(String relationId, String roleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
relationId
- 关系id
roleName
- 角色名称
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
RoleNotFoundException
- 如果没有给定名称的角色
void setRole(String relationId, Role role) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException, RelationTypeNotFoundException
将根据其在关系类型中提供的相应角色定义来检查角色
关系服务将跟踪变更,以通过处理引用的MBean注销来保持关系的一致性。
relationId
- 关系id
role
- 要设置的角色(名称和新值)
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
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注销来跟踪更改以保持关系的一致性。
relationId
- 关系id
roleList
- 要设置的角色列表
RelationServiceNotRegisteredException
- 如果关系服务未在MBean服务器中注册
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果与给定的id没有关系
getRoles(java.lang.String, java.lang.String[])
Map<ObjectName,List<String>> getReferencedMBeans(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 关系id
ObjectName - > ArrayList的String(角色名称)
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系
String getRelationTypeName(String relationId) throws IllegalArgumentException, RelationNotFoundException
relationId
- 关系id
IllegalArgumentException
- 如果为空参数
RelationNotFoundException
- 如果给定的关系id没有关系