模块  java.management

Interface ModelMBeanNotificationBroadcaster

  • All Superinterfaces:
    NotificationBroadcaster
    All Known Subinterfaces:
    ModelMBean
    所有已知实现类:
    RequiredModelMBean

    public interface ModelMBeanNotificationBroadcaster
    extends NotificationBroadcaster
    此接口必须由ModelMBeans实现。 每个JMX代理都必须附带此接口的实现。

    希望可管理的Java资源使用MBeanServer的createMBean方法实例化ModelMBean。 然后,资源为ModelMBean实例设置ModelMBeanInfo(带有描述符)。 可以从MBean,连接器/适配器(如其他MBean)访问通过ModelMBean的ModelMBeanInfo公开的属性和操作。 通过ModelMBeanInfo描述符,可以定义托管应用程序中的值和方法,并将其映射到ModelMBean的属性和操作。 此映射可以在开发期间在XML格式的文件中定义,也可以在运行时以动态和编程方式定义。

    在MBeanServer中实例化的每个ModelMBean都变得易于管理:其属性和操作可通过连接到该MBeanServer的连接器/适配器远程访问。 除非符合JMX的MBean,否则无法在MBeanServer中注册Java对象。 通过实例化ModelMBean,可以保证MBean的有效性。

    必须在每个公共方法上抛出MBeanException和RuntimeOperationsException。 这允许从分布式通信(RMI,EJB等)中包装异常。 除了在规范和javadoc中描述的场景之外,实现不必抛出这些异常。

    从以下版本开始:
    1.5
    • 方法详细信息

      • sendNotification

        void sendNotification​(Notification ntfyObj)
                       throws MBeanException,
                              RuntimeOperationsException
        发送通知,该通知作为jmx.modelmbean.generic通知传递给ModelMBean上已注册的通知侦听器。
        参数
        ntfyObj - 要传递给侦听器对象的“handleNotification”方法的通知。
        异常
        MBeanException - 包装分布式通信异常。
        RuntimeOperationsException - 包装IllegalArgumentException:参数中传递的Notification对象为null。
      • sendNotification

        void sendNotification​(String ntfyText)
                       throws MBeanException,
                              RuntimeOperationsException
        发送一个Notification,其中包含传递给ModelMBean上已注册的Notification侦听器的文本字符串。
        参数
        ntfyText - 要在通知中传递给侦听器对象的“handleNotification”方法的文本。 构造的通知将是:键入“jmx.modelmbean.generic”源此ModelMBean实例序列1
        异常
        MBeanException - 包装分布式通信异常。
        RuntimeOperationsException - 包装IllegalArgumentException:参数中传递的Notification文本字符串为null。
      • sendAttributeChangeNotification

        void sendAttributeChangeNotification​(AttributeChangeNotification notification)
                                      throws MBeanException,
                                             RuntimeOperationsException
        发送一个attributeChangeNotification,该属性传递给ModelMBean上已注册的attributeChangeNotification侦听器。
        参数
        notification - 要传递给侦听器对象的“handleNotification”方法的通知。
        异常
        MBeanException - 包装分布式通信异常。
        RuntimeOperationsException - 包装IllegalArgumentException:参数中传递的AttributeChangeNotification对象为null。
      • sendAttributeChangeNotification

        void sendAttributeChangeNotification​(Attribute oldValue,
                                             Attribute newValue)
                                      throws MBeanException,
                                             RuntimeOperationsException
        将包含属性的旧值和新值的attributeChangeNotification发送到ModelMBean上已注册的AttributeChangeNotification侦听器。
        参数
        oldValue - 属性的原始值
        newValue - 属性的当前值
          The constructed attributeChangeNotification will be:
           type        "jmx.attribute.change"
           source      this ModelMBean instance
           sequence    1
           attributeName oldValue.getName()
           attributeType oldValue's class
           attributeOldValue oldValue.getValue()
           attributeNewValue newValue.getValue() 
        异常
        MBeanException - 包装分布式通信异常。
        RuntimeOperationsException - 包装IllegalArgumentException:在参数中传递的Attribute对象为null,或者参数中两个Attribute对象的名称不相同。