チェックポイントと再実行
フロー内の各コンポーネントの実行でエラーが発生した場合、チェックポイント機能を利用して再度そのチェックポイントからフローを実行することができます。チェックポイント機能とは、フロー実行中の実行データを保存する機能です。ここでは、チェックポイント機能を使うための手順、利用方法などを紹介します。
チェックポイント機能を利用するために事前準備を行う
1.FSMC(フローサービス管理コンソール)の「設定」-「コネクション」-「データベース」-「RDB」設定で、使用するRDBサーバーと接続するためのRDBコネクションをシステムコネクションとして作成する
HINT
チェックポイント機能は、ASTERIA Warp Enterpriseで利用することが可能です。
フローでチェックポイントを使用するためには、チェックポイントのステータス情報を保存するためのRDBサーバーと、実行データを保存するためのディスクが必要となります。
現在対応しているRDBサーバーは以下のとおりです。
- Oracle
- IBM DB2
- Microsoft SQL Server
- MySQL
- PostgreSQL
CAUTION
RDBサーバーと接続するためのRDBのユーザーは、チェックポイント機能専用のユーザーを使用することを推奨します。使用するスキーマは必ず設定してください。
2.管理コンソールの「設定」-「サービス」-「フロー」-「チェックポイント」設定で、「チェックポイント用コネクション」として前項で作成したシステムコネクションを選択し「保存」ボタンをクリックする
HINT
チェックポイントで保存する実行データの格納場所について
管理コンソールの「設定」-「サービス」-「フロー」-「チェックポイント」設定の、「チェックポイント保存フォルダパス」項目で指定できます。絶対パスによる指定ができますので、サーバー管理外のフォルダを指定することもできます。
3.管理コンソールの「ツール」-「サービス」-「一覧」で、「FlowService」を「停止」した後に再度「起動」する
フローでチェックポイントを使用する
1.開始コンポーネントの「チェックポイントを使用」プロパティを設定する
2.フロー内にCheckPointコンポーネントを配置する
HINT
CheckPointコンポーネントの配置について
CheckPointコンポーネントは、どのような種類のコンポーネントの直後にも配置することができます。また、1つのフローの中に配置できるCheckPointコンポーネントの数に制限はありません。
CAUTION
チェックポイントフローが使用できないフローについて
以下のフローについてはチェックポイントフローを利用できません。
- サブフロー
- Nextフロー
- エラー処理フロー
- パラレルサブフローコンポーネントで呼び出されるフロー
- FlowInvokerコンポーネントで呼び出されるフロー
- Timerコンポーネントで呼び出されるフロー
- メール監視起動のフロー
CheckPointコンポーネントが配置できない場所について
以下の場所には、CheckPointコンポーネントを配置できません。
- ループ処理内
- パラレル分岐処理
※パラレル分岐処理は、分岐処理が終わってストリームが1つになった後であればCheckPointコンポーネントを配置することができます。
※Mutexコンポーネントでロック中にCheckPointコンポーネントで実行データを保存しても、再実行時にはロックは解除されていますので、Mutexコンポーネントでロックした場合はアンロックするまでの間にCheckPointコンポーネントを配置しないでください。
※ストリーム変数はデータ保存対象外となります。
フローを再実行させる
1.フローの実行がエラーとなったリクエストを確認する
2.フローを再実行させる
HINT
チェックポイントフローでのトランザクションについて
チェックポイントフローでは開始コンポーネントの「トランザクション化」プロパティを「はい」にすることはできません。つまり、チェックポイントの前後でトランザクションは必ず途切れることになります。
また、チェックポイントで挟まれた処理の一部分をトランザクション化したい場合には、その部分をサブフローにし、サブフローの開始コンポーネントの「トランザクション化」プロパティを「はい」にします。
保存されるデータについて
チェックポイントで保存される実行データは以下のデータとなります。
- ストリーム
- フロー変数
- リクエスト変数
- StreamPutコンポーネントで「スコープ」を「リクエスト」として保存したストリーム
逆に、チェックポイントで保存されない実行データは以下のデータとなります。
- セッション変数などのセッションに保存されているデータ
(ただし、再実行時にセッションが残っていれば従来通り利用可能) - アプリケーション変数
セッション変数、アプリケーション変数は他のフローが書き換えている可能性がありますので、チェックポイントフローで使用する場合には注意が必要です。
CAUTION
エラーとなったリクエストを再実行する前に、次の修正を行うとリクエストの再実行ができなくなります。エラーのリクエストがある場合は、次の修正を行わないでください。
- プロジェクト名の変更
- フロー名の変更
- 開始コンポーネントやCheckPointコンポーネントの名前の変更
(「ステータス」プロパティを空にしている場合) - 開始コンポーネントやCheckPointコンポーネントの「ステータス」プロパティの変更