Skip navigation links
Java™ Platform
Standard Ed. 8

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可能意味着要观察的值是该名称的属性,或属性used属性名为HeapMemoryUsage 因此出于兼容性原因,当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