mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-06 17:25:01 +08:00
316 lines
17 KiB
HTML
316 lines
17 KiB
HTML
<div class="header">
|
||
<h1 class="title" title="Package">Package javax.management.relation</h1>
|
||
<div class="docSummary">
|
||
<div class="block">
|
||
提供关系服务的定义。
|
||
</div>
|
||
</div>
|
||
<p>See: <a href="#package.description">描述</a></p>
|
||
</div><div class="contentContainer">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Interface Summary table, listing interfaces, and an explanation">
|
||
<caption>
|
||
<span>接口摘要</span>
|
||
<span class="tabEnd"> </span>
|
||
</caption>
|
||
<tbody>
|
||
<tr>
|
||
<th class="colFirst" scope="col">接口</th>
|
||
<th class="colLast" scope="col">描述</th>
|
||
</tr>
|
||
</tbody>
|
||
<tbody>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/Relation.html" title="interface in javax.management.relation">Relation</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
这个接口必须由任何MBean类来实现,该类可以表示使用关系服务管理的关系。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationServiceMBean.html" title="interface in javax.management.relation">RelationServiceMBean</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
关系服务负责创建和删除关系类型和关系,处理一致性和提供查询机制。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationSupportMBean.html" title="interface in javax.management.relation">RelationSupportMBean</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RelationSupport对象由Relation Service内部使用,用于表示任意关系类型的简单关系(只有角色,无属性或方法)以及无限数量的角色。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationType.html" title="interface in javax.management.relation">RelationType</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RelationType接口必须由预期表示关系类型的任何类来实现。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table> </li>
|
||
<li class="blockList">
|
||
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Class Summary table, listing classes, and an explanation">
|
||
<caption>
|
||
<span>类摘要</span>
|
||
<span class="tabEnd"> </span>
|
||
</caption>
|
||
<tbody>
|
||
<tr>
|
||
<th class="colFirst" scope="col">类</th>
|
||
<th class="colLast" scope="col">描述</th>
|
||
</tr>
|
||
</tbody>
|
||
<tbody>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/MBeanServerNotificationFilter.html" title="class in javax.management.relation">MBeanServerNotificationFilter</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
<span>筛选<a href="../../../javax/management/MBeanServerNotification.html" title="javax.management中的类"><code>MBeanServerNotification</code></a> 。</span>
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationNotification.html" title="class in javax.management.relation">RelationNotification</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
关系服务变更通知。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationService.html" title="class in javax.management.relation">RelationService</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
关系服务负责创建和删除关系类型和关系,处理一致性和提供查询机制。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationSupport.html" title="class in javax.management.relation">RelationSupport</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RelationSupport对象由Relation Service内部使用,用于表示任意关系类型的简单关系(只有角色,无属性或方法)以及无限数量的角色。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationTypeSupport.html" title="class in javax.management.relation">RelationTypeSupport</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RelationTypeSupport对象实现RelationType接口。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/Role.html" title="class in javax.management.relation">Role</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
表示角色:包括角色名称和引用的MBean(通过其ObjectNames)。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleInfo.html" title="class in javax.management.relation">RoleInfo</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RoleInfo对象总结了关系类型中的角色。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleList.html" title="class in javax.management.relation">RoleList</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RoleList表示角色列表(Role对象)。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleResult.html" title="class in javax.management.relation">RoleResult</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
表示多次访问关系的几个角色(用于阅读或写入)的结果。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleStatus.html" title="class in javax.management.relation">RoleStatus</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
此类描述访问角色时可能遇到的各种问题。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleUnresolved.html" title="class in javax.management.relation">RoleUnresolved</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
代表一个未解决的角色:由于问题而无法从关系中检索到的角色。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleUnresolvedList.html" title="class in javax.management.relation">RoleUnresolvedList</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
RoleUnresolvedList表示RoleUnresolved对象的列表,表示由于在尝试访问(读取或写入)角色时遇到问题,不会从关系中检索到角色。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table> </li>
|
||
<li class="blockList">
|
||
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Exception Summary table, listing exceptions, and an explanation">
|
||
<caption>
|
||
<span>异常摘要</span>
|
||
<span class="tabEnd"> </span>
|
||
</caption>
|
||
<tbody>
|
||
<tr>
|
||
<th class="colFirst" scope="col">异常</th>
|
||
<th class="colLast" scope="col">描述</th>
|
||
</tr>
|
||
</tbody>
|
||
<tbody>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/InvalidRelationIdException.html" title="class in javax.management.relation">InvalidRelationIdException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当已经使用关系id提供给关系时,引发异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/InvalidRelationServiceException.html" title="class in javax.management.relation">InvalidRelationServiceException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当提供无效的关系服务时,引发异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/InvalidRelationTypeException.html" title="class in javax.management.relation">InvalidRelationTypeException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
关系类型无效
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/InvalidRoleInfoException.html" title="class in javax.management.relation">InvalidRoleInfoException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当在角色信息中,其最小度大于其最大度时,会引发此异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/InvalidRoleValueException.html" title="class in javax.management.relation">InvalidRoleValueException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
角色值无效。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationException.html" title="class in javax.management.relation">RelationException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
这个类是在关系管理期间可以提出的任何异常的超类。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationNotFoundException.html" title="class in javax.management.relation">RelationNotFoundException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当关系服务中的给定关系ID没有关系时,会引发此异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationServiceNotRegisteredException.html" title="class in javax.management.relation">RelationServiceNotRegisteredException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当对关系服务进行访问并且没有注册时,会引发此异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RelationTypeNotFoundException.html" title="class in javax.management.relation">RelationTypeNotFoundException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当在关系服务中没有给定名称的关系类型时,引发异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleInfoNotFoundException.html" title="class in javax.management.relation">RoleInfoNotFoundException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当给定的关系类型中没有给定名称的角色信息时,会引发此异常。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colFirst"><a href="../../../javax/management/relation/RoleNotFoundException.html" title="class in javax.management.relation">RoleNotFoundException</a></td>
|
||
<td class="colLast">
|
||
<div class="block">
|
||
当关系中的角色不存在或不可读或不可设置时,引发此异常。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table> </li>
|
||
</ul>
|
||
<a name="package.description">
|
||
<!-- --> </a>
|
||
<h2 title="Package javax.management.relation Description">Package javax.management.relation Description</h2>
|
||
<div class="block">
|
||
<p> <span>提供关系服务的定义。</span> <span>关系服务用于记录MBean服务器中的MBean之间的关系。</span> <span>关系服务本身就是一个MBean。</span> <span>可以在MBean服务器中注册一个<a href="../../../javax/management/relation/RelationService.html" title="javax.management.relation中的类"><code>RelationService</code></a> MBean的多个实例。</span> </p>
|
||
<p> <span><em>关系类型</em>定义了MBean之间的关系。</span> <span>它包含了MBeans在关系中<em>扮演的角色</em> 。</span> <span>通常在关系类型中至少有两个角色。</span> </p>
|
||
<p> <span><em>关系</em>是一个关系类型的命名实例,其中特定的MBean出现在角色中,由他们的<a href="../../../javax/management/ObjectName.html" title="javax.management中的类"><code>ObjectName</code>代表</a> 。</span> </p>
|
||
<p> <span>例如,假设有<code>Module</code> MBean,表示应用程序中的模块。</span> <span>一个<code>DependsOn</code>关系类型可以表示某些模块依赖于其他模块的关系,可以用来确定模块启动或停止的顺序。</span> <span><code>DependsOn</code>关系类型有两个角色: <code>dependent</code>和<code>dependedOn</code> 。</span> </p>
|
||
<p> <span>每个角色都是<em>键入的</em> ,这意味着该角色中出现的MBean必须是角色类型的一个实例。</span> <span>在<code>DependsOn</code>示例中,这两个角色的类型为<code>Module</code> 。</span> </p>
|
||
<p> <span>每个角色都有一个<em>基数</em> ,它为给定的关系实例中可以出现在该角色中的MBean的数量提供下限和上限。</span> <span>通常,下限和上限都是1,正好有一个MBean出现在角色中。</span> <span>基数只限制每个关系实例的角色中的MBean的数量。</span> <span>相同的MBean可以在任何数量的关系类型的实例中以相同的角色出现。</span> <span>在<code>DependsOn</code>示例中,给定的模块可以依赖于许多其他模块,并且取决于许多其他模块,但是任何给定的关系实例只链接一个<code>dependent</code>模块,正好一个<code>dependedOn</code>模块。</span> </p>
|
||
<p> <span>可以明确地创建关系类型,作为实现<a href="../../../javax/management/relation/RelationType.html" title="javax.management.relation中的接口"><code>RelationType</code></a>接口的对象,通常为<a href="../../../javax/management/relation/RelationTypeSupport.html" title="javax.management.relation中的类"><code>RelationTypeSupport</code></a> 。</span> <span>或者,可以使用Relation Service的<a href="../../../javax/management/relation/RelationServiceMBean.html#createRelationType-java.lang.String-javax.management.relation.RoleInfo:A-"><code>createRelationType</code></a>方法<a href="../../../javax/management/relation/RelationServiceMBean.html#createRelationType-java.lang.String-javax.management.relation.RoleInfo:A-">隐式</a>创建它。</span> </p>
|
||
<p> <span>可以明确地创建关系实例,作为实现<a href="../../../javax/management/relation/Relation.html" title="javax.management.relation中的接口"><code>Relation</code></a>接口的对象,通常为<a href="../../../javax/management/relation/RelationSupport.html" title="javax.management.relation中的类"><code>RelationSupport</code></a> 。</span> <span>(A <code>RelationSupport</code>本身是一个有效的MBean,所以它可以在MBean服务器中注册,尽管不是必需的)。或者,可以使用Relation Service的<a href="../../../javax/management/relation/RelationServiceMBean.html#createRelation-java.lang.String-java.lang.String-javax.management.relation.RoleList-"><code>createRelation</code></a>方法<a href="../../../javax/management/relation/RelationServiceMBean.html#createRelation-java.lang.String-java.lang.String-javax.management.relation.RoleList-">隐式</a>创建关系实例。</span> </p>
|
||
<p> <span><code>DependsOn</code>示例可能编码如下。</span> </p>
|
||
<pre> <span>import java.util.*;
|
||
import javax.management.*;
|
||
import javax.management.relation.*;
|
||
|
||
// ...
|
||
MBeanServer mbs = ...;
|
||
|
||
// Create the Relation Service MBean
|
||
ObjectName relSvcName = new ObjectName(":type=RelationService");
|
||
RelationService relSvcObject = new RelationService(true);
|
||
mbs.registerMBean(relSvcObject, relSvcName);
|
||
|
||
// Create an MBean proxy for easier access to the Relation Service
|
||
RelationServiceMBean relSvc =
|
||
MBeanServerInvocationHandler.newProxyInstance(mbs, relSvcName,
|
||
RelationServiceMBean.class,
|
||
false);
|
||
|
||
// Define the DependsOn relation type
|
||
RoleInfo[] dependsOnRoles = {
|
||
new RoleInfo("dependent", Module.class.getName()),
|
||
new RoleInfo("dependedOn", Module.class.getName())
|
||
};
|
||
relSvc.createRelationType("DependsOn", dependsOnRoles);
|
||
|
||
// Now define a relation instance "moduleA DependsOn moduleB"
|
||
|
||
ObjectName moduleA = new ObjectName(":type=Module,name=A");
|
||
ObjectName moduleB = new ObjectName(":type=Module,name=B");
|
||
|
||
Role dependent = new Role("dependent", Collections.singletonList(moduleA));
|
||
Role dependedOn = new Role("dependedOn", Collections.singletonList(moduleB));
|
||
Role[] roleArray = {dependent, dependedOn};
|
||
RoleList roles = new RoleList(Arrays.asList(roleArray));
|
||
relSvc.createRelation("A-DependsOn-B", "DependsOn", roles);
|
||
|
||
// Query the Relation Service to find what modules moduleA depends on
|
||
Map<ObjectName,List<String>> dependentAMap =
|
||
relSvc.findAssociatedMBeans(moduleA, "DependsOn", "dependent");
|
||
Set<ObjectName> dependentASet = dependentAMap.keySet();
|
||
// Set of ObjectName containing moduleB</span> </pre>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.5
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../../technotes/guides/jmx/"> Java Platform documentation on JMX technology</a>, in particular the
|
||
<a href="../../../../technotes/guides/jmx/JMX_1_4_specification.pdf"> JMX Specification, version 1.4</a>
|
||
</dd>
|
||
</dl>
|
||
</div> |