プロファイルおよびロギング・ツール - リリース情報


1.0 制限
   1.1 「プロファイルおよびロギング」パースペクティブ内で「コンソール」ビューを開く方法
   1.2 Probekit: Probekit ソース・ファイルに対する UTF-8 エンコードの選択に関する考慮事項
   1.3 リーク分析: リーク分析は OS/400 iSeries(TM) 上では利用不可
   1.4 アプリケーションのプロファイル作成時のヒント
   1.5 リーク分析: 「ファイルへのプロファイル・データの送信」の予期しない振る舞い
   1.6 リーク分析: IBM(C) OS/390 (SVC) ヒープ ・ダンプ用のオブジェクト参照グラフを開く処理に長 時間かかる
   1.7 リーク分析: Hyades 最適化ヒープ・ダンプ・ファイルの場所と管理
   1.8 リーク分析: リーク分析ログ・ファイル
   1.9 リーク分析: 非常に大きなヒープを分析するための RADLEAKJVMSIZE の設定
   1.10 スレッド分析: デッドロック検出が IBM JRE 1.4.2 と連動しない
2.0 既知の問題
   2.1 Probekit: Probekit ソース・ファイル名に非 ASCII 文字を使用しない
   2.2 Probekit: Probekit ソース・ファイルのビルド
   2.3 Probekit: Probekit ターゲット仕様の非 ASCII 文字
   2.4 * メソッドおよび行レベル・カバレッジ: 非 ASCII 文字を含む「メソッドのフラッシュ」
   2.5 * メソッドおよび行レベル・カバレッジ: EXCLUDE フィルターの先頭をワイルドカードにしない
   2.6 プロファイル作成には libstdc++-libc6.2-2.so.3 パッチが必要
   2.7 リーク分析: J9 JVM によって作成された IBM ヒープ・ダンプはサポート対象外
   2.8 リーク分析: ヒープ・ファイルをインポートする際には新規プロジェクトまたはモニターの指定が必要
   2.9 行レベル・カバレッジ、Probekit: すでにロード済みのクラスからデータを収集するには、プロジェクトの再始動が必要
   2.10 リーク分析: リーク分析時に WAS のヒープ・ダンプが置かれる場所
   2.11 * 2 バイト文字が「コンソール」ビューに表示されない
   2.12 リーク分析: 分析用のロケールは、データ収集用のロケールと同じであることが必要
   2.13 スレッド分析: IBM JRE 1.4.1 以前で、ロックのスレッド所有者が欠落する
   2.14 Solaris 上でリモート・プロファイル作成を行うと、Sun の JVM がクラッシュを起こす場合がある

1.0 制限

1.1 「プロファイルおよびロギング」パースペクティブ内で「コンソール」ビューを開く方法

アプリケーションのプロファイル作成時に、デフォルトでは「プロファイルおよびロギング」パースペクティブに「コンソール」ビューは表示されません。

「プロファイルおよびロギング」パースペクティブ内で「コンソール」ビューを開くには、「ウィンドウ」->「ビューの表示」->「コンソール」を選択します。

コンソールに標準出力を表示するには、「ウィンドウ」->「設定」->「実行/デバッグ」->「コンソール」をクリックし、「プログラムが標準出力に書き込むときに表示」を選択します。

1.2 Probekit: Probekit ソース・ファイルに対する UTF-8 エンコードの選択に関する考慮事項

新規 Probekit ソース・ファイルの作成時に、使用する XML エンコードをウィザードから選択できます。デフォルト選択項目は ASCII です。プローブ・ソース・ファイル内で非 ASCII 文字を使用したい箇所がある場合は (例えば、「ラベル」フィールドまたは「説明」フィールド、あるいはフラグメントの Java コード内で)、ASCII ではなく UTF-8 エンコードを選択する必要があります。

既存のプローブ・ソース・ファイルのエンコードを変更するには、ファイルを右クリックして、「アプリケーションから開く」->「テキスト・エディター」を選択します。XML ヘッダー内でエンコードを「UTF-8」に変更し、ファイルを保管してクローズします。 もう一度右クリックし、「アプリケーションから開く」->「プローブ・エディター」を選択して、内容を編集します。

1.3 リーク分析: リーク分析は OS/400 iSeries(TM) 上では利用不可

