Sun Identity Manager 8.1 リリースノート

Identity Manager プロファイラの操作

Identity Manager ではプロファイラユーティリティーが提供され、配備におけるフォーム、Java、規則、ワークフロー、および XPRESS に関連するパフォーマンスの問題のトラブルシューティングに利用できます。

フォーム、Java、規則、ワークフロー、および XPRESS はどれも、パフォーマンスやスケールの問題の原因となる場合があります。プロファイラは、これらのさまざまな領域で消費される時間のプロファイルを作成することにより、これらのフォーム、Java、規則、ワークフロー、または XPRESS オブジェクトがパフォーマンスやスケールの問題の原因となっているかどうか、また、その場合はこれらのオブジェクトのどの部分が問題の原因となっているかを判断できるようにします。

ここでは、Identity Manager のプロファイラの使用方法を説明し、配備におけるパフォーマンス問題のトラブルシューティング方法の学習に役立つチュートリアルを提供します。

これらの情報は、次のトピックで構成されています。


注 –

Identity Manager プロファイラは version 7.1 Update 1 以降でのみサポートされています。


概要

ここでは、Identity Manager のプロファイラ機能の概要を説明します。説明する内容は次のとおりです。

主な機能

プロファイラユーティリティーを使用すると、次のことが可能です。

プロファイラがソースを見つけて管理するしくみ

ここでは、プロファイラが次の Identity Manager オブジェクトのソースをどのように検索して管理するかを説明します。


ヒント –

「Call Tree」ビューと「Hotspots」ビューでは、Java メソッド、ワークフロー、フォーム、規則、または XPRESS に対応する任意のノードをダブルクリックすると、そのノードのソースを表示できます。


フォーム、規則、ワークフロー、XPRESS オブジェクトの場合

プロファイラでスナップショットが作成されるとき、サーバーはすべてのプロファイリングデータを評価し、データがどのソースに依存しているかを調べます。次に、サーバーはこれらのソースすべてをリポジトリから取得して、スナップショットに含めます。したがって、スナップショットに表示される Identity Manager オブジェクトは、スナップショットが作成された時点の状態を正確に反映していることが保証されます。

この処理によってスナップショットのサイズは増加しますが、実際のソースのサイズは合計サイズに比べてわずかな部分にすぎません。したがって、Sun のカスタマサポートに送信するのはスナップショットのみで、ソースファイルを個別に送信する必要はありません。

Java ソースの場合

Java ソースのスナップショットを作成するとき、クライアントはそのスナップショットをダウンロードし、プロジェクトより参照されるすべての Java ソースを取り込むためにスナップショットを検索します。スナップショットを保存するとき、クライアントはソースを圧縮して、スナップショットの末尾に追加します。

スナップショットを表示し Java ソースにアクセスするときは、クライアントは最初にスナップショットの内容を確認します。スナップショットに内容が見つからない場合、クライアントはプロジェクトの内容を確認します。この処理により、ユーザーのカスタム Java コードと Identity Manager コードの、両方のプロファイリングデータを含むスナップショットを送信できます。


注 –

Java ソースのスナップショットでは、ソースがサーバーで最新になっていること、または常に使用可能であることを前提としないでください。


統計の警告

次の節では、プロファイラから提供される結果を評価する際に考慮すべき情報について説明します。

セルフタイム統計

ルートノードのセルフタイム統計を計算する場合、プロファイラは、ルートノードの合計時間からすべての子ノードの時間を減算します。

したがって、計測されていない子ノードの時間がルートノードのセルフタイムに反映されます。ルートノードのセルフタイムがかなり多い場合は、その理由を必ず調査するようにしてください。適切なメソッドで計測していないために、間違った場所を見ている可能性もあります。

たとえば、メソッド A がメソッド B を呼び出すとします。

メソッド A に合計 10 秒 (この合計時間には B の呼び出しも含まれる)、B の呼び出しに合計 10 秒がかかっています。

