SSIS チェックポイントは、For ループまたは Foreach ループ コンテナー項目には適用されません
この記事は、SQL Server Integration Services (SSIS) チェックポイントがまたはコンテナー項目に対して受け入れられない問題をFor Loop
Foreach Loop
回避するのに役立ちます。
元の製品バージョン: SQL Server
元の KB 番号: 2624458
現象
次のような状況で問題が発生します。
コンピューターに Microsoft SQL Server Integration Services をインストールします。
シーケンス コンテナーが続く For ループ コンテナー項目を含む SSIS パッケージを作成します。
For ループ コンテナーとシーケンス コンテナー項目の両方に、次のいずれかが含まれます。
- SQL 実行タスク (OR)
- 並列で実行される 2 つ以上の SQL 実行タスク。
SSIS パッケージのチェックポイント設定を有効にします。
SSIS パッケージを実行する
For ループ コンテナーが完了し、パッケージの実行がシーケンス コンテナーに移動します。
次のいずれかのアクションを実行します。
- 1 つの SQL 実行タスクを持つパッケージの場合は、タスクの実行中にパッケージの実行を停止します。
- 複数の SQL 実行タスクを実行しているパッケージの場合は、パッケージの実行を停止するか、他の SQL 実行タスクがまだ実行されている間に、それらのタスクのいずれかでエラーが発生します
SSIS パッケージが再び実行されます。
このシナリオでは、コンテナーではなくコンテナーから For Loop
パッケージが Sequence
開始されます。
注:
この問題は、SQL タスクの実行に関連していません。 これは、他のタスクでも発生する可能性があります。
原因
この動作は仕様です。 チェックポイント データは、コンテナー項目とForeach Loop
コンテナー項目に対してFor Loop
保存されません。 ループ内の子コンテナーが正常に実行された場合、チェックポイント ファイルには記録されません。 そのため、パッケージが再起動されると、これらの各コンテナー項目のタスクが再度実行されます。
回避策
この問題を回避するには、コンテナー内の For Loop
または コンテナーをForeach Loop
Sequence
ラップします。