私はSQL2008-SSISパッケージに取り組んでいます。 C#コードからパッケージを実行しています。これは、SQLテーブルへの単純なフラットファイル(.csv)です。
C#コードから、実行結果はSUCCESS
として取得されますが、パッケージ内ではトランザクションが実行されていないため、値は実際にはエクスポートされません。
ログファイルを読み取ってデバッグする必要があります。
パッケージ内にエラーログまたはログファイルを作成するにはどうすればよいですか?
SSISでログ機能を構成する1つの方法は次のとおりです。この例では、メール送信タスクが失敗するように構成されており、パッケージが失敗したときにOnErrorおよびOnTaskFailedメッセージを格納するSQLServerベースのログを有効にしました。あなたにも興味があるかもしれない他のイベントがあります。私が取り組んできたプロジェクトでは、これら2つのタスクにより、SSISパッケージで発生する問題のほとんどを特定することができました。
ステップバイステップのプロセス:
Name
チェックボックスをオンにして、Configuration
列の下にデータソースを入力します。ここでSQLServerは接続マネージャーの名前です。 SSISは、選択したデータベースにdbo.sysssislog
という名前のテーブルとストアドプロシージャdbo.sp_ssis_addlogentry
を作成します。以下のスクリーンショット#を参照してください。OnError
およびOnTaskFailed
を選択します。以下のスクリーンショット#4を参照してください。dbo.sysssislog
の出力例を、以下のスクリーンショット#6に示します。 id
、event
、source
、およびmessage
の列をいくつか表示しただけです。テーブルには他の列があります。メッセージ列にはエラーメッセージが含まれています。この場合、メール送信タスクに記載されているサーバー名が間違っています。ソース列には、失敗したタスクが含まれています。この場合、パッケージ名はSSISLoggingExampleであり、メール送信タスクの名前はメールタスクです。エラーメッセージは、タスクからパッケージレベルにバブルアップします。したがって、エラーメッセージは、タスクとパッケージレベルで2回ログに記録されます。お役に立てば幸いです。
スクリーンショット#1:
スクリーンショット#2:
スクリーンショット#3:
スクリーンショット#4:
スクリーンショット#5:
スクリーンショット#6:
SSISでエラーをログに記録するのは非常に簡単です。 [イベントハンドラー]タブに移動し、ドロップダウンから[OnError]を選択します。ここで、エラーについて電子メールを送信したり、エラーをDBに記録したり、テキストファイルに書き込んだりするための独自のカスタムロジックを開発できます。
また、SSISで使用可能な既存のロギングメカニズムから選択することもできます。メニュー「SSIS」をクリックすると、最初のオプションが「ロギング」として表示され、次にエラー/警告および必要な多くの情報をログに記録するためのさまざまなオプションが表示されます。