A と B の両方を計測していれば、呼び出しスタックにその情報が反映されます。A のセルフタイムは 0 秒、B のセルフタイムは 10 秒と表示されます (10 秒は実際に B で消費された時間)。これに対し、B を計測していない場合は、A の呼び出しに 10 秒かかり、A のセルフタイムは 10 秒であると表示されます。したがって、B ではなく A に直接問題があると考える可能性があります。

特に、最初のコンパイルで JSP のセルフタイムが多いことに気づく場合があります。収集された結果をリセットしてからページを再表示すると、セルフタイムの値はかなり少なくなります。

コンストラクタ呼び出し

Java の計測方針には制限があるため、this() または super() の最初の呼び出しは、コンストラクタ呼び出しの子としてではなく兄弟として表示されます。次の例を参照してください。


class A
{
   public A()
   {
      this(0);
   }
   public A(int i)
   {
   }
}

and:

class B
{
   public static void test()
   {
      new A();
   }
}
The call tree will look like this:
B.test()
   -A.<init>(int)
   -A.<init>()
Rather than this:
B.test()
   -A.<init>()
      -A.<init>(int)

デーモンスレッド

ReconTask.WorkerThread.run()TaskThread.WorkerThread.run() など、Identity Manager のいくつかのデーモンスレッドで大量の時間が消費されたように見えますが、これに惑わされないでください。この時間の大部分は、イベントを待機しているスリープ中に消費されたものです。イベントの処理中に実際に消費された時間を確認するには、これらのトレースを調査する必要があります。

入門

ここでは、プロファイラを起動する方法と、プロファイラのグラフィカルユーザーインタフェースの各種機能を使用する方法について説明します。この情報は、次のように構成されています。

開始する前に

プロファイラはメモリーを集中的に使用するため、サーバーと Netbeans Java 仮想マシン (JVM) 両方のためにメモリーをかなり増やす必要があります。

    サーバーのメモリーを増やすには、次の手順に従います。

  1. Netbeans ウィンドウを開き、「実行時」タブを選択します。

  2. 「サーバー」ノードを展開し、「バンドル版 Tomcat」を右クリックし、ポップアップメニュー から「プロパティー」を選択します。

  3. 「サーバーマネージャー」ダイアログが表示されたら、「接続」タブの「HTTP モニターを有効化」ボックスのチェックマークを外します。

  4. 「プラットフォーム」タブを選択し、VM オプションを -Xmx1024M に設定して「閉じる」をクリックします。

    Netbeans JVM のメモリーを増やすには、次の手順を使用します。

  1. netbeans-installation-dir\etc\netbeans.conff ファイルを開き、次の行を見つけます。

    netbeans_default_options="-J-Xms32m -J-Xmx ...

  2. -J-Xmx の値を -J-Xmx 1024M に変更します。

  3. ファイルを保存してから閉じます。

完了したら、次の節の説明に従ってプロファイラを起動します。

プロファイラの起動

次の方法のいずれかを使用して、Identity Manager IDE ウィンドウからプロファイラを起動できます。


注 –

「Start Identity Manager Profiler on Main Project」アイコンは、Identity Manager メインプロジェクトのバージョンが 7.1 Update 1 以降の場合に使用可能になります。


プロファイラを起動すると「Profiler Options」ダイアログが表示されるので、使用するプロファイリングオプションを指定できます。これらのオプションの設定方法については、「プロファイラオプションの指定」を参照してください。

プロファイラの使用

この節では、プロファイラのグラフィカルユーザーインタフェースの機能と、これらの機能の使用方法について説明します。説明する内容は次のとおりです。

プロファイラオプションの指定

「Profiler Options」ダイアログは次のタブで構成されています。

これらのタブにあるオプションを使用して、どのオブジェクトのプロファイルを作成するか、およびどの要素をプロファイルに表示するかを指定します。

プロファイラのオプションを指定したら、「OK」をクリックしてプロファイラを起動します。プロジェクトの設定に応じて、プロファイラは 2 つの処理のどちらかを実行します。


注 –

「IDM」>「Set Identity Manager Instance」を選択して、プロジェクトに対する Identity Manager インスタンスの動作を制御できます。


Mode

「Mode」タブには次のオプションがあります。

