モジュール jdk.management
パッケージ com.sun.management

インタフェースDiagnosticCommandMBean

  • すべてのスーパー・インタフェース:
    DynamicMBean

    public interface DiagnosticCommandMBean
    extends DynamicMBean
    HotSpot仮想マシンの診断コマンド用の管理インタフェースです。

    DiagnosticCommandMBeanは他のプラットフォームのMBeanと同様に「プラットフォームMBeanServer」に登録されています。

    MBeanServer内で診断MBeanを一意に識別するためのObjectNameは次のとおりです。

    com.sun.management:type=DiagnosticCommand

    このMBeanは、DynamicMBeanであり、NotificationEmitterでもあります。 DiagnosticCommandMBeanは、実行時に生成され、Java仮想マシンの存続期間中に変更されることがあります。 診断コマンドは、DiagnosticCommandMBeanインタフェースの操作として表されます。 各診断コマンドには、次があります。

    • HotSpot仮想マシンで参照される名前である診断コマンド名
    • 診断コマンドの操作呼出しのために生成される名前であるMBean操作名。 MBean操作名は実装に依存します
    診断コマンド名をMBean操作名に変換するには、次の方法をお薦めします。
    • 先頭の文字から最初のドットまでの文字を小文字にします
    • ドット文字または下線文字をすべて削除し、その直後の文字を大文字にします
    • 他のすべての文字を変更せずにコピーします

    診断コマンド名は、常に操作のメタデータとともにdcmd.nameというフィールドで提供されます(次を参照)。

    診断コマンドは、オプションや引数をサポートする場合としない場合があります。 すべての操作はStringを返し、オプションや引数をサポートしない操作はパラメータを取らず、少なくとも1つのオプションまたは引数をサポートする操作はString[]パラメータを取ります。 オプションまたは引数は、それぞれ1つのStringに格納されている必要があります。 複数のStringインスタンスに分割されたオプションや引数はサポートされません。

    オプションと引数の違いは次のとおりです。オプションはオプション名で識別されますが、引数はコマンド行での位置によって識別されます。 オプションと引数は、呼出しメソッドに渡される配列の順序で処理されます。

    動的MBeanの操作と同様に、これらの操作はそれぞれMBeanOperationInfoインスタンスによって記述されます。 このオブジェクトから返される値を次に示します。

    • getName()は、診断コマンド名から生成された操作名を返します
    • getDescription()は、診断コマンドの説明を返します(「help」コマンドで返される説明と同じです)
    • getImpact()は、ACTION_INFOを返します
    • getReturnType()は、java.lang.Stringを返します
    • getDescriptor()は、Descriptorインスタンスを返します(次を参照)

    Descriptorは、JMX要素に対する追加のメタデータを含むフィールドのコレクションです。 フィールドとは、名前および関連する値のことです。 診断コマンドに関連付けられた操作のために提供される追加のメタデータについて、次の表で説明します。

    description
    名前説明
    dcmd.nameString 元の診断コマンド名(操作名ではない)
    dcmd.descriptionString 診断コマンドの説明
    dcmd.helpString この診断コマンドの完全なヘルプ・メッセージ(「help」コマンドで生成されるものと同じ出力)
    dcmd.vmImpactString 診断コマンドの影響。この値は、診断コマンドのヘルプ・メッセージの「impact」セクションに出力されるものと同じであり、MBeanOperationInfoのgetImpact()とは異なります
    dcmd.enabledboolean 診断コマンドが有効な場合はtrue、そうでない場合はfalse
    dcmd.permissionClassString 診断コマンドによっては、関連付けられたMBean操作を呼び出すためのMBeanPermissionに加えて、実行のために特定のアクセス権が必要な場合があります。 このフィールドは、アクセス権クラスの完全修飾名を返します。アクセス権が必要でない場合はnullを返します
    dcmd.permissionNameString この診断コマンドを実行するのに必要なアクセス権の最初の引数。アクセス権が必要でない場合はnull
    dcmd.permissionActionString この診断コマンドを実行するのに必要なアクセス権の2番目の引数。アクセス権のコンストラクタに引数が1つしかない場合(ManagementPermissionなど)、またはアクセス権が必要でない場合はnull
    dcmd.argumentsDescriptor この診断コマンドでサポートされるオプションおよび引数の説明を含むDescriptorインスタンス(次を参照)

    診断コマンドのパラメータ(オプションまたは引数)の説明は、Descriptorインスタンスの内部で提供されます。 このDescriptorでは、各フィールドの名前がパラメータ名になり、各フィールドの値自体がDescriptorインスタンスになります。 この2番目のDescriptorインスタンスで提供されるフィールドについて、次の表で説明します。

    description
    名前説明
    dcmd.arg.nameString パラメータの名前
    dcmd.arg.typeString パラメータの型。 返されるStringは、診断コマンド・パーサーによって認識される型の名前です。 これらの型は、Java型ではなく、実装に依存します。
    dcmd.arg.descriptionString パラメータの説明
    dcmd.arg.isMandatoryboolean パラメータが必須の場合はtrue、そうでない場合はfalse
    dcmd.arg.isOptionboolean パラメータがオプションの場合はtrue、引数の場合はfalse
    dcmd.arg.isMultipleboolean パラメータを複数回指定できる場合はtrue、そうでない場合はfalse

    Java仮想マシンによって現在サポートされている診断コマンドのセットが変更された場合、DiagnosticCommandMBeanjmx.mbean.info.changedというを持ち、新しいMBeanInfoであるuserDataを含むNotificationを発行します。

    導入されたバージョン:
    1.8