制御フロー要素に障害が発生するたびに2つの電子メールを送信するパッケージがあります。たとえば、ExecuteSQLタスクが失敗した場合、パッケージレベルのOnErrorイベントハンドラーは2つの電子メールを発行します。
これは既知の問題ですか?これを回避するにはどうすればよいですか?これはデータベース駆動型スクリプトを介して実行できますが、基本的には、SSIS自体で状況を処理したいと思います。助けてくれてありがとう。
制御フロー要素に障害が発生するたびに2つの電子メールを送信するパッケージがあります。たとえば、ExecuteSQLタスクが失敗した場合、パッケージレベルのOnErrorイベントハンドラーは2つの電子メールを発行します。
これは既知の問題ですか?これを回避するにはどうすればよいですか?これはデータベース駆動型スクリプトを介して実行できますが、基本的には、SSIS自体で状況を処理したいと思います。助けてくれてありがとう。
イベントハンドラーは、トリガーアクションが発生するたびにイベントを発生させることに注意してください。したがって、イベントハンドラーを使用して1つのイベントのみを取得することは保証されません(もちろん、いくつかの例外はあります)。
1つの電子メールのみを保証する場合は、OnErrorイベントを介して電子メールを送信せず、代わりに、制御フローの一部であり、ExecuteSQLタスクに接続されている「SendEmailTask」を「FailureConstraint」でリンクすることをお勧めします。
または、OnErrorイベントでユーザー変数をtrueに設定し、それに基づいて「OnCompletion」制約とErrorユーザー変数の値をチェックする式を組み合わせて電子メールを送信することもできます。このように、タスクは少なくとも1回発生した場合にのみ実行されるため、OnErrorイベントが何回発生してもかまいません。