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、再版については、著者にご連絡ください。