IDM Object Filters

「IDM Object Filters」タブには次のオプションがあります。

Java Filters

「Java Filters」タブは次の場合に選択します。

Java フィルタは、メソッドパターンの形で指定され、「正規メソッド名」に基づいて含めるか除外するかを示すパターンで表現されます。正規メソッド名は次のとおりです。

fully-qualified-class-name.method-name( parameter-type-1, parameter-type-2, ... )


注 –

コンストラクタの場合、method-name<init> です。


次に、いくつかの例を示します。


注 –

現在では、フィルタはカスタムクラスと Identity Manager クラスだけに適用されるため、最後の 2 つの例は等価です。


必要な場合は、build.xml の次の行を適切に編集すると、ほかの JAR を計測できます。次に例を示します。


<instrument todir="${lighthouse-dir-profiler}/WEB-INF" 
verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" 
excludeMethods="${profiler.excludes}">
           <fileset dir="${lighthouse-dir}/WEB-INF">
               <include name="lib/idm*.jar"/>
               <include name="classes/**/*.class"/>
           </fileset>
</instrument>

デフォルトの設定では、ユーザーのすべてのカスタムクラスとほとんどの Identity Manager クラスが含められます。いくつかの Identity Manager クラスは、有効にするとプロファイラで障害が発生するため、強制的に除外されています。

たとえば、ワークフロー、フォーム、および XPRESS の各エンジンのクラスは除外されています。そうしないと、プロファイラが Java および Identity Manager オブジェクトのプロファイルを作成する際に、理解不能なスナップショットが生成されます。

「Java Filters」では、「IDM Object Filters」よりはるかに詳細なフィルタリングが提供されます。Java 計測では、かなりのオーバーヘッドが実行時間に追加され、それによってプロファイリング結果が大幅に歪曲される可能性があります。Identity Manager オブジェクトはコンパイルされるのではなく解釈されるので、計測のオーバーヘッドは無視できるほどの大きさです。したがって、ワークフロー A を除外してワークフロー B を含めるなどには、基本的に理由がありません。


注 –

プロファイラの実行中に Java Filters を変更することはできません。Java Filters を変更する前に、プロファイラを停止する必要があります。


Miscellaneous

「Miscellaneous」タブには次のオプションがあります。

「IDM Profiler」ビューの操作

「IDM Profiler」ビューは次の領域で構成されています。

「Current Project」領域

「Current Project」領域は、ユーザーの現在のプロジェクトを一覧表示するドロップダウンメニューで構成されています。このメニューを使用して、プロファイルを作成するプロジェクトを選択します。

「Controls」領域

「Controls」領域には、次の表で説明する 4 つのアイコンがあります。

アイコン 

名前 

目的 

「Start Identity Manager Profiler」アイコンを示す図

Start Identity Manager Profiler 

プロファイラを起動し、「Profiler Options」ダイアログを開きます。 

「Stop Identity Manager Profiler」アイコンを示す図

Stop Identity Manager Profiler 

プロファイラを停止します。 

「Reset Collected Results」アイコンを示す図

Reset Collected Results 

この時点までに収集されたプロファイリング結果をすべてリセットします。 

「Modify Profiling」アイコンを示す図

Modify Profiling 

「Profiler Options」ダイアログを再度開き、現在のプロファイリング結果を修正するために設定を変更できるようにします。 

「Status」領域

「Status」領域は、ホストに接続しているかどうかを報告し、プロファイラの起動時、実行中、および停止時にはステータス情報を表示します。

「Profiling Results」領域

「Profiling Results」領域には、次の表で説明する 2 つのアイコンがあります。

アイコン 

名前 

目的 

「Start Identity Manager Profiler」アイコンを示す図

Start Identity Manager Profiler 

プロファイラを起動し、「Profiler Options」ダイアログを開きます。 

「Reset Collected Results」アイコンを示す図

Reset Collected Results 

この時点までに収集されたプロファイリング結果をすべてリセットします。 

「Saved Snapshot」領域

「Saved Snapshot」領域には、保存されているスナップショットの一覧が表示されます。


