パッケージでのチェックポイントの使用
Integration Services では、失敗したパッケージ全体を再実行する代わりに、失敗した時点から再開することができます。パッケージがチェックポイントを使用するように設定されている場合、パッケージの実行に関する情報がチェックポイント ファイルに書き込まれます。失敗したパッケージを再実行する場合、チェックポイント ファイルを使用して、失敗した時点からパッケージを再開します。パッケージの実行が成功するとチェックポイント ファイルは削除され、次にパッケージが実行されるときに再度作成されます。
パッケージでチェックポイントを使用すると、次の利点があります。
大きなファイルのダウンロードおよびアップロードの繰り返しを防止します。たとえば、FTP タスクを使用して複数の大きなファイルをダウンロードするパッケージで 1 つのファイルのダウンロードが失敗した場合、パッケージを再開して、そのファイルのみをダウンロードすることができます。
大量データ読み込みの繰り返しを防止します。たとえば、ディメンションごとに別々の一括挿入タスクを使用してデータ ウェアハウスのディメンション テーブルに一括挿入を行うパッケージで 1 つのディメンション テーブルに対する挿入が失敗した場合、パッケージを再開して、そのディメンションのみを再読み込みすることができます。
値の集計の繰り返しを防止します。たとえば、平均や合計など多くの集計値の計算を集計ごとに別々のデータ フロー タスクを使用して実行するパッケージで 1 つの集計値の計算が失敗した場合、パッケージを再開して、その集計のみを再実行することができます。
パッケージがチェックポイントを使用するように設定されている場合、Integration Services はチェックポイント ファイルから再開ポイントを取得します。失敗したコンテナの種類や、トランザクションなどの実装機能によって、チェックポイント ファイルに記録される再開ポイントは影響を受けます。変数の現在の値も、チェックポイント ファイルにキャプチャされます。ただし、Object データ型を持つ変数の値は、チェックポイント ファイルに保存されません。
パッケージの再開時には、Integration Services ではパッケージの構成が再読み込みされません。チェックポイント ファイルに書き込まれた構成情報が代わりに使用されます。つまり、パッケージが失敗した時点と同じ構成でパッケージが再実行されることになります。
再開ポイントの定義
次の Integration Services コンポーネントは、チェックポイントを使用することによって再開できるアトミック作業単位です。
タスク 単一のタスクがカプセル化されているタスク ホスト コンテナが、再開可能な最小のアトミック作業単位です。
注意 すべてのコンテンツを含むデータ フロー タスクはアトミック作業単位なので、データ フローの途中からパッケージを再開することはできません。データ フロー全体の再実行を防止するには、パッケージを複数のデータ フローで設計します。これによりパッケージを再開すると、失敗したデータ フロー タスクだけを再実行できます。
トランザクション化されたコンテナ トランザクション化されたコンテナも、再開可能なアトミック作業単位です。トランザクション化されたコンテナの実行中にパッケージが停止した場合、トランザクションが終了し、トランザクションによって実行された作業がすべてロールバックされます。ただし、チェックポイント ファイルには子コンテナで完了した作業に関する情報は含まれないので、パッケージが再開されるとトランザクション化されたコンテナと子コンテナの両方が再実行されます。
チェックポイントとトランザクションの間で発生する可能性がある競合を最小限に抑えるために、次のいずれかの条件に該当すると、Integration Services ではコンテナ内で行われた作業に関するチェックポイント情報が保存されません。
コンテナの TransactionOption プロパティの値が Required である。
または
コンテナの TransactionOption プロパティの値が Supported であるが、親コンテナがトランザクションを所有しているかトランザクションに登録されている。
注意 同じパッケージでチェックポイントとトランザクションを使用すると、予期しない結果が生じる可能性があります。たとえば、パッケージが失敗してチェックポイントから再開した場合、既に正常にコミットされているトランザクションがパッケージで繰り返し実行される可能性があります。
Foreach ループ コンテナ Foreach ループ コンテナは、もう 1 つの再開可能なアトミック作業単位です。ただし、チェックポイント ファイルには子コンテナで完了した作業に関する情報は含まれないので、パッケージが再開されると Foreach ループ コンテナと子コンテナが再実行されます。
パッケージを再開する設定
チェックポイント ファイルには、完了したすべての作業単位の実行結果 (前述の説明を参照)、システム変数およびユーザー定義変数の現在の値、およびパッケージの構成情報が記録されています。また、パッケージ固有の識別子も記録されています。パッケージを正常に再開するには、チェックポイント ファイルに記録されたパッケージの識別子とパッケージが一致しなければなりません。一致しない場合、再開は失敗します。これにより、パッケージの別のバージョンで作成されたチェックポイント ファイルの使用を防止します。パッケージの再開後に実行が成功すると、チェックポイント ファイルは削除されます。
次の表に、チェックポイントの実装時に設定するパッケージのプロパティの一覧を示します。
プロパティ |
説明 |
---|---|
CheckpointFileName |
チェックポイント ファイルの名前を指定します。 |
CheckpointUsage |
チェックポイントを使用するかどうかを指定します。 |
SaveCheckpoints |
パッケージでチェックポイントを保存するかどうかを示します。失敗した時点からパッケージを再開するには、このプロパティを True に設定する必要があります。 |
また、パッケージ内のコンテナのうち、再開ポイントとして使用するすべてのコンテナの FailPackageOnFailure プロパティを true に設定する必要があります。
ForceExecutionResult プロパティを使用して、パッケージのチェックポイントの使用をテストできます。タスクまたはコンテナの ForceExecutionResult を Failure に設定すると、実行時の障害を擬似的に実現できます。パッケージを再実行すると、失敗したタスクとコンテナが再実行されます。
CheckpointUsage プロパティの設定
CheckpointUsage プロパティとして使用できる値の一覧を次の表に示します。
値 |
説明 |
---|---|
Never |
チェックポイント ファイルを使用せず、パッケージのワークフローの最初からパッケージを実行することを指定します。 |
Always |
チェックポイント ファイルを常に使用し、前の実行で失敗した時点からパッケージを再開することを指定します。チェックポイント ファイルが見つからない場合、パッケージは失敗します。 |
IfExists |
チェックポイント ファイルが存在する場合、チェックポイント ファイルを使用することを指定します。チェックポイント ファイルが存在する場合、パッケージは前の実行で失敗した時点から再開されます。存在しない場合、パッケージのワークフローの最初から実行されます。 |
注意 |
---|
dtexec の /CheckPointing on オプションを使用すると、パッケージの SaveCheckpoints プロパティを True に設定し、CheckpointUsage プロパティを Always に設定した場合と同じ効果が得られます。詳細については、「dtexec ユーティリティ」を参照してください。 |
チェックポイント ファイルの場所の選択
クラスタ上の複数のノードに Integration Services をインストールしたフェールオーバー クラスタでは、チェックポイント ファイルを共有の場所に保存できます。これにより、フェールオーバーが発生した場合に、クラスタ内の異なるノードの最後のチェックポイントから中断されたパッケージを再開できるようになります。
チェックポイント ファイルのセキュリティ保護
パッケージ レベルの保護にはチェックポイント ファイルの保護が含まれないため、チェックポイント ファイルは個別にセキュリティ保護する必要があります。チェックポイントのデータはファイル システムにしか格納できないので、オペレーティング システムのアクセス制御リスト (ACL) を使用して、ファイルの格納先またはフォルダのセキュリティを保護する必要があります。チェックポイント ファイルには、現在の変数値などパッケージの状態に関する情報が含まれているため、セキュリティで保護することが重要です。たとえば変数には、電話番号などの個人データを含む多数の行で構成されるレコードセットが格納されている場合があります。詳細については、「パッケージで使用するファイルへのアクセスの制御」を参照してください。
チェックポイント プロパティを設定するには
|
変更履歴
変更内容 |
---|
|