目次

Search

  1. はじめに
  2. ワークフロー
  3. ワークフロー変数
  4. ワークフローパラメータ
  5. クラスタタスク
  6. コマンドタスク
  7. ヒューマンタスク
  8. マッピングタスク
  9. 通知タスク
  10. ゲートウェイ
  11. ワークフローリカバリ
  12. ワークフロー管理

Developerワークフローガイド

Developerワークフローガイド

ワークフローリカバリの例

ワークフローリカバリの例

次の例では、中断されたワークフローインスタンスについて、およびデータ統合サービスが各インスタンスのリカバリを試行する方法について説明します。各々の例では、ワークフローのリカバリは有効になっており、各タスクはコマンドタスク、マッピングタスク、または通知タスクです。
ワークフローで次の中断が発生します。
ユーザーがワークフローインスタンスをキャンセルする。
タスク2の実行中に、ユーザーがワークフローインスタンスをキャンセルします。データ統合サービスはタスク2を完了してから、ワークフローインスタンスをキャンセルします。3つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(完了)->タスク3(未開始)。ワークフローはキャンセルされます。
ワークフローをリカバリすると、データ統合サービスはタスク1とタスク2を無視し、タスク3を初めて実行します。
スキップリカバリストラテジが設定されたタスクの実行中に、ユーザーがワークフローインスタンスを強制終了する。
タスク2の実行中に、ワークフローインスタンスが強制終了されます。タスク2にはスキップリカバリストラテジが設定されています。データ統合サービスはタスク2を強制終了し、ワークフローインスタンスを強制終了します。3つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(強制終了)->タスク3(未開始)。ワークフローは強制終了されます。
ワークフローを強制終了したため、ワークフローインスタンスはリカバリできません。
データ統合サービスプロセスが予期せずにシャットダウンした。ワークフローは、リカバリに設定されている。
タスク2の実行中、データ統合サービスプロセスがシャットダウンしました。タスク2は通知タスクです。サービスプロセスが再開したときに、3つのタスクとワークフローインスタンスの状態は次のようになります。
タスク1(完了)->タスク2(キャンセル)->タスク3(未開始)。ワークフローはキャンセルされます。
ワークフローをリカバリすると、データ統合サービスはタスク1を無視し、タスク2を再開して、タスク3を初めて実行します。
再開リカバリストラテジが設定されたタスクで、リカバリ可能なエラーが発生した。
再開リカバリストラテジが設定されているタスク2で、リカバリ可能なエラーが発生しました。サービスはタスク2をキャンセルし、ワークフローインスタンスをキャンセルします。3つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(キャンセル)->タスク3(未開始)。ワークフローはキャンセルされます。
ワークフローをリカバリすると、データ統合サービスはタスク1を無視し、タスク2を再開して、タスク3を初めて実行します。
スキップリカバリストラテジが設定されたタスクでエラーが発生し、ユーザーがワークフローインスタンスをキャンセルする。
タスク2にはスキップリカバリストラテジが設定されています。タスクでエラーが発生して失敗します。出力シーケンスフローには、タスク2が成功したことを確認する条件は含まれていません。このため、データ統合サービスは後続のワークフローオブジェクトを引き続き実行します。タスク3の実行中に、ワークフローインスタンスがキャンセルされます。タスク3には再開リカバリストラテジが設定されています。データ統合サービスはタスク3をキャンセルしてから、ワークフローインスタンスをキャンセルします。4つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(失敗)->タスク3(キャンセル)->タスク4(未開始)。ワークフローはキャンセルされます。
ワークフローをリカバリすると、データ統合サービスはタスク1とタスク2を無視し、タスク3を再開して、タスク4を初めて実行します。リカバリの実行中に、タスク3とタスク4は正常に完了します。データ統合サービスはワークフローの最終状態を[完了]に更新します。
スキップリカバリストラテジが設定されたタスクでエラーが発生し、ワークフローインスタンスを強制終了した場合。
タスク2にはスキップリカバリストラテジが設定されています。タスクでエラーが発生して失敗します。出力シーケンスフローには、タスク2が成功したことを確認する条件は含まれていません。このため、データ統合サービスは後続のワークフローオブジェクトを引き続き実行します。タスク3の実行中に、ワークフローインスタンスが強制終了されます。タスク3には再開リカバリストラテジが設定されています。データ統合サービスはタスク3を強制終了してから、ワークフローインスタンスを強制終了します。4つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(失敗)->タスク3(強制終了)->タスク4(未開始)。ワークフローは強制終了されます。
ワークフローを強制終了したため、ワークフローインスタンスはリカバリできません。
スキップリカバリストラテジが設定されたタスクでエラーが発生し、出力条件付きシーケンスフローでタスクの失敗がチェックされる。
タスク1にはスキップリカバリストラテジが設定されています。タスクでエラーが発生して失敗します。出力シーケンスフローには、タスク1が成功したことを確認する条件が含まれます。条件でfalseが返されたため、データ統合サービスは後続のワークフローオブジェクトの処理を停止し、ワークフローインスタンスを完了させます。3つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(失敗)->タスク2(未開始)->タスク3(未開始)。ワークフローは完了します。
ワークフローインスタンスが完了したため、ワークフローインスタンスのリカバリはできません。
リカバリをサポートしていないワークフローでタスクエラーが発生したため、タスクが失敗する。
ワークフローでワークフローのリカバリストラテジが指定されていないため、データ統合サービスはタスクエラーが原因で失敗するタスクをスキップします。ワークフローは完了まで実行されます。3つのタスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)>タスク2(失敗)>タスク3(完了)。ワークフローは完了します。
ワークフローインスタンスが完了したため、ワークフローインスタンスのリカバリはできません。
マッピングタスクのマッピングによってヒューマンタスクの例外データが生成されない。ワークフローのアクティブなシーケンスフローが終結イベントに到達した。
タスク1はマッピングタスクであり、タスク2は通知タスクです。マッピングタスクは、ダウンストリームヒューマンタスクの例外データを生成します。通知タスクは、マッピングタスクのマッピングによって生成される例外の行数が含まれる電子メールを送信します。ワークフローには、終結イベントとヒューマンタスクに接続する排他ゲートウェイが含まれます。
ゲートウェイの最初のシーケンスフローは終結イベントに接続し、マッピングタスクの出力を評価する条件が含まれます。ゲートウェイの2番目のシーケンスフローはヒューマンタスクに接続します。タスク1で指定されるマッピングが例外データを生成しないため、ゲートウェイの条件付きシーケンスフローは終結イベントをトリガします。タスクとワークフローインスタンスの状態は、次のようになります。
タスク1(完了)->タスク2(完了)->終結イベント。ワークフローは強制終了されます。
ワークフローを意図的に強制終了状態にしているため、ワークフローをリカバリすることはできません。