制御フローのデバッグ

適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム

SQL Server Data Tools (SSDT) と Microsoft Integration Services には、Integration Services パッケージの制御フローのトラブルシューティングに使用できる、機能とツールが含まれています。

  • Integration Services では、コンテナーおよびタスク上のブレークポイントがサポートされています。

  • SSIS デザイナーでは、実行時の進行状況レポートが用意されています。

  • SQL Server Data Tools (SSDT) では、デバッグ ウィンドウが用意されています。

ブレークポイント

SSIS デザイナーには、 [ブレークポイントの設定] ダイアログ ボックスが用意されています。このダイアログ ボックスから、ブレークの条件を有効にし、パッケージの実行が中断するまでのブレークポイントの到達回数を指定することにより、ブレークポイントを設定できます。 ブレークポイントは、パッケージ レベル、または個別のコンポーネントのレベルで有効にできます。 タスクまたはコンテナー レベルでブレークの条件を有効にすると、 [制御フロー] タブのデザイン画面上にあるタスクまたはコンテナーの隣に、ブレークポイントのアイコンが表示されます。パッケージ レベルでブレークの条件を有効にすると、 [制御フロー] タブのラベル上にブレークポイントのアイコンが表示されます。

ブレークポイントにヒットすると、ブレークポイントのアイコンが変化し、ブレークポイントの発生元を識別できます。 ブレークポイントは、パッケージの実行時に追加、削除、および変更できます。

Integration Services ではブレークの条件が 10 件用意されており、すべてのタスクとコンテナーで有効にできます。 [ブレークポイントの設定] ダイアログ ボックスでは、次の条件に基づいてブレークポイントを有効にできます。

ブレークの条件 説明
タスクまたはコンテナーが OnPreExecute イベントを受け取ったとき。 タスクが実行される直前に呼び出されます。 このイベントは、タスクまたはコンテナーが実行される直前に、タスクまたはコンテナーから発生します。
タスクまたはコンテナーが OnPostExecute イベントを受け取ったとき。 タスクの実行ロジックが完了した直後に呼び出されます。 このイベントは、タスクまたはコンテナーが実行された直後に、タスクまたはコンテナーから発生します。
タスクまたはコンテナーが OnError イベントを受け取ったとき。 エラーが発生すると、タスクまたはコンテナーによって呼び出されます。
タスクまたはコンテナーが OnWarning イベントを受け取ったとき。 タスクでエラーは発生していないが、警告が確認された状態にあるときに、呼び出されます。
タスクまたはコンテナーが OnInformation イベントを受け取ったとき。 タスクから情報が提供される必要があるときに呼び出されます。
タスクまたはコンテナーが OnTaskFailed イベントを受け取ったとき。 タスク ホストが失敗したとき、タスク ホストによって呼び出されます。
タスクまたはコンテナーが OnProgress イベントを受け取ったとき。 タスクの実行の進行状況を更新するために呼び出されます。
タスクまたはコンテナーが OnQueryCancel イベントを受け取ったとき。 タスク処理の実行をキャンセルできる場合、任意のタイミングで呼び出されます。
タスクまたはコンテナーが OnVariableValueChanged イベントを受け取ったとき。 変数の値が変更されたとき、 Integration Services ランタイムによって呼び出されます。 このイベントを起動するには、変数の RaiseChangeEvent を true に設定する必要があります。

** 警告 ** このブレークポイントに関連付けられている変数は、コンテナー スコープで定義する必要があります。 この変数がパッケージ スコープで定義されると、ブレークポイントにヒットしません。
タスクまたはコンテナーが OnCustomEvent イベントを受け取ったとき。 タスクによって定義されたカスタム イベントを起動するため、タスクによって呼び出されます。

一部のタスクとコンテナーには、すべてのタスクとコンテナーで使用できるブレークの条件以外に、ブレークポイントを設定するための特殊なブレーク条件が含まれています。 たとえば、For ループ コンテナーでは、ループの各反復処理の開始点で実行を中断するブレークポイントを設定するための、ブレークの条件を有効にできます。

ブレークポイントをさらに柔軟に使用し、機能を強化するには、次のオプションを指定してブレークポイントの動作を変更できます。

  • ヒット カウント。実行が中断するまでにブレーク条件に到達する最大回数です。

  • ヒット カウントの種類。ブレーク条件によってブレークポイントがトリガーされるタイミングを指定するルールです。

[常に行う] 以外のヒット カウントの種類では、そのヒット カウントによってさらに限定されます。 たとえば、種類が [ヒット カウント (等しい)] でヒット カウントが 5 の場合、ブレーク条件が 6 回発生した時点で実行は中断されます。

次の表では、ヒット カウントの種類について説明します。

ヒット カウントの種類 説明
Always (常に) ブレークポイントにヒットすると、常に実行が中断されます。
ヒット カウント (等しい) ブレークポイントの発生回数がヒット カウントと等しくなると実行が中断されます。
ヒット カウント (より大きいまたは等しい) ブレークポイントの発生回数がヒット カウント以上になると実行が中断されます。
ヒット カウント (倍数) ヒット カウントの倍数だけブレークポイントが発生すると実行が中断されます。 たとえば、このオプションを 5 に設定すると、実行は 5 回ごとに中断されます。

