演習 1.3: プローブの適用

この演習を開始する前に、『演習 1.2: 最初のプローブの作成』を完了 する必要があります。

RandomNumbersProbe プローブを作成して、このプローブ内のエラーを修正したので、 RandomNumbers プログラムを実行して、このプローブをこのプログラムに適用できます。 RandomNumbers プログラムが含まれたプロジェクトを変更する必要はありません。

最初に、プローブを適用しないで RandomNumbers プログラムを実行してみましょう。

このプログラムは 1 から 10 の乱数を 1 つ選択します。 その乱数が 10 の場合は、シミュレーションは「ヒット (hit)」として終了 します。 それ以外の場合は、(A) 新しい乱数が最初の乱数と一致するか、(B) 新しい乱数が 10 にな るまで、プログラムは乱数の選択を繰り返します。 (A) の場合、シミュレーションは「ヒット (hit)」を報告します。 (B) の場合、シミュレーションは「ミス (miss)」を報告します。

プログラムを実行するには、以下のようにします。

  1. Software Development Platform のメニュー・バーから、「ウィンドウ」>「ビューの表 示」>「コンソール」をクリックする。「コンソール」ビューが開きます。
  2. パッケージ・エクスプローラー・ビューで、「RandomNumbers」エントリーと「デフォル ト・パッケージ」エントリーを展開する。
  3. RandomNumbers.java」ファイルを右クリックして、 「実行」>「Java アプリケーション」をクリックする。

「コンソール」ビューには、以下のような出力が表示されます。

Random number simulation now starting.
Next selected random value: 7.
The initial random value is not ten. Looking for a match.
Target value is 7
Next selected random value: 5.
No match, not a ten. Continuing.
Target value is 7
Next selected random value: 8.
No match, not a ten. Continuing.
Target value is 7
Next selected random value: 7.
A match occurred before a ten: hit.

次に、プログラムを再実行しますが、今回はプローブを適用します。

  1. パッケージ・エクスプローラー・ビューで、「RandomNumbers.java」ファイルを右クリッ クして、「プロファイル」>「Java アプリケーション」を選択する。RandomNumbers の「プロパティー」ダイアログ が開いて、起動構成プロパティーを編集できます。
  2. 「プロファイル」タブを選択する。
  3. プロファイル・セット・リストから「プローブの例」プロファイル・セットを選択して、 「編集」をクリックする。「プロファイル・セットの編集」ダイアログ・ボックスが開きます。
  4. 次へ」をクリックする。「プロファイル・タイプ」ページが開いて、「プローブ追加 (Probe Insertion)」というプロファイル・タイプ・プロパティーを編集できます。 作成した「RandomNumbersProbe」プローブが、選択可能なプローブのリストに表示されます。
  5. RandomNumbersProbe」のチェック・ボックスをオンにして、 リスト内の他のすべてのプローブのチェック・ボックスが オフ になっていることを確認する。
  6. 次へ」をクリックする。「フィルター・セット (Filter Set)」ページが開きます。 このページを使用して、対象にするクラスとメソッドのみにプローブが適用されるようにします。
  7. 「デフォルト」フィルター・セットが選択されていることを確認する。 どのフィルター・セットにも、最後のエントリーとして、「すべてを含む」規則が暗黙的に含まれているため、このフィルター・セットは、実行するプログラム内のクラス以外のすべてのクラスを除外します。
  8. 終了」をクリックして「OK」をクリックする。
  9. 「パースペクティブ切り替えの確認」ダイアログ・ボッ クスが開いた場合は、「はい」をクリックする。Software Development Platform が「プロファイルおよびロギング」パース ペクティブに切り替わり、プログラムが実行されます。 選択したプローブは、このプログラムのクラスがロードされるたびにこれらのクラスに適用され、 このプローブの entry フラグメントは、メソッドが実行されるたびにトリガーされます。
    : Agent Controller を使用できないことを示すセキュリティー・メッセージが表示された場 合は、『データを収集できなかった場合』を参照してください。
  10. 「コンソール」ビューがまだ表示されていない場合は、「ウィンドウ」>「ビューの表示 」>「コンソール」を選択してこのビューを開く。

「コンソール」ビューでは、RandomNumbers プログラムの通常の出力に加えて、プローブ・ロジッ クによって生成された出力も表示されます。 以下のような出力が表示されます。

[Enter method RandomNumbers.main]
[Enter method RandomNumbers.<init>]
[Enter method RandomNumbers.runSimulation]
Random number simulation now starting.
[Enter method RandomNumbers.getRandomNumber]
Next selected random value: 2.
The initial random value is not ten. Looking for a match.
Target value is 2
[Enter method RandomNumbers.getRandomNumber]
Next selected random value: 2.
A match occurred before a ten: hit.

上記からわかるように、プローブの entry フラグメントからの出力が、プログラム自体の出力と共に 表示されます。 プローブからの出力が大括弧で囲まれているのは、このフラグメント内で System.out.println 呼 び出しをそのように作成したからです。

データを収集できなかった場合

なんらかのプロファイル・データを収集するには、Agent Controller が実行されている必要があります。 Agent Controller を使用できないことを示すメッセージが表示された場合は、Agent Controller がインス トールされていることを確認して、手動で開始してから、データの収集を再試行してください。 詳細については、インストール・ガイドを参照してください。 インストール・ガイドにはランチパッドを使用してアクセスできます。または、製品 CD の disk1/install.html ファイルを直接開くこともできます。

ここでは、プログラム内のメソッドが開始されるたびに報告を行う単純なプローブを作成して使用しました。 これで、『演習 1.4: 高度なプローブの作成』を開始する準備ができました。

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.