注 –

スナップショットを保存する手順については、「スナップショットの保存」を参照してください。


また、次のボタンを使用して、これらのスナップショットを管理することもできます。

「スナップショットビュー」の操作

スナップショットを開くと、Identity Manager IDE の右上にある「スナップショットビュー」ウィンドウに結果が表示されます。

スナップショットにはいくつかのデータビューがあり、これらについて次の節で説明します。

「Call Tree」ビュー

「Call Tree」ビューは、システム全体での呼び出し時間と呼び出し回数を表示するツリーテーブルで構成されています。

このツリーテーブルには、次の 3 つの列があります。

「Hotspots」ビュー

「Hotspots」ビューでは、親にかかわらず集計された呼び出し時間が、フラット化されたノードリストに表示されます。

このビューには、次の列があります。

「Back Traces」ビュー

「Back Traces」ビューでは、各ノードが呼び出されたすべての呼び出しチェーンが、逆転した呼び出しスタックに表示されます。

これらの統計を使用すると、そのノードから特定の呼び出しチェーンを削除した場合に、どれだけの時間が節約されるかがわかります。

「Back Traces」ビューにアクセスするには、ほかのスナップショットビューのいずれかでノード (「ルートノード」と呼ばれる) を右クリックし、ポップアップメニューから「Show Back Traces」を選択します。


注 –

「Back Traces」ビューの「Time」および「Invocations」のデータ値は少し意味が異なります。


「Callees」ビュー

「Callees」ビューでは、親チェーンにかかわらず集められた、ノード (「ルートノード」と呼ばれる) の呼び出しツリーが表示されます。

これらの統計は、問題のある領域がマスター呼び出しツリー全体のさまざまな部分から呼び出されている場合に、そのノードの全体的なプロファイルを確認するのに役立ちます。

「Callees」ビューにアクセスするには、ほかのスナップショットビューのいずれかでノード (「ルートノード」と呼ばれる) を右クリックし、ポップアップメニューから「Show Callees」を選択します。


注 –

「Callees」ビューで使用される「Time」および「Invocations」のデータ値の意味は、「Call Tree」ビューで使用されるものと同じです。


ポップアップメニューオプションの使用

「Call Tree」ビューまたは「Hotspots」ビューで任意のノードを右クリックすると、次の表に示すオプションがポップアップメニューに表示されます。

メニューオプション 

説明 

GoTo Source 

Java メソッド、ワークフロー、フォーム、規則、または XPRESS に対応するノードの XML ソースを表示する場合は、このオプションを選択します。このビューの詳細は、「プロファイラがソースを見つけて管理するしくみ」を参照してください。

Show Back Traces 

「Back Traces」ビューにアクセスする場合は、このオプションを選択します。このビューの詳細は、「「Back Traces」ビュー」を参照してください。

Show Callees 

「Callees」ビューにアクセスする場合は、このオプションを選択します。このビューの詳細は、「「Callees」ビュー」を参照してください。

Find In Hotspots 

「Hotspots」ビューでノードを検索する場合は、このオプションを選択します。このビューの詳細は、「「Hotspots」ビュー」を参照してください。

オプションを表示 > ソート > 

このオプションには次のいずれかを選択します。 

  • なし

  • Call Tree

  • Time

  • Invocations

  • 昇順にソート

  • 降順にソート

オプションを表示 > 表示項目を変更 

Call Tree または Hotspots のリストに表示される列を変更する場合は、このオプションを選択します。 

「表示項目を変更」ダイアログが表示されたら、次のオプションを 1 つ以上選択できます。 

  • Call Tree: Call Tree

  • Invocations : Invocations

  • Time: Time

スナップショットの検索

「スナップショットビュー」ウィンドウの上部にある「検索」アイコン「検索」アイコンを示す図 を使用すると、「Call Tree」ビューまたは「Hotspots」ツリーからノードを名前で検索できます。

あるいは、「Call Tree」ビューまたは「Hotspots」ビューで任意のノードを右クリックし、ポップアップメニューからそれぞれ「Find in Call Tree」または「Find in Hotspots」を選択すると、ノードを検索できます。

