SSISForcedExecutionResultプロパティとCheckPointデバッグパッケージの使用



Use Ssis Forcedexecutionresult Property



1、ForcedExecutionResult

結果はパッケージまたはタスクの実行を強制しました。4つの値None、Success、Failure、Completionがあり、デフォルト値はNoneで、強制的に値を返さなかったと述べています。



ForcedExecutionResult = Successの場合、プロセスパッケージの実行が異常であるかどうかに関係なく、パッケージの実行結果はSuccessになります。

このプロパティのデフォルト値はNoneです。これは、コンテナが実行結果を強制しないことを示します。タスクまたはコンテナでForceExecutionResultプロパティを使用して、パッケージ内のチェックポイントの使用をテストできます。タスクまたはコンテナのForceExecutionResultをFailureに設定することで、リアルタイムの失敗を模倣できます。パッケージを再実行すると、失敗したタスクとコンテナーが再実行されます。



2.パッケージの設計がより複雑な場合、デバッグ時に頭痛が発生し、パッケージの時間が明らかに長くなるたびに最初から開始します。1つのタスクの実行速度が1つのタスクの実行速度であれば、CheckPointのSSIS機能を使用できます。非常に遅いですが、実装が成功するたびに、このタスクのパフォーマンスを調整するときに、より効率的にデバッグする方法を説明します。 ForcedExecutionResultを使用するタスクプロパティが提供されます。ForcedExecutionResult=失敗、強制タスクは失敗を返します。したがって、再起動すると、タスクから実行が開始されます。

例、ForcedExecutionResultプロパティ、およびTaskCheckPointデバッグの使用

ステップ1、テストテーブルと制御フローの設計を作成します



画像
CREATE TABLE [dbo].[ptest] ( [id] [int] IDENTITY(1,1) NOT NULL, [code] [int] NOT NULL, CONSTRAINT [pk_ptest] PRIMARY KEY NONCLUSTERED ( [id] ASC ) )
画像

SQLステートメントのタスクinsert1、Insert2、Insert3は

画像
--Task Insert1 insert into dbo.ptest(code) values(1) --Task Insert2 insert into dbo.ptest(code) values(2) --Task Insert3 insert into dbo.ptest(code) values(3)
画像


ステップ2、CheckPointメカニズムがパッケージを開き、3つのSQL実行タスクFailPackageOnFailure = trueを設定します。

ステップ3、ForcedExecutionResultのタスクInsert2がFailureに設定され、パッケージを実行します。実装を参照してください。

Task Insert2は「100%complete」の実装を完了し、データベース内のデータを表示し、sqlステートメントは正しく実行されますが、Task Insert2はプロパティForcedExecutionResult = Failureを設定しているため、正常に実行された場合でも、TaskはFailureを返すように強制されます。

step4は、変更を加えずにパッケージを再実行して、の実装を確認します。

ステップ5、強力な動的設定コンポーネントExpressのプロパティの属性値を使用

アセンブリのデバッグプロセスでは、ForcedExecutionResultの値を個別に変更します。これは非常に複雑であり、コンポーネントを使用して、の値を動的に設定できます。

変数varForcedExecutionResultを作成します。DataTypeはInt32で、初期化値は1です。

次のように各オプションに対応する整数値ForcedExecutionResult

-1 =なし

0 =成功

1 =失敗

2 =完了

タスクInsert2は、プロパティForcedExecutionResult = Noneを変更し、式を構成します。ただし、ForcedExecutionResult = @ [User :: varForcedExecutionResult]の場合、タスクInsert2fxアイコンの上にUIを追加します。

ステップ6、パッケージを再実行します。実装を参照してください。

DTSを含むファイルのCheckPointコンテンツ:変数セクション、再起動時のパッケージ、これらの変数の値をロードします(再起動前の変数の値がパッケージで変更されている場合)、パッケージを再起動すると、SSISはパッケージ内の変数の初期値を無視して、CheckPointが変数値を記録するファイルのみをロードします。

CheckPointで変数の値を変更し、更新後に変数が値をロードするようにパッケージを再起動します。

<DTS:Checkpoint xmlns:DTS='www.microsoft.com/SqlServer/Dts' DTS:PackageID='{DB02D0B1-82E5-45D8-AA94-5655572C5DF8}'> <DTS:Variables DTS:ContID='{DB02D0B1-82E5-45D8-AA94-5655572C5DF8}'> <DTS:Variable DTS:Namespace='User' DTS:IncludeInDebugDump='2345' DTS:ObjectName='varForcedExecutionResult' DTS:DTSID='{552910BC-B814-4B8B-8014-3E19997AD4ED}' DTS:CreationName=''> <DTS:VariableValue DTS:DataType='3'>1DTS:VariableValue> DTS:Variable> DTS:Variables> <DTS:Container DTS:ContID='{BE14E7B0-21EC-4C23-922B-1240C9AC5C83}' DTS:Result='0' DTS:PrecedenceMap=''/> DTS:Checkpoint>


ステップ7、-1の初期値の変数を変更しますvarForcedExecutionResult再実行パッケージ、またはチェックします

理由は単純な変更ですパッケージ変数値はファイルCheckPoint内の変数の値を変更せず、CheckPointパッケージはファイル内の変数の値のみをロードします。

ステップ8、変数CheckPointの値を変更します。-1、再実行されたパッケージ、ビューの実装

<DTS:Checkpoint xmlns:DTS='www.microsoft.com/SqlServer/Dts' DTS:PackageID='{DB02D0B1-82E5-45D8-AA94-5655572C5DF8}'> <DTS:Variables DTS:ContID='{DB02D0B1-82E5-45D8-AA94-5655572C5DF8}'> <DTS:Variable DTS:Namespace='User' DTS:IncludeInDebugDump='2345' DTS:ObjectName='varForcedExecutionResult' DTS:DTSID='{552910BC-B814-4B8B-8014-3E19997AD4ED}' DTS:CreationName=''> <DTS:VariableValue DTS:DataType='3'>-1DTS:VariableValue> DTS:Variable> DTS:Variables> <DTS:Container DTS:ContID='{BE14E7B0-21EC-4C23-922B-1240C9AC5C83}' DTS:Result='0' DTS:PrecedenceMap=''/> DTS:Checkpoint>

著者ワイアット時間 ソースhttp://www.cnblogs.com/ljhdo/ この記事は著者とブログParkallに属しており、転載を歓迎しますが、著者の同意なしに、このセクションで宣言されたものを保持する必要があり、表示は元の記事ページに目立つように接続されます。

カテゴリ: SSISコンポーネント





この切り替え時間ブログWyattParkブログ、元のリンク:http://www.cnblogs.com/ljhdo/p/4804273.html、再版については、著者にご連絡ください。