模块  jdk.management
软件包  com.sun.management

Interface DiagnosticCommandMBean

  • All Superinterfaces:
    DynamicMBean

    public interface DiagnosticCommandMBean
    extends DynamicMBean
    HotSpot虚拟机诊断命令的管理界面。

    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发出Notificationtype"jmx.mbean.info.changed"userData是新MBeanInfo

    从以下版本开始:
    1.8