![]() ![]() ![]() ![]() |
診断コマンドは、実行中の BEA JRockit プロセスとやり取りするために使用します。診断コマンドを使用すると、JRockit JVM に対して、たとえばヒープ レポートやガベージ コレクションの活動レポートの表示、または特定の冗長モジュールオン/オフの切り替えが行えます。この章では、診断コマンドの実行方法を説明し、利用可能なコマンドの一覧を示します。この節の内容は以下のとおりです。
診断コマンドを使用すると、実行中の JRockit JVM プロセスとやり取りすることができます。診断コマンドによって、たとえば、ヒープ レポートの表示や、冗長モジュールの有効化または無効化を指示できます。
実行中の JVM プロセスに対して診断コマンドを送信するには、次のような方法があります。
-Djrockit.ctrlbreak.enable<name>=<true|false>
(name
は診断コマンドの名前) システム プロパティを使用すると、どの診断コマンドでも有効または無効にすることができます。以下の 2 つのハンドラはデフォルトで禁止になっており、有効にする必要があります。
-Djrockit.ctrlbreak.enablerun_class=true
jrcmd
は JRockit JDK に含まれるコマンド ライン ツールで、診断コマンドを実行中の JVM プロセスに送信するために使用できます。この節では jrcmd
の概要について簡単に説明します。以下の内容について説明します。
jrcmd
は小さな C ライブラリである JRIPC を使用して、実行中の JRockit JVM プロセスとやり取りします。JRIPC には以下の基本機能があります。
jrcmd
を使用するには、コマンドラインに jrcmd を適切なパラメータと共に入力します。以下に例を示します。
jrcmd
<jrockit pid> [
<command>
[
<arguments>
]] [-l] [-f file] [-p] -h]
PID が 0 の場合は、コマンドがすべての JRockit JVM プロセスに送信されます。オプションを何も指定しなければ、デフォルトで -p
がセットされます。
ここでは、jrcmd を使用した例をいくつか紹介します。内容は以下の通りです。
以下を実行して、マシンで実行中のすべての JRockit JVM プロセスをリストします。
「JRockit JVM プロセスをリストする」で識別したプロセスにコマンドを送信するには、以下の操作を行います。
10064
) を確認します。 jrcmd
を PID および version
コマンドと一緒に入力します。以下はその例です。> jrcmd 10064 version
これにより、JRockit JVM に version
コマンドが送信されます。以下の応答が返ってきます。
Oracle WebLogic JRockit(R) Virtual Machine build 9.9.9-1.5.0-Jun 9 2004-13:52:53-<internal>, Native Threads, GC strategy: parallel
複数のコマンドを記述した (ctrlhandler.act
のような) ファイルを作成して、すべてのコマンドを実行できます。次の手順に従います。
jrcmd
を使用してファイルを実行します。以下に例を示します。> jrcmd 10064 -f commands.txt
Oracle WebLogic JRockit(R) Virtual Machine build 9.9.9-1.5.0-Jun 9 2004-13:52:53-<internal>, Native Threads, GC strategy: parallel
==== Timestamp ==== uptime: 0 days, 00:05:04 time: Fri Jun 11 14:28:31 2004
0
を使用します。
jrcmd を使用する際には、以下の制限に留意してください。
診断コマンドを実行するもう 1 つの方法は〔Ctrl〕+〔Break〕を押すことです。〔Ctrl〕+〔Break〕を押すと、JRockit JVM は現在の作業ディレクトリ内で ctrlhandler.act
(コード リスト 21-1 を参照) という名前のファイルを検索します。そこにファイルが見つからない場合は、JVM のディレクトリを調べます。そこにもファイルが見つからない場合は、通常のスレッド ダンプの表示に戻ります。ファイルが見つかった場合は、ファイルからコマンド エントリを読み込みます。各コマンド エントリは、対応する診断コマンドを呼び出します。
set_filename filename=c:\output.txt append=true
print_class_summary
print_object_summary increaseonly=true
print_threads
print_threads nativestack=true
print_utf8pool
jrarecording filename=c:\myjra.xml time=120 nativesamples=true
verbosity set=memory,memdbg,codegen,opt,sampling filename="c:\output"
timestamp
stop
# ctrl-break-handler は
# stop キーワードを検出するとファイルの読み込みを停止する
#
# version - JRockit のバージョンを出力する
#
# print_threads - 通常のスレッド ダンプ
# 現在実行中のすべてのスレッドとその状態を出力する
#
# print_class_summary - 現在ロードされているクラスのツリーを出力する
#
# print_utf8pool - 内部の utf8 プールを出力する
#
# print_object_summary - 現在生存しているオブジェクトの数 (型ごと) と、
# それらが使用するサイズの情報を出力する
# また、情報へのポイントも出力する
#
# jvmpi_datadump
#
# jvmpi_datareset
#
# jrarecording - jrarecording を起動する
#
# verbosity - 冗長レベルを変更する。ariane142_04 では機能しない
#
# start_management_server - 管理サーバを起動する
# kill_management_server - 管理サーバを終了する
# (これらのコマンドを使用するためには、managementserver.jar を
# ブート クラスパスに含める必要がある)
#
#
ctrlhandler.act
ファイルでは、各コマンド エントリは Ctrl-Break ハンドラ名で始まり、その後ろに Ctrl-Break ハンドラに渡される引数が続きます。引数はプロパティ形式 (名前 = 値。たとえば set_filename filename=c:\output.txt append=true
など) で指定する必要があります。プロパティのデータ型として使用できるのは、文字列、整数、またはブール値です。
Ctrl-Break の機能を無効にするには、次のコマンドを設定します。
-Djrockit.dontusectrlbreakfile=true
.
表 21-1 に、現在利用可能な診断コマンドを示します。
|
|||
-XgcReport と同じ情報を動的に出力する。これを可能にするために、-XgcReport オプション フラグを起動コンフィグレーションに指定する必要がある。指定しないと正しく実行されない。
|
|||
-Xverbose 」を参照)。例外の出力を完全にオフにするには、stacktraces = true でオンにした場合でも、exceptions = false を設定する必要がある。
|
|||
利用可能なコマンドに関するヘルプを出力するには、特殊なコマンドである help
を実行します。利用可能なすべてのコマンドが出力されます。
![]() ![]() ![]() |