2

コンポーネントが他のコンポーネント内にネストされているという事実のために、コンポーネントがあり、同じログメッセージを複数回取得する問題を解決する簡単な方法 (コンテナやデータフローなど)

ここに画像の説明を入力

私はこれを見つけまし.MSはそれについて何もしないと言っていますが、それは2007年からです.提案された回避策を本当にやりたくありません.

4

1 に答える 1

3

ログの場合、SQL サーバーにログを記録することを選択した場合、SSIS はストアド プロシージャを作成します (SQL 2005)

プロシージャ名: dbo.sp_dts_addlogentry

テーブル名: dbo.sysdtslog90 (ユーザー テーブル)

(SQL 2008)

プロシージャ名: dbo.sp_ssis_addlogentry

テーブル名: dbo.sysssislog (システム テーブル)

これを自由に変更して、ログ エントリを除外できます (欠落している場合は SQL によって再作成されますが、同じ名前の自己記述バージョンは上書きされません)。

システムで生成されたバージョンは、SSIS によって proc に送信されたパラメーターの単純な挿入です。

ロジックを追加して、親オブジェクトを検索し、すでにログに記録されているエントリのログを抑制するために、executionid のチェーンをたどることができます (これには、コードで OnError イベント名を処理する必要があります)。通常、OnPreExecute、OnPostExecute、OnError を渡します。および OnTaskFailed イベントをロギング proc に追加します。デフォルトでは、proc は PackageStart および PackageEnd イベントも取得します。

そうは言っても、これらすべてをSQLのテーブルに完全に記録させてから、要約および詳細レポートを使用してログをチェックし、エラーを確認します。私のレポートは、ログ ファイルへの入力をフィルタリングするのではなく、発生ごとに 1 つのエラーのみを表示するようにフィルタリングします。また、すべての SSIS パッケージに含まれる構成とログ記録のために、すべての SSIS パッケージを 1 つのデータベースに記録します。

于 2012-12-28T19:49:22.810 に答える