ワークフローのトレースを有効にすると、ワークフローアクティビティの問題を解決して、ワークフロープロセスが把握できるようになります。
クラスター化された環境で、各インスタンスでトレースが実行されます。
複数台のサーバー配備でワークフローをデバッグするには、1 台のサーバーを残してすべてシャットダウンするようにしてください。すべてのサーバーが実行中の場合は、環境内でどのサーバーがワークフローを実行中かを判断できず、トラブルシューティング問題の原因が特定できません。
ワークフローのトレースを有効にするには、次の項目を実行します。
ブラウザを開いて、Identity Manager 管理者インタフェースにログインします。
「System Settings 」ページの「List Objects Type」メニューから「Configuration」を選択します。
「List Objects」ボタンをクリックします。
「List Objects of type: Configuration」ページが表示されたら、オブジェクトリストをスクロールダウンして System Configuration オブジェクトを見つけ、その編集リンクをクリックします。
「Checkout Object: Configuration, #ID#CONFIGURATION:SYSTEMCONFIGURATION 」ページが表示されたら、SystemConfiguration オブジェクトの次のいずれの workflow オプションでも編集できます。
通常、有効にするオプションは 1 つだけですが、同時に複数のオプションを有効にすることもできます。
これらの属性は、互いに依存していません。一種類のトレースを有効にしながら、他の種類を無効に設定することが可能です。
アプリケーションサーバーのコンソールにワークフローのトレースメッセージをリダイレクトするには、workflow.consoleTrace=true を指定します。この属性の方が workflow.fileTrace よりも多くのトレース出力を出力するため、致命的な例外でワークフローが終了したときに役立ちます。(デフォルト値は false です。)
ワークフローのトレースメッセージを読みやすいファイルにリダイレクトするには、workflow.fileTrace=PathtoFile を指定します。この属性には、デフォルトで値がありません。
<Attribute name=’fileTrace’/>
workflow.fileTrace 属性に値タグを付け、Unix 式の普通のスラッシでログファイルにパスを入力します。Identity Manager が、アプリケーションサーバーのインストールディレクトリに関する相対パスを格納します。例を示します。
Windows の場合。 <Attribute name=’fileTrace’ value=’C:\mydir\workflow.txt’/>
Solaris/UNIX の場合。 <Attribute name=’fileTrace’ value=’/mydir/workflow.txt’/>
表示するワークフローのトレースレベルをを指定するには、workflow.traceLevel=tracingLevel を指定します。
ワークフロープロセスをトレースするには、workflow.Trace=true を指定します。このオプションでトレースを開始するには、アプリケーションサーバーを再起動する必要があります。Identity Manager が、タスクの WavesetResult オブジェクトにトレース結果を格納します。ファイルシステムにアクセスできない場合は、このトレースオプションを使用してください。(デフォルト値は false です。)
タスクの WavesetResult にあるメッセージをトレースします。(デフォルト値は 1 です。)
workflow.Trace=true を指定すると、読みにくくて長い未フォーマットの 1 つの文字列にトレースメッセージが付与されます。このオプションは、ファイルシステムにアクセスできない場合のみ使用してください。
最初の 2 つのオプションを使用すると、致命的な例外が発生した場合に、ワークフローのトレースの一部を紛失してしまうことがあります。
SystemConfiguration オブジェクトを保存します。
アプリケーションサーバーを再起動するか、SystemConfiguration オブジェクトを Identity Manager のデバッグページから再読み込みします。
指定のワークフローのトレースを有効にするには、次のいずれかの方法を用います。
WFProcess 定義の編集。特定のプロセスに条件付きトレースを有効にするには、trace=’console の属性を <WFProcess> 要素に追加して、TaskDefinition オブジェクトの XML を編集します。
ワークフロー変数の編集。ワークフロー変数を使用すると、トレースのタイミングをより細かく制御できるようになります。ワークフローエンジンは、trace という最上位のワークフロー変数を検索します。
次の例は、ワークフロー変数のトレース方法の一例を示したものです。
<Variable name=’trace’> <cond><eq><ref>accountId</ref><s>jfaux</s></eq> <s>workflowTrace.txt</s> </cond> </Variable> |
trace 変数は、そのワークフローが jfaux というユーザー名で処理されている場合だけ、トレースを有効にします。さらに、トレースを対話式に制御するには、フォームフィールドの trace を指定します。
たとえば、トレース出力は workflowTrace.txt ファイルに書き込まれます。