[CAIレシピ] デバッグのためのログレベル

## はじめに

CAIプロセスの実装をしていると、エラーが発生することがあります。標準の設定では、エラー発生時のステップを特定できないためトラブルシューティングに苦慮する場合もあると思いますが、ログレベル(`CAIプロセスではトレースレベルと呼びます`)を適切に設定することでエラー箇所の確認・原因の特定が容易になります。

この記事では次のポイントについて確認します。

- CAIプロセスをデバッグするための設定
- デバッグ設定時の動作

なお、この記事は次の記事の内容を理解していることを前提としています。

- [はじめてCAIを使う際に](https://qiita.com/shunsuzu/private/12b8dbd08a30efa0003a)
- [プロセスの作成と実行(匿名認証と基本認証)](https://qiita.com/shunsuzu/private/01d91caedb92bd7781ea)
- [割り当てステップと、各種変数フィールドの利用](https://qiita.com/shunsuzu/private/fae696539cd245828848)



## CAIプロセスをデバッグするための設定

開始ステップの __詳細__ タブから __トレースレベル__ を変更することでCAIプロセスをデバッグするために有用な情報を得られます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/b0b63c38-ae4b-e4a3-56c0-a746db991919.png)

トレースレベルは __詳細(Verbose)__ を選択した場合に最も詳細な情報が得られますが、デバッグ情報を記録するために動作遅延が起こる可能性がある点に留意します。

|トレースレベル|Error|Step tick|Data|コメント|
|---|:-:|:-:|:-:|---|
|なし(None)|×|×|×||
|簡易(Terse)|○|×|×|Error発生ステップを確認できる|
|標準(Normal)|○|○|×|各ステップの実行状況を確認できる|
|詳細(Verbose)|○|○|○|詳細ビューの情報強化|

## デバッグ設定時の動作

次のスクリーンショットは実際に __トレースレベル__ を __詳細(Verbose)__ とした場合の表示例です(アプリケーション統合コンソールの __プロセス__ タブにて、プロセスの __ID__ をクリックして画面を切り替えています)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/eff6e3f0-e815-8504-395b-6b801a5b1ef4.png)


簡易(Terse)を有効にしている場合、エラーが発生したステップに![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/eda8c000-35fa-4803-e347-9d5e672c249b.png)が表示されます。

標準(Normal)または詳細(Verbose)を有効化にしている場合、エラー発生ステップに加えて、ステップの実行状況(Step tick)を![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/3e62edaa-96de-06ed-e513-2da841e9f798.png)として確認できます。

トレースレベルを上げることで、各ステップの入出力フィールドにどのような値が設定されているかを確認することもできます。次のスクリーンショットでは、トレースレベルを標準以上にすることで、計算式により生成したOSコマンドにスペースが含まれていないこと(そのために期待した動作になっていないこと)を確認しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/3055221a-04c3-3bc4-3315-3363bf9cf72f.png)

## トレースレベルの自動リセット機能
CAIプロセスを __クラウドサーバー__ にデプロイしている場合、トレースレベルが自動で低い値にリセットされている場合があります([製品ドキュメントのリンク - Automatic reset of tracing levels](https://docs.informatica.com/integration-cloud/application-integration/current-version/design/designing-processes/setting-process-properties/advanced-properties.html))。

例えば、もともと __トレースレベル=詳細__ でパブリッシュした後に、再度 __トレースレベル=詳細__ を選択した際に次の表示となる場合、この機能が働いている可能性があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/aa27ec97-843f-bad4-345f-ef8982d97b89.png)

## 入出力フィールドの値が表示されない？

特に、CAIプロセスのデプロイ先をSecure Agentとしている場合、トレースレベルを上げていても入出力フィールドの値が表示されない動作に出くわすことがあると思います。この動作は、入出力フィールドの情報取得に時間を要している可能性があります(`入出力タブを表示すると、IICS・Secure Agent間で通信が行われ、入出力フィールドの情報を取得しています`)。

もし、うまく入出力フィールドタブの情報が表示されない場合は、画面右上の更新ボタンをクリック、その後、出力フィールドタブ(または入力フィールドタブ)を選択して、5-60秒ほど待ってみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/ec3f11f5-31a1-be51-540d-8d15ab3b1996.png)

表示の遅延動作の他、データサイズが大きい場合に入出力フィールドの値が表示されない動作もあります。

> [ERROR: Unable to see the output of a service step in Application Integration console](https://knowledge.informatica.com/s/article/000194961?language=en_US&type=external)
> The reason for not displaying the output data on the UI is that the output data is more than 51200 bytes.







## 参照

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/private/3d1971ef6e3b993516aa)