Module  jdk.management
软件包  com.sun.management

Interface DiagnosticCommandMBean

  • All Superinterfaces:
    DynamicMBean


    public interface DiagnosticCommandMBean
    extends DynamicMBean
    HotSpot Virtual Machine诊断命令的管理界面。

    DiagnosticCommandMBean注册到platform MBeanServer为其他平台的MBean。

    用于唯一标识MBeanServer中诊断MBean的ObjectName是:

    com.sun.management:type=DiagnosticCommand

    这个MBean是一个DynamicMBean ,也是一个NotificationEmitter DiagnosticCommandMBean在运行时生成,并在Java虚拟机的生命周期内进行修改。 诊断命令表示为DiagnosticCommandMBean接口的操作。 每个诊断命令有:

    • 诊断命令名称,它是HotSpot虚拟机中引用的名称
    • MBean操作名称是为诊断命令操作调用生成的name MBean操作名称取决于实现
    将诊断命令名称转换为MBean操作名称的推荐方法如下:
    • 从第一个到第一个点的所有字符都被设置为小写字符
    • 删除每个点或下划线字符,并将以下字符设置为大写字符
    • 所有其他字符被复制而不进行修改

    诊断命令名称始终提供有关名称为dcmd.name (见下文)的字段中操作的元数据。

    诊断命令可能支持或不支持选项或参数。 所有操作都返回String ,对于不支持任何选项或参数的操作,不要使用任何参数,或者对支持至少一个选项或参数的操作采用String[]参数。 每个选项或参数必须存储在单个String中。 不支持跨多个String实例分割的选项或参数。

    选项和参数之间的区别:选项由选项名称标识,而参数由其在命令行中的位置标识。 选项和参数按照传递给调用方法的数组的顺序进行处理。

    像动态MBean的任何操作一样,这些操作都由MBeanOperationInfo实例描述。 以下是此对象返回的值:

    Descriptor是包含JMX元素的其他元数据的字段的集合。 字段是名称和关联值。 下表列出了与诊断命令相关联的操作提供的附加元数据:

    description Name Type Description dcmd.name String The original diagnostic command name (not the operation name) dcmd.description String The diagnostic command description dcmd.help String The full help message for this diagnostic command (same output as the one produced by the 'help' command) dcmd.vmImpact String The impact of the diagnostic command, this value is the same as the one printed in the 'impact' section of the help message of the diagnostic command, and it is different from the getImpact() of the MBeanOperationInfo dcmd.enabled boolean True if the diagnostic command is enabled, false otherwise dcmd.permissionClass String Some diagnostic command might require a specific permission to be executed, in addition to the MBeanPermission to invoke their associated MBean operation. This field returns the fully qualified name of the permission class or null if no permission is required dcmd.permissionName String The fist argument of the permission required to execute this diagnostic command or null if no permission is required dcmd.permissionAction String The second argument of the permission required to execute this diagnostic command or null if the permission constructor has only one argument (like the ManagementPermission) or if no permission is required dcmd.arguments Descriptor A Descriptor instance containing the descriptions of options and arguments supported by the diagnostic command (see below)

    诊断命令的参数(选项或参数)的描述在Descriptor实例中提供。 在此描述符中,每个字段名称都是一个参数名称,每个字段值本身就是一个描述符实例。 下表中描述了第二个描述符实例中提供的字段:

    description Name Type Description dcmd.arg.name String The name of the parameter dcmd.arg.type String The type of the parameter. The returned String is the name of a type recognized by the diagnostic command parser. These types are not Java types and are implementation dependent. dcmd.arg.description String The parameter description dcmd.arg.isMandatory boolean True if the parameter is mandatory, false otherwise dcmd.arg.isOption boolean True if the parameter is an option, false if it is an argument dcmd.arg.isMultiple boolean True if the parameter can be specified several times, false otherwise

    当目前的Java虚拟机所支持的一套诊断命令的修改,该DiagnosticCommandMBean发出Notification具有type"jmx.mbean.info.changed"userData那就是新MBeanInfo

    从以下版本开始:
    1.8