SSIS 制御フローからジョブのステータスを確認するにはどうすればよいですか?
-
09-06-2019 - |
質問
これが私のシナリオです - 実行する別の以前の SSIS ジョブに依存する SSIS ジョブがあります。2 番目のジョブを開始する前に、最初のジョブのステータスを確認できる必要があります。2 番目のジョブを最初のジョブのワークフローに追加することは、すでに複雑すぎるため、現実的ではありません。最初のジョブのステータス (失敗、成功、現在実行中) を 2 番目のジョブから確認し、これを条件として 2 番目のジョブを実行するか、再試行を待つかを決定できるようにしたいと考えています。これは、ジョブを実行している SQL Server 上の MSDB データベースにクエリを実行することで実行できることはわかっています。WMI データ リーダー タスクを使用するなど、もっと簡単な方法があるのではないかと考えています。こんな経験をした人はいますか?
解決
packageA を実行し、次に packageB を実行する 3 番目のパッケージを作成することもできます。3 番目のパッケージには、パッケージ実行タスクが 2 つだけ含まれます。
http://msdn.microsoft.com/en-us/library/ms137609.aspx
@craigステータステーブルはオプションですが、監視を続ける必要があります。
元の質問に対する SSIS のイベントに関する記事は次のとおりです。
http://www.databasejournal.com/features/mssql/article.php/3558006
他のヒント
なぜテーブルを使わないのでしょうか?最初のジョブでテーブルをそのステータスで更新するだけです。2 番目のジョブはテーブルを使用してステータスを確認できます。私が質問を正しく読んでいれば、それでうまくいくはずです。テーブルには 1 行しかない (べきである) ので、パフォーマンスが低下することはなく、デッドロックが発生することはありません (もちろん、今私がそれを書いているので、それは起こります) :)
@ジェイソン:そうですね、それを監視したり、終了ステータスを受け取ったときにトリガーで 2 番目のジョブを開始したりすることもできます。:)