リーク分析機能は、OS/400 iSeries(TM) 上で実行されるユーザー・プログラムに対しては使用できません。このプラットフォーム上では、Hyades 最適化ヒープ・ダンプが不完全であり、他のフォーマットでヒープ・ダンプを生成することはできません。

1.4 アプリケーションのプロファイル作成時のヒント

プロファイル・ツールのパフォーマンスは、収集されるデータの量と、このデータがワークベンチに転送される速度に直接関連しています。収集されるデータの量が増えると、分析にかかる時間、およびさまざまなタスクの実行に使用できるメモリーのどちらの面でも、パフォーマンスの低下が起こります。ユーザーがプロファイル作成のパフォーマンスを高めるには、いくつかの方法があります。

1.5 リーク分析: 「ファイルへのプロファイル・データの送信」の予期しない振る舞い

バイナリー Hyades 最適化ヒープ・ダンプを収集する際に、「ファイルへのプロファイル・データの送信」を選択して trcxml ファイルにデータを送信する場合は、次のことに注意してください。

デプロイメント・ホストに保管されているヒープ・ファイルにアクセスするためには、Agent Controller がデプロイメント・ホスト上で実行されている必要があります。trcxml ファイルに対して初めて「インポート」->「プロファイル・ファイル」を実行するときには、リーク分析とオブジェクト参照グラフの表示は期待通りに行われます。

「インポート」->「プロファイル・ファイル」を 2 回目に実行すると、インポートは機能しますが、リーク分析の実行やオブジェクト参照グラフの表示に失敗する場合があります。この理由としては、必要なヒープ・ファイルがデプロイメント・ホスト上で使用できなくなっている可能性があります。

この問題が発生した場合は、trcxml ファイルを最初にインポートしたプロジェクトからヒープ・ファイルにアクセスしてください。ヒープ・ファイルは、プロジェクト・ディレクトリーの下にある「leakanalysisheapdir」という名前のディレクトリー内にあります。

1.6 リーク分析: IBM(C) OS/390 (SVC) ヒープ・ダンプ用のオブジェクト参照グラフを開く処理に長時間かかる

IBM(C)OS/390(SVC) ヒープ・ダンプは非常に大きなものです。大きなヒープ・ダンプを展開してオブジェクト参照グラフに表示するには、長時間かかることがあります。 このため、操作がハングしたように見える場合があります。進捗モニターが 100% で止まっているように見えても、ワークベンチがヒープ・ダンプの展開をアクティブに継続している可能性があります。

1.7 リーク分析: Hyades 最適化ヒープ・ダンプ・ファイルの場所と管理

「ヒープ・ダンプのキャプチャー」アクションを実行すると、ターゲット・アプリケーションがデプロイされているホスト上で、Hyades 最適化ヒープ・ダンプが生成されます。 ヒープ・ダンプ宛先ディレクトリーは、Agent Controller の構成ファイル (serviceconfig.xml) 内の LOCAL_AGENT_TEMP_DIR の設定値によって制御されます。このファイルの場所と変更については、「ランタイム問題の検出と分析 (Detecting and analyzing runtime problems)」の下にあるヘルプ・トピック「Agent Controller の管理」を参照してください。

エラー・メッセージ「ヒープ・ダンプの展開に失敗しました。ステップ: ... ファイルの読み取り (Expand Heap Dump failed in step: ...Reading file)」、または「リーク分析に失敗しました。ステップ: ヒープ・オブジェクト参照グラフの作成 (Leak Analysis failed in step: Creating heap object reference graph)」のどちらかが出された場合は、Agent Controller がデプロイメント・ホスト上で実行されていることを確認して、コマンドを再試行してください。Agent Controller は、デプロイメント・ホストからワークベンチ・プロジェクト・ディレクトリーへのファイルのコピーを支援します。

1.8 リーク分析: リーク分析ログ・ファイル

リーク分析中に問題が起こった場合は、リーク分析ログ・ファイルが役に立つことがあります。

リーク分析中に、診断情報が LeakAnalysis.log ファイルに書き込まれます。LeakAnalysis.log には、リーク分析中に実行されたさまざまなステップの出力が保管されており、リーク分析の実行が成功したか失敗したかを示しています。

LeakAnalysis.log は、プロファイル・データに関連したプロファイル・プロジェクトに書き込まれます。例えば、Windows の場合は <my_workspace>¥ProfileProject¥LeakAnalysis.log です。

