5つのシーケンスタスクコンテナと他の制御フロータスクを含むSSISパッケージがあります。すべてが並行して実行されています。
パッケージ名、タスク名、タスクの現在のステータス(実行中、完了、または失敗)などのすべての監査およびメタデータ情報を取得しようとしています。
ここで私が感じるより大きな問題は、タスクのステータスが変更された後の処理方法です。
この情報をSQLテーブルに保存しようとしています
システム変数から取得できるパッケージ名、タスクの現在のステータスを取得する方法。
「start」、「in-progress」、「end」などのステータス値を保存しようとしています。
誰かがあなたの考えを共有してくださいますように。
ありがとう
SSISのイベントハンドラーを使用して、タスクの状態の変化をキャプチャできます。これを行うには、タスク自体をクリックしてEvent Handlers
から、デザイン時ウィンドウの上部にあるタブをクリックします。これにより、次のようにページの中央に青いリンクのある空白のウィンドウが表示されます。
青いリンクをクリックする前に、処理する特定のイベントハンドラーを選択します。
ここから、特定のタスクを実行できます。たとえば、OnErrorイベントハンドラーでSMTPメールタスクを実行して、タスクエラーに関する電子メールアラートを送信できます。または、OnPostExecuteイベントハンドラーでSQL実行タスクを実行して、タスクが完了したらデータベースにデータを送信することもできます。
特定の問題(タスクの実行時間を取得する方法)については、2つのイベントハンドラーが必要になると思います。
ここで、「Ts」はTimeStampを表します。
次に、DATEDIFF()関数を使用して実行時間を計算し、時間間隔(秒、分、時間など)を指定できます。この値は、テーブルの別のフィールド(SequenceContainerRunTimeなど)に格納することも、SQLSELECTでオンザフライで生成することもできます。
SSISのイベントハンドラーの詳細については、以下をお読みください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加