316 lines
17 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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&lt;ObjectName,List&lt;String&gt;&gt; dependentAMap =
relSvc.findAssociatedMBeans(moduleA, "DependsOn", "dependent");
Set&lt;ObjectName&gt; 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>