- すべてのスーパー・インタフェース:
PlatformManagedObject
プラットフォームMBeanサーバーでMXBeanを識別するためのオブジェクト名は、次のとおりです。
jdk.management.jfr:type=FlightRecorder
Flight Recorderは、次の方法で構成できます。
- 「レコーディング・オプション」
レコーディングを最後にする期間およびデータのダンプ場所と場所を指定します。 - 「設定」
使用可能にするイベントおよび各イベントで取得する情報の種類を指定します。 - 「構成」
通常は設定ファイルから導出される事前定義済の設定セットで、複数のイベントの構成を同時に指定します。
設定構文の説明はjdk.jfr
パッケージのドキュメントを、構成情報はConfigurationInfo
クラスのドキュメントを参照してください。
レコーディング・オプション
次の表に、setRecordingOptions(long, Map)
およびgetRecordingOptions(long)
で使用するオプション名を示します。
名前 | 記述 | デフォルト値 | 書式 | 値の例 |
---|---|---|---|---|
name |
人間が判読可能なレコーディング名を設定 | レコーディングIDの文字列表現 | String |
"My Recording" , "profiling" |
maxAge |
最も古いデータが削除されるまで、そのデータがディスク・リポジトリに保持される期間を指定します。 disk=true の場合にのみ機能します。そうでない場合、このパラメータは無視されます。 |
"0" (制限なし) |
制限に影響がない場合は"0" 、そうでない場合は正のLong 値の文字列表現の後に空白と次の単位のいずれかが続きます。"ns" (nanoseconds) "us" (microseconds) "ms" (milliseconds) "s" (seconds) "m" (minutes) "h" (hours) "d" (days) |
"2 h" , "24 h" , "2 d" , "0" |
maxSize |
データがディスク・リポジトリに保持されるサイズ(バイト単位)を指定します。 disk=true の場合にのみ機能します。そうでない場合、このパラメータは無視されます。 |
"0" (制限なし) |
Long 値の文字列表現、正の値でなければならない |
"0" , "1000000000" |
dumpOnExit |
Java Virtual Machine (JVM)終了時のディスクへのデータのレコーディング | "false" |
Boolean 値、"true" または"false" の文字列表現 |
"true" , "false" |
destination |
レコーディングが停止したときにレコーディング・データが書き込まれるパスを指定します。 | "false" |
フォーマットについてはPaths#getPath を参照してください。 このメソッドが別のプロセスから呼び出された場合、ターゲットJVMが実行されているマシンにデータが書き込まれます。 宛先が相対パスの場合、ターゲットJVMが起動された作業ディレクトリに対する相対パスです。} |
"c:\recording\recotding.jfr" , "/recordings/recording.jfr" , "recording.jfr" |
disk |
記録されたデータを記録時に保存します。 | "false" |
Boolean 値、"true" または"false" の文字列表現 |
"true" , "false" |
duration |
レコーディングの実行時間を設定 | "0" (無制限、連続) |
"0" を指定しなければなりません。そうでなければ、正のLong の文字列表現の後に空白があり、次の単位の1つが続きます:"ns" (nanoseconds) "us" (microseconds) "ms" (milliseconds) "s" (seconds) "m" (minutes) "h" (hours) "d" (days) |
"60 s" , "10 m" , "4 h" , "0" |
- 導入されたバージョン:
- 9
-
フィールドのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明long
cloneRecording
(long recordingId, boolean stop) レコーディングの一部の抽出に役立つ、既存のレコーディングのコピーを作成します。void
closeRecording
(long recordingId) 指定されたIDでレコーディングを閉じ、レコーディングに関連付けられているすべてのシステム・リソースを解放します。void
closeStream
(long streamId) 指定されたIDでレコーディング・ストリームを閉じ、そのストリームに関連するすべてのシステム・リソースを解放します。void
指定されたファイルにレコーディング・データを書き込みます。このJava Virtual Machine (JVM)の事前定義された構成のリストを返します。現在登録されているイベント・タイプのリストを返します。getRecordingOptions
(long recordingId) 指定されたID (たとえば、記録されたデータを保持する宛先ファイルまたは期間などです。)を使用してレコーディングのオプションを含むマップを返します。必ずしも実行されているとはかぎらず、使用可能なレコーディングのリストを返します。getRecordingSettings
(long recordingId) 指定されたID (たとえば、イベントしきい値)のレコーディングの設定を含むMap
を返しますlong
レコーディングを作成しますが、レコーディングは開始しません。long
openStream
(long recordingId, Map<String, String> streamOptions) レコーディングに関係なくデータを取得するために、指定されたIDまたは0
のレコーディングのデータ・ストリームを開きます。byte[]
readStream
(long streamId) 指定されたIDのストリームからデータの一部を読み取ります。使用できるデータがなくなった場合はnull
を返します。void
setConfiguration
(long recordingId, String contents) 指定されたIDでレコーディングの文字列表現として構成を設定します。void
setPredefinedConfiguration
(long recordingId, String configurationName) 指定されたIDでレコーディングの事前定義済の構成を設定します。void
setRecordingOptions
(long recordingId, Map<String, String> options) レコーディング・オプション(たとえば、データを保持する宛先ファイルと期間などです。)を構成します。void
setRecordingSettings
(long recordingId, Map<String, String> settings) 指定したレコーディングの以前の設定をすべて設定して置き換えます。void
startRecording
(long recordingId) 指定したIDでレコーディングを開始します。boolean
stopRecording
(long recordingId) 指定したIDで実行中のレコーディングを停止します。long
使用可能なすべてのレコーディング済データのスナップショット・レコーディングを作成します。インタフェース java.lang.management.PlatformManagedObjectで宣言されたメソッド
getObjectName
-
フィールド詳細
-
メソッドの詳細
-
newRecording
long newRecording() throws IllegalStateException, SecurityExceptionレコーディングを作成しますが、レコーディングは開始しません。- 戻り値:
- レコーディングの開始、停止、クローズおよび構成に使用できる一意のID
- 例外:
IllegalStateException
- flight Recorderを(たとえば、Java Virtual Machine (JVM)にFlight Recorderのサポートがない場合や、ファイル・リポジトリを作成したり、アクセスできない場合などです。)の作成できないかSecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
takeSnapshot
long takeSnapshot()使用可能なすべてのレコーディング済データのスナップショット・レコーディングを作成します。スナップショットは、停止状態の合成レコーディングです。 データが使用できない場合、サイズが
0
のレコーディングが返されます。スナップショットによって、後の操作である(たとえば、時間間隔の変更やデータ・サイズの削減のための操作)のデータに安定したアクセスが提供されます。
データへのアクセスが不要になった場合、呼出し側はレコーディングを閉じる必要があります。
- 戻り値:
- レコーディング・データの読取りに使用できる一意のID
- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
cloneRecording
long cloneRecording(long recordingId, boolean stop) throws IllegalArgumentException, SecurityException レコーディングの一部の抽出に役立つ、既存のレコーディングのコピーを作成します。クローニングされたレコーディングには元のレコーディング・データと同じものが含まれますが、新しいIDと名前の先頭に
"Clone of recording"
が付いています。 元のレコーディングが実行中の場合は、クローンも実行中です。- パラメータ:
recordingId
- クローンの作成元のレコーディングのレコーディングIDstop
- 戻る前に新しく作成したクローンを停止した場合。- 戻り値:
- レコーディングの開始、停止、クローズおよび構成に使用できる一意のID
- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
startRecording
void startRecording(long recordingId) throws IllegalStateException, SecurityException 指定したIDでレコーディングを開始します。停止したレコーディングは再開できません。
- パラメータ:
recordingId
- 開始するレコーディングのID- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合IllegalStateException
- 関連項目:
-
stopRecording
boolean stopRecording(long recordingId) throws IllegalArgumentException, IllegalStateException, SecurityException 指定したIDで実行中のレコーディングを停止します。- パラメータ:
recordingId
- 停止するレコーディングのID- 戻り値:
- レコーディングが停止した場合に
true
、それ以外の場合はfalse
- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合IllegalStateException
- レコーディングが実行されていない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
closeRecording
void closeRecording(long recordingId) throws IOException 指定されたIDでレコーディングを閉じ、レコーディングに関連付けられているすべてのシステム・リソースを解放します。レコーディングがすでに終了している場合、このメソッドを呼び出すことは効果がありません。
- パラメータ:
recordingId
- 閉じるレコーディングのID- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合IOException
- 入出力エラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
openStream
long openStream(long recordingId, Map<String, String> streamOptions) throws IOExceptionレコーディングに関係なくデータを取得するために、指定されたIDまたは0
のレコーディングのデータ・ストリームを開きます。レコーディング・ストリームのオプション 名前 記述 デフォルト値 書式 値の例 startTime
レコーディング・ストリームを開始する時点を指定します。 データの格納方法が原因で、開始時間の前に開始または終了するイベントが含まれる場合があります。 Instant.MIN_VALUE.toString()
ISO-8601. Instant.toString()
を参照
またはエポックからのミリ秒"2015-11-03T00:00"
,"1446508800000"
endTime
レコーディング・ストリームを終了する時点を指定します。 データの格納方法が原因で、終了時間の後に開始または終了するイベントが含まれる場合があります。 Instant.MAX_VALUE.toString()
ISO-8601. Instant.toString()
を参照
またはエポックからのミリ秒"2015-11-03T01:00"
,"1446512400000"
blockSize
readStream
の呼出しで読み取る最大バイト数を指定します。"50000"
正の long
値。blockSize
を非常に高い値に設定すると、Java Virtual Machineが未処理の値とみなされる場合、OutOfMemoryError
またはIllegalArgumentException
が発生する可能性があります。"50000"
,"1000000"
,
streamVersion
実行中のレコーディングからデータを読み取るときに使用する形式を指定 "1.0"
メジャーおよびマイナーのバージョン番号。
To be able to read from a running recording the value must be set"1.0"
オプション
"streamVersion"
が指定されていないかぎり、ストリームを開く前に、指定されたIDのレコーディングを停止する必要があります。- パラメータ:
recordingId
- ストリームを開くレコーディングのIDstreamOptions
- データの量とその読み方を制御するオプションを含むマップ、またはデフォルト・ブロック・サイズでレコーディングのすべてのデータを取得するnull
- 戻り値:
- ストリームの一意のID。
- 例外:
IllegalArgumentException
- iDによるレコーディングが存在しない場合、またはoptions
に無効な値が含まれる場合IOException
- レコーディングが閉じている場合、I/Oエラーが発生するか、指定したレコーディングまたは間隔でデータを使用できませんSecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合
-
closeStream
void closeStream(long streamId) throws IOException 指定されたIDでレコーディング・ストリームを閉じ、そのストリームに関連するすべてのシステム・リソースを解放します。ストリームがすでに閉じられている場合、このメソッドを呼び出すことは効果がありません。
- パラメータ:
streamId
- ストリームのID- 例外:
IllegalArgumentException
- 指定されたIDのストリームが存在しない場合IOException
- ストリームを閉じようとしているときにI/Oエラーが発生した場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
readStream
byte[] readStream(long streamId) throws IOException 指定されたIDのストリームからデータの一部を読み取ります。使用できるデータがなくなった場合はnull
を返します。レコーディングのデータをすべて読み取るには、
null
が返されるまでこのメソッドを繰り返し呼び出します。- パラメータ:
streamId
- ストリームのID- 戻り値:
- データのレコーディングを含むバイト配列、または使用できるデータがなくなった場合の
null
- 例外:
IOException
- ストリームがクローズされているか、ストリームを読み込もうとしているときにI/Oエラーが発生した場合IllegalArgumentException
- ストリームIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合
-
getRecordingOptions
Map<String,String> getRecordingOptions(long recordingId) throws IllegalArgumentException 指定されたID (たとえば、記録されたデータを保持する宛先ファイルまたは期間などです。)を使用してレコーディングのオプションを含むマップを返します。使用可能なオプション名については、
FlightRecorderMXBean
を参照してください。- パラメータ:
recordingId
- オプションを取得するレコーディングのID- 戻り値:
null
ではなく、レコーディング・オプションを記述するマップ- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合
-
getRecordingSettings
Map<String,String> getRecordingSettings(long recordingId) throws IllegalArgumentException 指定されたID (たとえば、イベントしきい値)のレコーディングの設定を含むMap
を返します複数のレコーディングが同時に実行されている場合、
Map
オブジェクトに指定された内容よりも多くのデータがレコーディングされる可能性があります。Map
の名前はイベント名であり、"#"
(たとえば、"jdk.VMInfo#period"
です。)で区切られた設定名です。 この値は、設定値(たとえば、"60 s"
)のテキスト表現です。- パラメータ:
recordingId
- 設定を取得するレコーディングのID- 戻り値:
- レコーディング設定を説明するマップ(
null
ではありません) - 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合
-
setConfiguration
void setConfiguration(long recordingId, String contents) throws IllegalArgumentException 指定されたIDでレコーディングの文字列表現として構成を設定します。- パラメータ:
recordingId
- レコーディングのIDcontents
-null
ではなく、使用する構成ファイルの文字列表現- 例外:
IllegalArgumentException
- 指定されたIDのレコーディングが存在しない場合、または構成を解析できなかった場合。SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
setPredefinedConfiguration
void setPredefinedConfiguration(long recordingId, String configurationName) throws IllegalArgumentException 指定されたIDでレコーディングの事前定義済の構成を設定します。- パラメータ:
recordingId
- 構成を設定するレコーディングのIDconfigurationName
- (たとえば、"profile"
や"default"
などです。)ではなく、null
構成の名前- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
setRecordingSettings
void setRecordingSettings(long recordingId, Map<String, String> settings) throws IllegalArgumentException指定したレコーディングの以前の設定をすべて設定して置き換えます。設定は名前と値のペアで構成され、nameは構成するイベントと設定を示し、valueはその設定内容を示します。
名前は、次の方法で構成できます。
<event-name> + "#" + <setting-name>
or
<event-id> + "#" + <setting-name>
たとえば、CPU負荷イベントのサンプル間隔を1秒ごとに1回設定するには、
"jdk.CPULoad#period"
という名前と"1 s"
という値を使用します。 複数のイベントが同じ名前を使用する場合、たとえばイベント・クラスが複数のクラス・ローダーにロードされ、それらの間に区別が必要な場合、名前は"56#period"
になります。 イベントのIDは、EventType.getId()
メソッドを呼び出して取得され、イベントが登録されているJava Virtual Machine (JVM)インスタンスに対して有効です。使用可能なイベント名のリストは、
FlightRecorder.getEventTypes()
およびEventType.getName()
を起動することによって取得されます。 イベント・タイプに使用可能な設定のリストは、EventType.getSettingDescriptors()
およびValueDescriptor.getName()
を起動することで取得されます。- パラメータ:
recordingId
- レコーディングのIDsettings
-null
ではなく、設定する設定の名前値マップ- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合- 関連項目:
-
setRecordingOptions
void setRecordingOptions(long recordingId, Map<String, String> options) throws IllegalArgumentExceptionレコーディング・オプション(たとえば、データを保持する宛先ファイルと期間などです。)を構成します。使用できるオプションおよび値の詳細は、
FlightRecorderMXBean
を参照してください。 値をnull
に設定すると、値がデフォルト値に戻ります。- パラメータ:
recordingId
- オプションを設定するレコーディングのIDoptions
- 設定する設定の名前/値マップ(null
ではありません)- 例外:
IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("control")
がない場合、またはオプションに、呼び出し元が操作を許可されていないファイルが含まれている場合。- 関連項目:
-
getRecordings
List<RecordingInfo> getRecordings()必ずしも実行されているとはかぎらず、使用可能なレコーディングのリストを返します。MBeanServerアクセス:
RecordingInfo
のマップされたタイプは、RecordingInfo.from
メソッドで指定された属性を持つCompositeData
です。- 戻り値:
null
ではなく、レコーディングのリスト- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合- 関連項目:
-
getConfigurations
List<ConfigurationInfo> getConfigurations()このJava Virtual Machine (JVM)の事前定義された構成のリストを返します。MBeanServerアクセス:
ConfigurationInfo
のマップされたタイプは、ConfigurationInfo.from
メソッドで指定された属性を持つCompositeData
です。- 戻り値:
null
ではなく、事前定義された構成のリスト- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合- 関連項目:
-
getEventTypes
List<EventTypeInfo> getEventTypes()現在登録されているイベント・タイプのリストを返します。MBeanServerアクセス:
EventTypeInfo
のマップされたタイプは、EventTypeInfo.from
メソッドで指定された属性を持つCompositeData
です。- 戻り値:
null
ではなく、登録されたイベント・タイプのリスト- 例外:
SecurityException
- セキュリティ・マネージャが存在し、呼び出し元にManagementPermission("monitor")
がない場合- 関連項目:
-
copyTo
void copyTo(long recordingId, String outputFile) throws IOException, SecurityException 指定されたファイルにレコーディング・データを書き込みます。このメソッドが別のプロセスからリモートに呼び出された場合、ターゲットJava Virtual Machine (JVM)が実行されているマシン上の
outputFile
という名前のファイルにデータが書き込まれます。 ファイルのロケーションが相対パスの場合、ターゲットJVMが起動された作業ディレクトリを基準とした相対パスになります。- パラメータ:
recordingId
- データをダンプするレコーディングのIDoutputFile
- データが書き込まれるシステム依存のファイル名(null
ではありません)- 例外:
IOException
- I/Oエラー(たとえば、無効なパスです)のためにレコーディングをダンプできない場合IllegalArgumentException
- 指定したIDのレコーディングが存在しない場合IllegalStateException
- レコーディングがまだ開始されていないか、すでに閉じられている場合SecurityException
- セキュリティ・マネージャが存在し、そのSecurityManager.checkWrite(java.lang.String)
メソッドが指定されたファイルへの書き込みアクセスを拒否した場合、または呼び出し元にManagmentPermission("control")
がない場合- 関連項目:
-