public interface DiagnosticCommandMBean extends DynamicMBean
{code DiagnosticCommandMBean}は、他のプラットフォームMBeanと同様にプラットフォームMBeanServerに登録されます。
MBeanServer内で診断MBeanを一意に識別するためのObjectName
は次のとおりです。
com.sun.management:type=DiagnosticCommand
このMBeanは、DynamicMBean
であり、NotificationEmitter
でもあります。DiagnosticCommandMBean
は、実行時に生成され、Java仮想マシンの存続期間中に変更されることがあります。診断コマンドは、DiagnosticCommandMBean
インタフェースの操作として表されます。各診断コマンドには、次があります。
診断コマンド名は、常に操作のメタデータとともにdcmd.name
というフィールドで提供されます(次を参照)。
診断コマンドは、オプションや引数をサポートする場合としない場合があります。すべての操作はString
を返し、オプションや引数をサポートしない操作はパラメータを取らず、少なくとも1つのオプションまたは引数をサポートする操作はString[]
パラメータを取ります。オプションまたは引数は、それぞれ1つのStringに格納されている必要があります。複数のStringインスタンスに分割されたオプションや引数はサポートされません。
オプションと引数の違いは次のとおりです。オプションはオプション名で識別されますが、引数はコマンド行での位置によって識別されます。オプションと引数は、呼出しメソッドに渡される配列の順序で処理されます。
動的MBeanの操作と同様に、これらの操作はそれぞれMBeanOperationInfo
インスタンスによって記述されます。このオブジェクトから返される値を次に示します。
getName()
は、診断コマンド名から生成された操作名を返しますgetDescription()
は、診断コマンドの説明を返します(「help」コマンドで返される説明と同じです)getImpact()
は、ACTION_INFO
を返しますgetReturnType()
は、java.lang.String
を返しますgetDescriptor()
は、Descriptorインスタンスを返します(次を参照)Descriptor
は、JMX要素に対する追加のメタデータを含むフィールドのコレクションです。フィールドとは、名前および関連する値のことです。診断コマンドに関連付けられた操作のために提供される追加のメタデータについて、次の表で説明します。
名前 | 型 | 説明 |
---|---|---|
dcmd.name | String | 元の診断コマンド名(操作名ではない) |
dcmd.description | String | 診断コマンドの説明 |
dcmd.help | String | この診断コマンドの完全なヘルプ・メッセージ(「help」コマンドで生成されるものと同じ出力) |
dcmd.vmImpact | String | 診断コマンドの影響。この値は、診断コマンドのヘルプ・メッセージの「impact」セクションに出力されるものと同じであり、MBeanOperationInfoのgetImpact()とは異なります |
dcmd.enabled | boolean | 診断コマンドが有効な場合はtrue、そうでない場合はfalse |
dcmd.permissionClass | String | 診断コマンドによっては、関連付けられたMBean操作を呼び出すためのMBeanPermissionに加えて、実行のために特定のアクセス権が必要な場合があります。このフィールドは、アクセス権クラスの完全修飾名を返します。アクセス権が必要でない場合はnullを返します |
dcmd.permissionName | String | この診断コマンドを実行するのに必要なアクセス権の最初の引数。アクセス権が必要でない場合はnull |
dcmd.permissionAction | String | この診断コマンドを実行するのに必要なアクセス権の2番目の引数。アクセス権のコンストラクタに引数が1つしかない場合(ManagementPermissionなど)、またはアクセス権が必要でない場合はnull |
dcmd.arguments | Descriptor | この診断コマンドでサポートされるオプションおよび引数の説明を含むDescriptorインスタンス(次を参照) |
診断コマンドのパラメータ(オプションまたは引数)の説明は、Descriptorインスタンスの内部で提供されます。このDescriptorでは、各フィールドの名前がパラメータ名になり、各フィールドの値自体がDescriptorインスタンスになります。この2番目のDescriptorインスタンスで提供されるフィールドについて、次の表で説明します。
名前 | 型 | 説明 |
---|---|---|
dcmd.arg.name | String | パラメータの名前 |
dcmd.arg.type | String | パラメータの型。返されるStringは、診断コマンド・パーサーによって認識される型の名前です。これらの型は、Java型ではなく、実装に依存します。 |
dcmd.arg.description | String | パラメータの説明 |
dcmd.arg.isMandatory | boolean | パラメータが必須の場合はtrue、そうでない場合はfalse |
dcmd.arg.isOption | boolean | パラメータがオプションの場合はtrue、引数の場合はfalse |
dcmd.arg.isMultiple | boolean | パラメータを複数回指定できる場合はtrue、そうでない場合はfalse |
Java仮想マシンによって現在サポートされている診断コマンドのセットが変更された場合、DiagnosticCommandMBean
はjmx.mbean.info.changed
という型を持ち、新しいMBeanInfo
であるuserDataを含むNotification
を発行します。
getAttribute, getAttributes, getMBeanInfo, invoke, setAttribute, setAttributes
Copyright © 2003, 2018, Oracle and/or its affiliates. All rights reserved.