RADLEAKREGIONDUMP システム・プロパティーを使用して、ログ・ファイルに追加情報を書き込むことができます。rationalsdp.ini に次のオプションを追加します。

VMArgs=-DRADLEAKREGIONDUMP=1

rationalsdp.ini ファイルは、Rational Application Developer のインストール・ディレクトリーにあります。

1.9 リーク分析: 非常に大きなヒープを分析するための RADLEAKJVMSIZE の設定

リーク分析が失敗し、LeakAnalysis.log ファイルに「JVMDUMP006I 「キャッチされない」ダンプ・イベントの処理、詳細 "java/lang/OutOfMemoryError" (JVMDUMP006I Processing Dump Event "uncaught", detail "java/lang/OutOfMemoryError")」というメッセージがある場合は、リーク分析プロセスのヒープ・サイズを増やす必要があります。

このためには、Rational Application Developer システム属性 RADLEAKJVMSIZE を設定してください。この属性は、リーク分析中に使用できる JVM ヒープ・サイズを制御します。

RADLEAKJVMSIZE を設定するには、rationalsdp.ini ファイルに次のオプションを追加します。

VMArgs=-DRADLEAKJVMSIZE=value

ここで、value は新しいヒープ・サイズ限界 (例: 1024M) です。 デフォルト値は 512M です。ヒープ・サイズの表現がメガバイト単位か、ギガバイト単位かを指示する必要があります (M または G)。

rationalsdp.ini ファイルは、Rational Application Developer のインストール・ディレクトリーにあります。

1.10 スレッド分析: デッドロック検出が IBM JRE 1.4.2 と連動しない

スレッド分析のプロファイル機能を IBM の従来型 JVM と組み合わせて使用した場合、暗黙のデッドロック状態にあるスレッドすべての「ロック待機中 (Waiting for lock)」状態が、「プロファイルおよびロギング」パースペクティブの「スレッド」ビューに表示されません。 この原因は、収集されたデータの情報が欠落していることです。次善策: 「プロファイル」ダイアログの「引数」タブにある「VM 引数」フィールドに -Xj9 を追加して、IBM J9 JVM を使用してください。

2.0 既知の問題

2.1 Probekit: Probekit ソース・ファイル名に非 ASCII 文字を使用しない

Probekit ソース・ファイルの名前に非 ASCII 文字が含まれていると、処理が正しく行われません。Probekit ソース・ファイル名には ASCII 文字のみを使用してください。

2.2 Probekit: Probekit ソース・ファイルのビルド

*.probe ファイルのコンテキスト・メニューに表示される「Probekit」->「コンパイル」アクションは使用しないでください。代わりに、*.probe ファイルを含むプロジェクトを Probekit プロジェクトに変換し、標準のビルド手段を使用します。(Java プロジェクトを Probekit プロジェクトに変換するには、「ファイル」->「新規」->「その他 (Other)」を使用し、「プロファイルおよびロギング」セクションから「Java プロジェクトを Probekit プロジェクトに変換 (Convert Java projects to Probekit projects)」を選択します)

2.3 Probekit: Probekit ターゲット仕様の非 ASCII 文字

Probekit の「ターゲット」仕様のパターンの中では、非 ASCII 文字を使用しないでください。ターゲット・パターンに非 ASCII 文字を含むプローブは、正しく処理されません。

2.4 * メソッドおよび行レベル・カバレッジ: 非 ASCII 文字を含む「メソッドのフラッシュ」

「以下の時点でカバレッジ・データをフラッシュ... (Flush coverage data when...)」にメソッド・パターンを追加するときには、非 ASCII 文字を使用しないでください。

メソッド・パターンの「追加」ダイアログのパッケージ、クラス、またはメソッドのフィールドに非 ASCII 文字を入力すると、無効な入力のエラーが表示され、ダイアログを閉じることができなくなります。

次善策: パターンの中では、非 ASCII 文字の代わりにワイルドカード (アスタリスク) 文字を使用します。

注: この問題は V6.0.0.1 で修正されました。

2.5 * メソッドおよび行レベル・カバレッジ: EXCLUDE フィルターの先頭をワイルドカードにしない

