演習 1.2: スレッド・データの収集
この演習を開始する前に、『演習 1.1: 必要なリソースのインポート』を
完了する必要があります。
シナリオ: 調べようとしているプログラムは、実行後しばらくすると突然停止します。
これは、プログラムを実行するたびに発生します。
この動作はスレッド・デッドロックに典型的なものであるため、このプログラム内で各スレッドが
どのように相互作用しているのかを調べるように依頼されました。
考えられるスレッド・デッドロックを突き止めるには、まずスレッド・データを収集して
から、「プロファイルおよびロギング」パースペクティブのスレッド・ビューを使用してそのデータを分析し
ます。
スレッド・データを収集することにより、デッドロックを特定したり、アプリケーションのエラーの原因でないスレッドを判別したりできます。
スレッド・データの収集の準備
スレッド・データを収集するには、「プロファイルおよびロギング」パースペクティブを開いている必
要があります。
このパースペクティブに切り替えるには、以下のようにします。
- Software Development Platform のメニュー・バーから、「ウィンドウ」>「パース
ペクティブを開く」>「その他」をクリックする。「パースペクティブの選択」ダイアログ・ボックスが開きます。
- このダイアログ・ボックスの左下で、「すべて表示」をクリックする。このチェック・ボックスに
チェック・マークが付けられます。
- パースペクティブのリストから、「プロファイルおよびロギング」を選択して「OK」を
クリックする。
- 「使用可能化の確認」ダイアログ・ボックスが開いた場合は、「常に機能を使用可能にし、今
後このメッセージを表示しない」をクリックして、「OK」をクリックする。
- Software Development Platform が「プロファイルおよびロギング」パースペクティブに切り替わ
る。
philosopher アプリケーションのスレッド・データの収集
データを収集するには、以下のようにします。
- Software Development Platform のメニュー・バーから、「ウィンドウ」>「ビューの表
示」>「コンソール」をクリックして、「コンソール」ビューを表示する。「コンソール」ビューでは、アプリケーションの処理
状況を追跡できます。
- 以下の手順に従ってプロファイル構成を作成する。
- メニュー・バーから、「実行」>「プロファイル」をクリックする。「プロファイル」ダイアログ・ボックスが開きま
す。
- 「構成」リストで、「Java アプリケーション」エントリーをダブルクリッ
クする。「新規構成」エントリーが表示されます。
- 「名前」フィールドに「PhilosopherThreads」と入力する。
- 「メイン」タブで、「プロジェクト」フィールドに「philosopher」がまだ入力されていない場
合は、以下のようにする。
- 「プロジェクト」フィールドの横の「参照」をクリックする。「プロジェクトの選択」ダイアログ・ボックスが開きます。
- 「philosopher」を選択して「OK」をクリックする。
- 「メイン・クラス」フィールドの横の「検索」をクリックする。
- 「メイン型の選択」ダイアログ・ボックスで、「MaitreDHote」をクリックして「OK」
をクリックする。
- 「プロファイル」タブをクリックする。
- 「概要」サブタブで、「スレッド分析 (Thread Analysis)」プロファイル・セットを選択する。
(プロファイル・セット により、実行で収集されるプロファイル・データのタイプが定義されます。)
- 「プロファイル」をクリックする。アプリケーションが実行されて、表示が以下のように変化します。
- プロファイル・モニターにプロファイル・リソースが表示される。
- 「コンソール」ビューに実行の出力が表示される。
注: Agent Controller を使用できないことを示すセキュリティー・メッセージが表示された場
合は、『データを収集できなかった場合』を参照してください。

アプリケーションが特定のポイントに到達すると、処理が停止します。
しかし、この実行でスレッド・データを収集したため、アプリケーションが停止した理由を分析でき
ます。
データを収集できなかった場合
何らかのプロファイル・データを収集するには、Agent Controller が実行されている必要があります。
Agent Controller を使用できないことを示すメッセージが表示された場合は、Agent Controller がインス
トールされていることを確認して、手動で開始してから、データの収集を再試行してください。
詳細については、インストール・ガイドを参照してください。
インストール・ガイドにはランチパッドを使用してアクセスできます。または、
製品 CD の disk1/install.html ファイルを直接開くこともできます。
データを収集したら、『演習 1.3: スレッド・ボトルネックの特定』を開
始する準備ができています。