标题：javax.management.monitor
软件包 javax.management.monitor 的描述
1  monitor 类的定义\提供 。Monitor 是一个 MBeans，它定期观察一个或多个其他 MBeans 中的属性值。如果某个属性满足特定的条件，则 Monitor 将发出一个 MonitorNotification。
《JMX 规范》中详细叙述了监视器的具体行为。下面是有关的概述。
共有三种监视器：
CounterMonitor 观察整数类型的属性。假定这些属性为非负数，并且单调递增（以指定的模 进行的可能回滚 除外）。每个 observed 属性都具有相关的阈值。当属性超过其阈值时将发出一个通知。
可以指定一个偏移量 值。当被观察值超过其阈值时，该阈值应按偏移量递增，或者按偏移量的倍数递增，以使其阈值足大于新的被观察值。
CounterMonitor 可以在不同的模式 下操作。在本模式中，与阈值比较所得的值就是对属性的两次连续观察值之间的差分。
GaugeMonitor 观察数字类型的属性。每个被观察属性都具有相关的高阈值 和低阈值。
当 observed 属性超过高阈值时，如果 notify high 标记为 true，则发送一个通知。在尺度值变得小于或等于低阈值之前，后续的超出高阈值的情况不会触发更多的通知。
当 observed 属性低于低阈值时，如果 notify low 标记为 true，则发送一个通知。在尺度值变得小于或等于高阈值之前，后续的超出低阈值的情况不会触发更多的通知。
一般情况下，仅设置 notify high 和 notify low 标志中的一个。使用其他阈值来提供滞后 机制，以避免属性值在阈值附近进行小幅度摆动时重复触发通知。
GaugeMonitor 可以在不同的模式 操作。在本模式中，与高、低阈值相比得出的值就是对属性的两次连续观察值之间的差分。
StringMonitor 观察类型为 String 的属性。当 observed 属性变得等于和/或不等于指定的字符串时，将发出一个通知。
包规范
JMX API 规范，1.2 版（第 9 章, Monitoring） 
从以下版本开始： 
1.52 提供 MBean 所发送的属性更改通知的定义当属性发生更改时，由拥有相关属性的 MBean 负责创建并发送属性更改通知。所以必须由发生属性更改的 MBean 来实现 NotificationBroadcaster 接口。 示例：如果一个称为 myMbean 的 MBean 在其属性 
String myString被修改时通知已注册的侦听器，则 myMbean 创建并忽略以下通知：new AttributeChangeNotification(myMbean, sequenceNumber, timeStamp, msg, "myString", "String", oldValue, newValue); 从以下版本开始：1.53 类 MBeanServerNotificationpublic class MBeanServerNotificationextends Notification表示 MBean 服务器通过 MBeanServerDelegate MBean 所发出的通知。MBean 服务器发出下列类型的通知：MBean 注册、MBean 注销。 要想接收 MBeanServerNotifications，需要声明为表示 MBeanServer 的 javax.management.MBeanServerDelegate MBean 的侦听器。MBeanServerDelegate 的 ObjectName 是：JMImplementation:type=MBeanServerDelegate。 从以下版本开始：1.5
应用
1sendNotificationpublic void sendNotification(Notification notification)发送一个通知。如果在构造方法中指定了一个 Executor，则为每个选定的侦听器提供一项任务，以便将通知发送给该侦听器。 参数： notification - 要发送的通知。protected void handleNotification(NotificationListener listener,                                  Notification notif,                                  Object handback)为了向侦听器发送通知，由该侦听器的 sendNotification 调用此方法。在子类中可重写此方法，以更改通知传递的行为，例如在一个单独的线程中传递该通知。此方法的默认实现等效于 listener.handleNotification(notif, handback); 参数： listener - 要接收通知的侦听器。 notif - 传递给侦听器的通知。 handback - 添加侦听器时提供的回调对象。2 handleNotificationvoid handleNotification(Notification notification,                        Object handback)出现 JMX 通知时调用。此方法的实现应该尽快返回，以避免阻塞其通知广播者。 参数： notification - 通知。 handback - 一个不透明对象，用于帮助侦听器关联关于 MBean 发出者的信息。在 addListener 调用期间将此对象传递到 MBean，并在不经修改的情况下重发到侦听器。MBean 对象不应使用或修改该对象。3 isNotificationEnabledpublic boolean isNotificationEnabled(Notification notification)向侦听器发送指定的通知之前调用。此过滤器将指定属性更改通知的属性名称与每个已启用属性名称进行比较。如果该属性名称等于某个已启用属性名称，则必须将该通知发送到侦听器，并且此方法返回 true。 指定者： 接口 NotificationFilter 中的 isNotificationEnabled参数： notification - 要发送的属性更改通知。 返回： 如果必须将通知发送到侦听器，则返回 true；否则返回 false。4 enableAttributepublic void enableAttribute(String name)                     throws IllegalArgumentException启用所有属性更改通知，这些通知的属性名称等于要发送到侦听器的指定名称。如果指定的名称已在已启用属性名称列表中，则此方法无效。 参数： name - 属性名称。 抛出： IllegalArgumentException - 如果属性名称的参数为 null。5 disableAttributepublic void disableAttribute(String name)禁用所有属性更改通知，这些通知的属性名称等于要发送到侦听器的指定属性名称。如果指定的名称不在已启用属性名称列表中，则此方法无效。 参数： name - 属性名称。6 disableAllAttributespublic void disableAllAttributes()禁用所有属性名称。 7 getEnabledAttributespublic Vector<String> getEnabledAttributes()获得此过滤器的所有已启用属性名称。 返回： 包含所有已启用属性名称的列表。