「*foo」のように、ワイルドカード文字 (アスタリスク) から始まる EXCLUDE フィルターを指定すると、「カバレッジ統計」、「カバレッジ・ナビゲーター (Coverage Navigator)」、および「注釈付きソース (Annotated Source)」の各ビューにデータが表示されません。 次善策: このような EXCLUDE フィルターは使用しないでください。

注: この問題は V6.0.0.1 で修正されました。

2.6 プロファイル作成には libstdc++-libc6.2-2.so.3 パッチが必要

プロファイル・データを収集するには、データを収集する対象のマシン上で事前に Agent Controller が実行されている必要があります。RedHat Linux マシンの場合、Agent Controller を実行するには libstdc++.so パッチ libstdc++-libc6.2-2.so.3 が必要です。

2.7 リーク分析: J9 JVM によって作成された IBM ヒープ・ダンプはサポート対象外

リーク分析機能は、IBM J9 JVM を実行するユーザー・プログラムに対しては使用できません。

環境変数 IBM_HEAPDUMP を設定し、実行中の Java プロセスに「kill -3」シグナルを送信すると、IBM J9 JVM は heapdump.20041012.093936.2192.dmp のような名前のヒープ・ファイルを作成します。j9extract と jdmpview を実行して、これらの .dmp ファイルの後処理を行い、IBM ヒープ・ダンプを作成する必要があります。

これらのヒープ・ダンプのフォーマットは、従来型の IBM jvm によって生成されるヒープ・ダンプのフォーマットと同一ではありません。

2.8 リーク分析: ヒープ・ファイルをインポートする際には新規プロジェクトまたはモニターの指定が必要

同じモニター名をもつヒープ・ダンプのセットを既存のプロジェクトに複数インポートした場合に、後でプロジェクトを保管するかワークベンチを終了すると、データが失われる可能性があります。

この問題を回避するには、インポートするヒープのセットごとに、固有のプロジェクト/モニターの組み合わせを指定してください。

2.9 行レベル・カバレッジ、Probekit: すでにロード済みのクラスからデータを収集するには、プロジェクトの再始動が必要

WAS サーバーを始動してそのサーバーに接続した場合、Probekit と行レベル・カバレッジの両プロファイル・タイプは、ターゲット JVM にすでにロードされているクラスのデータを収集しません。次善策: これらのクラスからデータを収集するには、これらのクラスを含むプロジェクトを再始動します。

2.10 リーク分析: リーク分析時に WAS のヒープ・ダンプが置かれる場所

Linux 上でリーク分析のために WAS アプリケーションのプロファイルを作成するとき、optheap ファイルは次のディレクトリーに置かれます。

WAS 6.0 の場合は、Rational Application Developer インストール・ディレクトリー内の runtimes/base_v6/profiles/default。

WAS 5.x の場合は、Rational Application Developer のインストール・ディレクトリー内。

2.11 * 2 バイト文字が「コンソール」ビューに表示されない

プロファイル作成中には、2 バイト文字は「コンソール」ビューに ???? と表示されます。

注: この問題は V6.0.0.1 で修正されました。

2.12 リーク分析: 分析用のロケールは、データ収集用のロケールと同じであることが必要

Hyades 最適化ヒープ・ダンプを収集する際に、ワークベンチ・ホスト、リモート・デプロイメント・ホスト、およびターゲット・アプリケーションのロケール設定値は、すべて同じであることが必要です。

2.13 スレッド分析: IBM JRE 1.4.1 以前で、ロックのスレッド所有者が欠落する

IBM JVM 1.4.1 以前を使用してスレッド分析用のプロファイル作成を行うと、「プロファイルおよびロギング」パースペクティブの「スレッド」ビューに、ロック・モニターのスレッド所有者が表示されません。これは、このデータが収集されないからです。 次善策: IBM JRE 1.4.2 にアップグレードしてください。

2.14 Solaris 上でリモート・プロファイル作成を行うと、Sun の JVM がクラッシュを起こす場合がある

Solaris 上でリモート・プロファイル作成を行うと、特にメモリー・プロファイルまたはスレッド分析が使用可能に設定されている場合に、Sun 1.4.x JRE の問題点により、機能の組み合わせによってはプロファイルを作成できないことがあります。Sun のサイト http://developer.java.sun.com/developer/bugParade/bugs/4614956.html に、この問題の説明があります。次善策: Sun JRE 1.4.2_06 以降を使用してください。

メインの README ファイルに戻る