ブレークポイントを設定するには

進行状況レポート

SSIS デザイナーには、2 種類の進行状況レポート機能が含まれています。1 つは [制御フロー] タブのデザイン画面上の色分けで、もう 1 つは [進行状況] タブ上の進行状況メッセージです。

パッケージを実行すると、 SSIS デザイナーでは、各タスクまたはコンテナーが実行状態を示す色で表示され、進行状況を確認できます。 この色により、要素が実行の待機中か、現在実行中か、正常に完了したか、または正しく終了しなかったか、などがわかります。 パッケージの実行を停止すると、表示は色分けされなくなります。

次の表では、実行状態を示す色について説明します。

Color 実行状態
グレー 実行の待機中です。
実行中
[緑] 正常に実行されました。
強調表示 実行されましたがエラーが発生しました。

[進行状況] タブには、タスクとコンテナーが実行順に一覧表示され、それらの開始時刻と終了時刻、警告、およびエラー メッセージが表示されます。 パッケージの実行を停止すると、 [その実行結果] タブに進行に関する情報が表示され、そのまま使用できます。

Note

[進行状況] タブでのメッセージの表示を有効または無効にするには、 [SSIS] メニューの [進行状況レポートのデバッグ] オプションを切り替えます。

次の図は、 [進行状況] タブを示しています。

SSIS デザイナーの [進行状況] タブ

デバッグ ウィンドウ

SQL Server Data Tools (SSDT) には、ブレークポイントの処理、およびブレークポイントが含まれるパッケージのデバッグに使用できる多数のウィンドウがあります。 各ウィンドウの詳細については、ウィンドウを開いて F1 キーを押し、目的のウィンドウのヘルプを参照してください。

SQL Server Data Tools (SSDT)でこれらのウィンドウを開くには、 [デバッグ] メニューをクリックし、 [ウィンドウ] をポイントします。次に、 [ブレークポイント][出力] 、または [イミディエイト] をクリックします。

次の表は、それぞれのウィンドウの説明です。

ウィンドウ 説明
ブレークポイント パッケージ内のブレークポイントを一覧表示し、ブレークポイントの有効化および削除のオプションを提供します。
出力 SQL Server Data Tools (SSDT)の機能に関する状態メッセージを表示します。
即時 式をデバッグして評価し、変数の値を出力するのに使用されます。

タスクまたはコンテナーにブレークポイントを設定してパッケージをデバッグする

この手順では、パッケージ、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーにブレークポイントを設定する方法について説明します。

パッケージ、タスク、またはコンテナーにブレークポイントを設定するには

  1. SQL Server Data Tools (SSDT)で、目的のパッケージが含まれている Integration Services プロジェクトを開きます。

  2. ブレークポイントを設定するパッケージをダブルクリックします。

  3. SSIS デザイナーで、次の操作を行います。

    • パッケージ オブジェクトにブレークポイントを設定するには、 [制御フロー] タブをクリックし、デザイン画面の背景の任意の場所にカーソルを置いて右クリックし、 [ブレークポイントの編集] をクリックします。

    • パッケージ制御フローにブレークポイントを設定するには、 [制御フロー] タブをクリックし、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーを右クリックし、 [ブレークポイントの編集] をクリックします。

    • イベント ハンドラーにブレークポイントを設定するには、 [イベント ハンドラー] タブをクリックし、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーを右クリックし、 [ブレークポイントの編集] をクリックします。

  4. [ブレークポイントの設定 - <コンテナー名>] ダイアログ ボックスで、有効にするブレークポイントを選択します。

  5. 必要に応じて、各ブレークポイントのヒット カウントの種類とヒット カウント数を変更します。

  6. パッケージを保存するには、 [ファイル] メニューの [選択されたファイルを上書き保存] をクリックします。

[ブレークポイントの設定]

[ブレークポイントの設定] ダイアログ ボックスを使用すると、ブレークポイントを有効にしてブレークポイントの動作を制御するためのイベントを指定できます。

Options

有効
選択すると、イベントのブレークポイントが有効になります。

Break Condition
ブレークポイントの設定に使用できるイベントの一覧を表示します。

Hit Count Type
ブレークポイントがいつ有効になるかを指定します。

説明
毎回 ブレークポイントにヒットすると、常に実行が中断されます。
ヒット カウント (等しい) ブレークポイントの発生回数がヒット カウントと等しくなると実行が中断されます。
[ヒット カウント (より大きいまたは等しい)] ブレークポイントの発生回数がヒット カウント以上になると実行が中断されます。
ヒット カウント (倍数) ヒット カウントの倍数だけブレークポイントが発生すると実行が中断されます。 たとえば、このオプションを 5 に設定すると、実行は 5 回ごとに中断されます。

[ヒット カウント]
ブレークをトリガーするヒットの回数を指定します。 ブレークポイントが常に有効になっている場合、このオプションは使用できません。

参照

パッケージ開発のトラブルシューティング ツール
スクリプト タスクとスクリプト コンポーネントにブレークポイントを設定してスクリプトをデバッグする