Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package javax.management.monitor

提供监视器类的定义。

See: 描述

Package javax.management.monitor Description

提供监视器类的定义。 监视器是一个MBean,它定期地观察一个或多个其他MBean中属性的值。 如果属性满足某个条件,则监视器发出MonitorNotification 当监视器MBean周期性地调用getAttribute以检索被监视的属性的值时,它将在Monitor.start()调用者的访问控制上下文中执行。

被监视的值可以是复杂类型中包含的简单值。 例如, java.lang.management中定义的MemoryMXBean具有MemoryUsage类型的属性HeapMemoryUsage 要监视MemoryUsage的used属性描述的 内存量,可以监视“ HeapMemoryUsage.used ”。 那个字符串将是setObservedAttribute的参数。

用于解释ObservedAttribute的规则"HeapMemoryUsage.used"如下。 假设字符串是Ae (所以A将为"HeapMemoryUsage"e将在示例中为"used" )。

首先得到属性A的值。 叫它v v中提取值x ,如下所示:

第三条规则意味着例如,如果属性HeapMemoryUsageMemoryUsage ,则监视"HeapMemoryUsage.used"将通过调用MemoryUsage.getUsed()获得观察值。

如果ObservedAttribute包含多个周期,例如"ConnectionPool.connectionStats.length" ,则上述规则被迭代地应用。 这里,V最初将所述属性ConnectionPool的值,并且x将由随e等于"connectionStats"应用上述规则来导出。 那么v将被设置为x ,并且通过再次应用规则来导出新的xe等于"length"

虽然建议属性名称为有效的Java标识符,但可以将属性称为HeapMemoryUsage.used 这意味着ObservedAttributeHeapMemoryUsage.used可能意味着观察值是该名称的属性,或者叫HeapMemoryUsage属性中的属性used。 因此,出于兼容性原因,当ObservedAttribute包含一段时间( . )时,监视器将检查一个属性是否存在,其名称为完整的ObservedAttribute字符串( 示例中为HeapMemoryUsage.used )。 它通过调用getMBeanInfo为观察到的MBean,并寻找一个包含MBeanAttributeInfo与给定的名称。 如果找到了,那就是被监控的。 如果观察到一个以上的MBean,行为是未指定的,如果其中一些具有HeapMemoryUsage.used属性,而其他没有。 因此 ,在这种情况下,一个实现可以在一个MBean中调用getMBeanInfo 如果在显示器处于活动状态时检查结果发生变化,那么该行为也是未指定的。

显示器的确切行为详见JMX Specification 以下是一个总结。

有三种显示器:

从以下版本开始:
1.5
另请参见:
Java Platform documentation on JMX technology, in particular the JMX Specification, version 1.4(pdf).
Skip navigation links
Java™ Platform
Standard Ed. 8