スナップショットの保存

プロファイラには、スナップショットを保存するためのオプションがいくつか用意されています。これらのオプションについては、次の表を参照してください。

アイコン 

名前 

目的 

「Start Identity Manager Profiler」アイコンを示す図

「Save the Snapshot in the Project」アイコン (「スナップショットビュー」ウィンドウの上部にある) 

プロジェクトの nbproject/private/idm-profiler ディレクトリにスナップショットを保存します。プロジェクトに保存されているスナップショットは、「Profiler」ビューの「Saved Snapshot」セクションに一覧表示されます。

「Stop Identity Manager Profiler」アイコンを示す図

「Save the Snapshot Externally」アイコン (「スナップショットビュー」ウィンドウの上部にある) 

外部の任意の場所にスナップショットを保存します。 

「Reset Collected Results」アイコンを示す図

「Save As」ボタン (「Saved Snapshot」領域にある) 

外部の任意の場所にスナップショットを保存します。 

チュートリアル: パフォーマンスの問題のトラブルシューティング

Identity Manager ではチュートリアル (profiler-tutorial.zip) が用意されており、プロファイラを使用してフォーム、Java 規則、ワークフロー、および XPRESS のトラブルシューティングを行う方法の学習に利用できます。

チュートリアルを完了するには、次の手順を使用します。

Procedure手順 1: Identity Manager プロジェクトの作成

  1. 「ファイル」>「新規プロジェクト」の順に選択します。

  2. 新規プロジェクトウィザードが表示されたら、次のように設定し、「次へ」をクリックします。

    1. 「カテゴリ」リストで「Web」を選択して、作成するプロジェクトのタイプを指定します。

    2. 「Projects」リストで、「Identity Manager Project」を選択します。


      注 –

      完全な機能を備えた開発環境のためには、通常の Identity Manager プロジェクトを作成する必要があります。「Identity Manager Project (Remote)」オプションは選択しないでください。


  3. 「Name and Location」パネルで次のフィールドに入力し、「次へ」をクリックします。

    • Project Name: プロジェクト名として Idm80 と入力します。

    • Project Location?: デフォルトの場所を使用するか、別の場所を指定します。

    • Project Folder?: デフォルトのフォルダを使用するか、別のフォルダを指定します。

  4. 「Identity Manager WAR File Location」パネルが表示されたら、Identity Manager 8.1 の war ファイルの場所を入力します。通常、このファイルを解凍すると、同じディレクトリに idm.war ファイルが作成されます。

  5. 「次へ」をクリックして「Repository Setup」パネルに進みます。

    このパネルではデフォルト設定を変更する必要はないので、そのまま「完了」をクリックします。Identity Manager の出力ウィンドウに「BUILD SUCCESSFUL」というメッセージが表示されたら、プロファイラのチュートリアルファイルを抽出できます。手順については、「手順 2: プロファイラチュートリアルの解凍」を参照してください。

Procedure手順 2: プロファイラチュートリアルの解凍

  1. profiler-tutorial.zip をプロジェクトルートに解凍します。抽出されるファイルには次のものがあります。

    <project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
    <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
    <project root>/src/org/example/ProfilerTutorialExample.java
    <project root>/PROFILER_TUTORIAL_README.txt
  2. プロファイラを起動します。「手順 3: プロファイラの起動」に進みます。

Procedure手順 3: プロファイラの起動

  1. 「開始する前に」で説明されている手順を使用して、サーバーおよび Netbeans JVM のメモリーを増設します。

  2. 「概要」で説明されているいずれかの方法で、プロファイラを起動します。

  3. 「Profiler Options」ダイアログが表示されたら、プロファイリングオプションを指定できます。

  4. 「手順 4: プロファイラオプションの設定」に進みます。


    注 –

    その他のプロファイラオプションの詳細は、「プロファイラオプションの指定」を参照してください。


Procedure手順 4: プロファイラオプションの設定

