制御フローのデバッグ
適用対象: 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] メニューの [進行状況レポートのデバッグ] オプションを切り替えます。
次の図は、 [進行状況] タブを示しています。
デバッグ ウィンドウ
SQL Server Data Tools (SSDT) には、ブレークポイントの処理、およびブレークポイントが含まれるパッケージのデバッグに使用できる多数のウィンドウがあります。 各ウィンドウの詳細については、ウィンドウを開いて F1 キーを押し、目的のウィンドウのヘルプを参照してください。
SQL Server Data Tools (SSDT)でこれらのウィンドウを開くには、 [デバッグ] メニューをクリックし、 [ウィンドウ] をポイントします。次に、 [ブレークポイント] 、 [出力] 、または [イミディエイト] をクリックします。
次の表は、それぞれのウィンドウの説明です。
ウィンドウ | 説明 |
---|---|
ブレークポイント | パッケージ内のブレークポイントを一覧表示し、ブレークポイントの有効化および削除のオプションを提供します。 |
出力 | SQL Server Data Tools (SSDT)の機能に関する状態メッセージを表示します。 |
即時 | 式をデバッグして評価し、変数の値を出力するのに使用されます。 |
タスクまたはコンテナーにブレークポイントを設定してパッケージをデバッグする
この手順では、パッケージ、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーにブレークポイントを設定する方法について説明します。
パッケージ、タスク、またはコンテナーにブレークポイントを設定するには
SQL Server Data Tools (SSDT)で、目的のパッケージが含まれている Integration Services プロジェクトを開きます。
ブレークポイントを設定するパッケージをダブルクリックします。
SSIS デザイナーで、次の操作を行います。
パッケージ オブジェクトにブレークポイントを設定するには、 [制御フロー] タブをクリックし、デザイン画面の背景の任意の場所にカーソルを置いて右クリックし、 [ブレークポイントの編集] をクリックします。
パッケージ制御フローにブレークポイントを設定するには、 [制御フロー] タブをクリックし、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーを右クリックし、 [ブレークポイントの編集] をクリックします。
イベント ハンドラーにブレークポイントを設定するには、 [イベント ハンドラー] タブをクリックし、タスク、For ループ コンテナー、Foreach ループ コンテナー、またはシーケンス コンテナーを右クリックし、 [ブレークポイントの編集] をクリックします。
[ブレークポイントの設定 - <コンテナー名>] ダイアログ ボックスで、有効にするブレークポイントを選択します。
必要に応じて、各ブレークポイントのヒット カウントの種類とヒット カウント数を変更します。
パッケージを保存するには、 [ファイル] メニューの [選択されたファイルを上書き保存] をクリックします。
[ブレークポイントの設定]
[ブレークポイントの設定] ダイアログ ボックスを使用すると、ブレークポイントを有効にしてブレークポイントの動作を制御するためのイベントを指定できます。
Options
有効
選択すると、イベントのブレークポイントが有効になります。
Break Condition
ブレークポイントの設定に使用できるイベントの一覧を表示します。
Hit Count Type
ブレークポイントがいつ有効になるかを指定します。
値 | 説明 |
---|---|
毎回 | ブレークポイントにヒットすると、常に実行が中断されます。 |
ヒット カウント (等しい) | ブレークポイントの発生回数がヒット カウントと等しくなると実行が中断されます。 |
[ヒット カウント (より大きいまたは等しい)] | ブレークポイントの発生回数がヒット カウント以上になると実行が中断されます。 |
ヒット カウント (倍数) | ヒット カウントの倍数だけブレークポイントが発生すると実行が中断されます。 たとえば、このオプションを 5 に設定すると、実行は 5 回ごとに中断されます。 |
[ヒット カウント]
ブレークをトリガーするヒットの回数を指定します。 ブレークポイントが常に有効になっている場合、このオプションは使用できません。
参照
パッケージ開発のトラブルシューティング ツール
スクリプト タスクとスクリプト コンポーネントにブレークポイントを設定してスクリプトをデバッグする