167 lines
13 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.monitor</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/monitor/CounterMonitorMBean.html" title="interface in javax.management.monitor">CounterMonitorMBean</a></td>
<td class="colLast">
<div class="block">
暴露计数器监视器MBean的远程管理界面。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../javax/management/monitor/GaugeMonitorMBean.html" title="interface in javax.management.monitor">GaugeMonitorMBean</a></td>
<td class="colLast">
<div class="block">
暴露量规监视器MBean的远程管理界面。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../javax/management/monitor/MonitorMBean.html" title="interface in javax.management.monitor">MonitorMBean</a></td>
<td class="colLast">
<div class="block">
暴露监视器MBean的远程管理界面。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../javax/management/monitor/StringMonitorMBean.html" title="interface in javax.management.monitor">StringMonitorMBean</a></td>
<td class="colLast">
<div class="block">
暴露字符串监视器MBean的远程管理界面。
</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/monitor/CounterMonitor.html" title="class in javax.management.monitor">CounterMonitor</a></td>
<td class="colLast">
<div class="block">
定义监视器MBean用于观察计数器属性的值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../javax/management/monitor/GaugeMonitor.html" title="class in javax.management.monitor">GaugeMonitor</a></td>
<td class="colLast">
<div class="block">
定义一个监视器MBean用于观察仪表属性的值。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../javax/management/monitor/Monitor.html" title="class in javax.management.monitor">Monitor</a></td>
<td class="colLast">
<div class="block">
定义所有监视器MBean的通用部分。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../javax/management/monitor/MonitorNotification.html" title="class in javax.management.monitor">MonitorNotification</a></td>
<td class="colLast">
<div class="block">
提供监视器MBean发送的通知的定义。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../javax/management/monitor/StringMonitor.html" title="class in javax.management.monitor">StringMonitor</a></td>
<td class="colLast">
<div class="block">
定义一个监视器MBean用于观察字符串属性的值。
</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/monitor/MonitorSettingException.html" title="class in javax.management.monitor">MonitorSettingException</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.monitor Description">Package javax.management.monitor Description</h2>
<div class="block">
<p> <span>提供监视器类的定义。</span> <span>监视器是一个MBean它定期地观察一个或多个其他MBean中属性的值。</span> <span>如果属性满足某个条件,则监视器将发出<a href="../../../javax/management/monitor/MonitorNotification.html" title="javax.management.monitor中的类"><code>MonitorNotification</code></a></span> <span>当监视器MBean周期性地调用<a href="../../../javax/management/MBeanServer.html#getAttribute-javax.management.ObjectName-java.lang.String-"><code>getAttribute</code></a>来检索被监视的属性的值时,它将在<a href="../../../javax/management/monitor/Monitor.html#start--"><code>Monitor.start()</code></a>调用者的访问控制上下文中执行。</span> </p>
<p id="complex"> <span>被监视的值可以是复杂类型中包含的简单值。</span> <span>例如, <a href="../../../java/lang/management/MemoryMXBean.html" title="java.lang.management中的接口">java.lang.management中</a>定义的<tt><code>MemoryMXBean</code></tt>具有<tt><code>MemoryUsage</code></tt>类型的<a href="../../../java/lang/management/MemoryUsage.html" title="java.lang.management中的类">属性HeapMemoryUsage</a></span> <span>要监控MemoryUsage的<tt>used</tt>属性描述的<tt></tt> <i></i>内存量,您可以监视“ <tt>HeapMemoryUsage.used</tt> ”。</span> <span>那个字符串是<a href="../../../javax/management/monitor/MonitorMBean.html#setObservedAttribute-java.lang.String-"><code>setObservedAttribute</code></a>的参数。</span> </p>
<p> <span>用于解释<tt>ObservedAttribute</tt><tt>"HeapMemoryUsage.used"</tt>的规则如下。</span> <span>假设字符串是<i>Ae</i> (所以<i>A</i>将为<tt>"HeapMemoryUsage"</tt> <i>e</i>将在<tt>示例</tt>中为<tt>"used"</tt> )。</span> </p>
<p> <span>首先得到属性<i>A</i>的值。</span> <span>叫它<i>v</i></span> <span><i>v</i>中提取值<i>x</i> ,如下所示:</span> </p>
<ul>
<li> <span>如果<i>v</i><a href="../../../javax/management/openmbean/CompositeData.html" title="javax.management.openmbean中的接口"><code>CompositeData</code></a> ,如果<i>v</i></span> <span><a href="../../../javax/management/openmbean/CompositeData.html#get-java.lang.String-"><code>get</code></a> <i>e</i> )返回一个值,那么<i>x</i>就是该值。</span> </li>
<li> <span>如果<i>v</i>是数组, <i>e</i>是字符串<tt>"length"</tt><i>x</i>是数组的长度。</span> </li>
<li> <span>如果上述规则不产生一个值,并且如果自省,仿佛通过调用<a href="../../../java/beans/Introspector.html#getBeanInfo-java.lang.Class-"><code>Introspector.getBeanInfo</code></a> ,为类<i></i> <i></i> <tt>getClass()</tt>识别与该<i>名字</i>的属性,则<i>x</i>是读取属性值的结果。</span> </li>
</ul>
<p> <span>第三条规则意味着例如,如果属性<tt>HeapMemoryUsage</tt><tt>MemoryUsage</tt> ,则监视<tt>"HeapMemoryUsage.used"</tt>将通过调用<tt>MemoryUsage.getUsed()</tt>获得观察值。</span> </p>
<p> <span>如果<tt>ObservedAttribute</tt>包含多个周期,例如<tt>"ConnectionPool.connectionStats.length"</tt> ,则上述规则被迭代地应用。</span> <span>这里<i>V</i>最初将所述属性<tt>ConnectionPool</tt>的值,并且<i>x</i>将由随<i>e</i>等于<tt>"connectionStats"</tt>应用上述规则来导出。</span> <span>那么<i>v</i>将被设置为该<i>x</i> ,并且通过再次应用规则得到新的<i>x</i> <i>e</i>等于<tt>"length"</tt></span> </p>
<p> <span>虽然建议属性名称是有效的Java标识符但可以将属性称为<tt>HeapMemoryUsage.used</tt></span> <span>这意味着一个<tt>ObservedAttribute</tt><tt>HeapMemoryUsage.used</tt>可能意味着要观察的值是该名称的属性,或属性<tt>used</tt>属性名为<tt>HeapMemoryUsage</tt></span> <span>因此出于兼容性原因,当<tt>ObservedAttribute</tt>包含一段时间( <tt>.</tt> )时,监视器将检查一个属性是否存在,其名称为完整的<tt>ObservedAttribute</tt>字符串( <tt>示例</tt>中为<tt>HeapMemoryUsage.used</tt> )。</span> <span>它通过调用<a href="../../../javax/management/MBeanServer.html#getMBeanInfo-javax.management.ObjectName-"><code>getMBeanInfo</code></a>查看的MBean来查找<a href="../../../javax/management/MBeanAttributeInfo.html" title="javax.management中的类">包含的</a>具有给定名称的<a href="../../../javax/management/MBeanAttributeInfo.html" title="javax.management中的类"><code>MBeanAttributeInfo</code></a></span> <span>如果找到了,那就是被监控的。</span> <span>如果观察到多个MBean那么行为是未指定的如果其中一些具有<tt>HeapMemoryUsage.used</tt>属性,而其他没有。</span> <span><tt>因此</tt> 在这种情况下一个实现可以在一个MBean上调用<tt>getMBeanInfo</tt></span> <span>如果在显示器处于活动状态时检查结果发生变化,那么该行为也是未指定的。</span> </p>
<p> <span>显示器的确切行为详见<a href="#spec">JMX Specification</a></span> <span>以下是一个总结。</span> </p>
<p> <span>有三种显示器:</span> </p>
<ul>
<li><p> <span>A <a href="../../../javax/management/monitor/CounterMonitor.html" title="javax.management.monitor中的类"><code>CounterMonitor</code></a>观察整数类型的属性。</span> <span>假设属性是非负的,并且除了在指定<em>模数</em>下可能的<em>滚转</em>之外,单调增加。</span> <span>每个观察属性都具有关联的<em></em>值。</span> <span>当属性超过其阈值时,发送通知。</span> </p><p> <span>可以指定<em>偏移</em>值。</span> <span>当观测值超过其阈值时,阈值将增加偏移量,或增加足以使阈值大于新观测值的偏移量的倍数。</span> </p><p> <span>A <code>CounterMonitor</code>可以在<em>差模式下工作</em></span> <span>在该模式中,与阈值比较的值是属性的两次连续观察结果之间的差异。</span> </p></li>
<li><p> <span>A <a href="../../../javax/management/monitor/GaugeMonitor.html" title="javax.management.monitor中的类"><code>GaugeMonitor</code></a>观察数值类型的属性。</span> <span>每个观察属性具有相关联的<em>高阈值</em><em>低阈值</em></span> </p><p> <span>当观察到的属性越过高阈值时,如果<em>通知高</em>标志为真,则发送通知。</span> <span>在阈值变得小于或等于低阈值之前,高阈值的后续交叉将不会触发进一步通知。</span> </p><p> <span>当观察到的属性越过低阈值时,如果<em>通知低</em>标志为真,则发送通知。</span> <span>在阈值变得大于或等于高阈值之前,低阈值的后续交叉将不会触发进一步通知。</span> </p><p> <span>通常,只有一个通知高和通知低标志被设置。</span> <span>另一个阈值用于提供<em>滞后</em>机制,以避免当属性围绕阈值产生小的振荡时重复触发通知。</span> </p><p> <span>A <code>GaugeMonitor</code>可以在<em>差模式下工作</em></span> <span>在这种模式下,与高和低阈值比较的值是属性的两个连续观察值之间的差异。</span> </p></li>
<li><p> <span>A <a href="../../../javax/management/monitor/StringMonitor.html" title="javax.management.monitor中的类"><code>StringMonitor</code></a>观察类型为<code>String</code></span> <span>当观察到的属性变得相等和/或不等于给定的字符串时,发送通知。</span> </p></li>
</ul>
<p id="spec"></p>
</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(pdf).</a>
</dd>
</dl>
</div>