このチュートリアル用には、次のプロファイラオプションを指定します。

  1. 「Mode」タブで「Java and IDM Objects」を選択して、フォーム、Java、規則、ワークフロー、および XPRESS オブジェクトのプロファイルを作成することを指定します。

  2. 「Java Filters」タブを選択します。

    次の手順を使用して、カスタム Java クラス (ここでは org.example.ProfilerTutorialExample) を除くすべての Identity Manager Java クラスを無効にします。

    1. 「New」をクリックすると、新しい空白のフィールドが「Filter」列の下部に表示されます。

    2. 新しいフィールドに com.waveset.* と入力し、「Exclude」ボックスを選択します。

    3. 「New」を再度クリックします。

    4. 新しいフィールドに com.sun.idm.* と入力し、「Exclude」ボックスを選択します。

  3. 「了解」をクリックしてプロファイラを実行します。


    注 –

    プロジェクトではじめてプロファイラを実行する場合や、プロジェクトのクリーンアップ操作を最近実行した場合は、プロファイラの処理の完了に数分かかります。


    処理が完了すると、ログインを求めるプロンプトが表示されます。

  4. パスワード configurator を入力し、「Remember Password」ボックスを選択してから、「了解」をクリックして続行します。

  5. Identity Manager ウィンドウが表示されたらログインします。


    注 –

    通常は、再度 configurator としてログインするのではなく、別のユーザーで Identity Manager にログインするようにしてください。Identity Manager セッションプールで使用できるのは 1 ユーザーにつき 1 つのエントリだけですが、すでに Configurator としてプロファイラにログインしています。複数のエントリを使用すると、セッションプールの表示が壊れ、パフォーマンスの問題をより詳細に調査するためのプロファイリング結果が歪曲される可能性があります。

    ただし、この単純な例では、セッションプールは重要でないので、configurator/configurator としてログインしてかまいません。


  6. Identity Manager で、「サーバータスク」>「タスクの実行」を選択し、ProfilerTutorialWorkflow1 をクリックします。

    チュートリアルが応答するまでに少し時間がかかることがあります。

  7. この時点でスナップショットを作成することもできますが、ここでは結果をリセットし、プロファイラを実行し、プロファイラを再度実行してから、スナップショットを作成します。


    注 –

    スナップショットを作成する前に、すべてのキャッシュの準備が完了したこと、すべての JSP がコンパイルされていることなどを確実にするために、プロファイラを数回実行することが最良の方法です。

    プロファイラを数回実行することで、実際のパフォーマンスの問題に焦点を当てることができます。この方法が推奨されないのは、キャッシュ自体の生成に問題がある場合だけです。


    1. Identity Manager IDE で 「IDM Profiler」ビューに戻ります。「Profiling Results」セクション (または「Controls」セクション) の「Reset Collected Results」アイコン をクリックして、この時点までに収集された結果をすべてリセットします。

    2. Identity Manager で、「サーバータスク」>「タスクの実行」を再度選択し、ProfilerTutorialWorkflow1 をクリックします。

    3. 処理ダイアグラムが表示されたら、Identity Manager IDE に戻り、「Profiling Results」セクションの「Take Snapshot」をクリックします。

  8. Identity Manager IDE でユーザーのスナップショットがダウンロードされ、結果がウィンドウの右側に表示されます。

    この領域が「Call Tree」ビューです。呼び出しツリーの最上部に /idm/task/taskLaunch.jsp が表示され、「Time」列に時間が表示されます。その時間は、要求全体に 6 秒強かかったことを示しています。

  9. /idm/task/taskLaunch.jsp ノードを展開すると、ProfilerTutorialWorkflow1 に 6 秒かかったことがわかります。

  10. ProfilerTutorialWorkflow1 ノードを展開します。activity2 に 4 秒、activity1 に 2 秒かかっています。

  11. activity2 を展開します。

    action1 に 2 秒、action2 に 2 秒かかっています。

  12. action1 を展開すると、<invoke> にも 2 秒かかったことがわかります。

  13. <invoke> をダブルクリックすると、ProfilerTutorialWorkflow1.xml が開き、次の行が強調表示されます。


    <invoke name=’example’ class=’org.example.ProfilerTutorialExample’/>

    ProfilerTutorialExample メソッドの呼び出しに 2 秒かかったことがわかります。


    注 –

    実際には、プロジェクト内のソースではなく、スナップショットに取り込まれた XML ソースを参照しています。スナップショットには必要なものがすべて含まれています。詳細は、「プロファイラがソースを見つけて管理するしくみ」を参照してください。


  14. 「CPU:<date><time>」タブを選択して、スナップショットに戻ります。

  15. <invoke> ノードを展開すると、プロファイラが ProfilerTutorialExample.example() Java メソッドで 2 秒消費したことがわかります。

  16. メソッド名をダブルクリックすると、ProfilerTutorialExample.java ソースが開き、次の行が強調表示されます。


    Thread.sleep(2000);

    ここに問題があります。このメソッドには 2 秒のスレッドスリープが含まれています。

  17. Call Tree に戻ると、2 秒のパスはすべてこのメソッドにつながっていることがわかります。3 つのパスがあり、合計 6 秒になっています。

  18. 「Call Tree」領域の下部にある「Hotspots」タブを選択して、「Hotspots」ビューを開きます。ProfilerTutorialExample.example() の合計セルフタイムは 6 秒になっています。

    「Hotspots」の詳細は、「「スナップショットビュー」の操作」を参照してください。

  19. ProfilerTutorialExample.example() を右クリックし、ポップアップメニューから「Show Back Traces」を選択します。

    領域の下部に、新しい「Back Traces」タブが表示されます。

  20. 「Back Traces」タブで ProfilerTutorialExample.example() ノードを展開すると、このメソッドが 3 箇所から呼び出されたことと、各箇所からの呼び出しに 2 秒かかったことがわかります。

    「Back Traces」の詳細は、「「スナップショットビュー」の操作」を参照してください。

  21. 「Save the snapshot in the project」アイコンをクリックして、スナップショットを保存して閉じます。

    「IDM Profiler」タブの「Saved Snapshot」セクションを確認すると、このスナップショットが表示されるはずです。場合によっては、スクロールダウンする必要があります。

  22. 保存したスナップショットを選択し、「Open」をクリックして再度開きます。


    注 –

    「Save As」ボタンを使用するとスナップショットを外部に保存でき、「Load」ボタンを使用するとプロジェクト外部からスナップショットを読み込むことができます。


  23. スナップショットをふたたび閉じます。

Procedure手順 5: ManualAction ワークフローのプロファイルの作成

このチュートリアルの次の部分では、ワークフロー ManualAction のプロファイルを作成する方法を示します。

  1. Identity Manager で、「サーバータスク」>「タスクの実行」を選択し、ProfilerTutorialWorkflow2 をクリックします。

    しばらくすると、空のフォームが表示されます。

  2. 「保存」をクリックすると、処理ダイアグラムが表示されます。

  3. 「サーバータスク」>「タスクの実行」を再度選択します。

  4. Identity Manager IDE の「IDM Profiler」ビューに戻り、「Profiling Results」セクションの「Reset Collected Results」アイコンをクリックします。

  5. Identity Manager で ProfilerTutorialWorkflow2 をクリックします。

  6. 空のフォームが再度表示されたら、「保存」をクリックします。

  7. 「IDM Profiler」ビューで、「Take Snapshot」をクリックします。

    数秒後、「Call Tree」領域にスナップショットが表示されます。/idm/task/workItemEdit.jsp に 6 秒強かかったことがわかります。この結果は、ワークフローでの手動操作に対応します。

  8. /idm/task/workItemEdit.jsp ノードを展開すると、ManualAction フォーム内のすべての Derivations の実行に合計 6 秒かかったことがわかります。

  9. DerivationdisplayNameFormvariables.dummy、および <block> ノードを展開します。

    <block> に 6 秒かかったことと、その時間のうちで ProfilerTutorialExample.example() メソッドの 3 回の呼び出しにそれぞれ 2 秒かかったことがわかります。

  10. <block> をダブルクリックすると、ソースを表示できます。