제어 흐름 디버깅Debugging Control Flow

SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)MicrosoftMicrosoft Integration ServicesIntegration Services에는 Integration ServicesIntegration Services 패키지에서 제어 흐름 문제를 해결하는 데 사용할 수 있는 기능과 도구가 포함됩니다. and MicrosoftMicrosoft Integration ServicesIntegration Services include features and tools that you can use to troubleshoot the control flow in an Integration ServicesIntegration Services package.

  • Integration ServicesIntegration Services 는 컨테이너 및 태스크에서의 중단점을 지원합니다. supports breakpoints on containers and tasks.

  • SSISSSIS 디자이너는 런타임에 진행률을 보고합니다. Designer provides progress reporting at run time.

  • SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT) 는 디버그 창을 제공합니다. provides debug windows.

중단점Breakpoints

SSISSSIS 디자이너는 중단 조건을 설정하고 패키지 실행이 일시 중지되기 전에 중단점이 발생할 수 있는 횟수를 지정하여 중단점을 설정할 수 있는 중단점 설정 대화 상자를 제공합니다. Designer provides the Set Breakpoints dialog box, in which you can set breakpoints by enabling break conditions and specifying the number of times a breakpoint can occur before the execution of the package is suspended. 중단점은 패키지 수준이나 개별 구성 요소의 수준에서 설정될 수 있습니다.Breakpoints can be enabled at the package level, or at the level of the individual component. 중단 조건이 태스크 또는 컨테이너 수준에서 설정된 경우 중단점 아이콘이 제어 흐름 탭의 디자인 화면에 있는 태스크 또는 컨테이너 옆에 표시됩니다.If break conditions are enabled at the task or container level, the breakpoint icon appears next to the task or container on the design surface of the Control Flow tab. 중단 조건이 패키지에서 설정된 경우 중단점 아이콘이 제어 흐름 탭의 레이블에 표시됩니다.If the break conditions are enabled on the package, the breakpoint icon appears on the label of the Control Flow tab.

중단점에 도달하면 중단점 아이콘이 변경되어 중단점의 원본을 확인할 수 있습니다.When a breakpoint is hit, the breakpoint icon changes to help you identify the source of the breakpoint. 패키지가 실행 중일 때 중단점을 추가, 삭제 및 변경할 수 있습니다.You can add, delete, and change breakpoints when the package is running.

Integration ServicesIntegration Services 는 모든 태스크 및 컨테이너에 설정할 수 있는 10개의 중단 조건을 제공합니다. provides ten break conditions that you can enable on all tasks and containers. 중단점 설정 대화 상자에서 다음 조건에 따라 중단점을 설정할 수 있습니다.In the Set Breakpoints dialog box, you can enable breakpoints on the following conditions:

중단 조건Break condition DescriptionDescription
태스크나 컨테이너가 OnPreExecute 이벤트를 받을 때When the task or container receives the OnPreExecute event. 태스크가 실행되려는 순간에 호출됩니다.Called when a task is about to execute. 이 이벤트는 작업이 실행되기 바로 전에 태스크나 컨테이너에 의해 발생합니다.This event is raised by a task or a container immediately before it runs.
태스크나 컨테이너가 OnPostExecute 이벤트를 받을 때When the task or container receives the OnPostExecute event. 태스크의 실행 논리가 완료되자 마자 호출됩니다.Called immediately after the execution logic of the task finishes. 이 이벤트는 작업이 실행된 바로 후에 태스크나 컨테이너에 의해 발생합니다.This event is raised by a task or container immediately after it runs.
태스크나 컨테이너가 OnError 이벤트를 받을 때When the task or container receives the OnError event. 오류가 발생할 때 태스크 또는 컨테이너에 의해 호출됩니다.Called by a task or container when an error occurs.
태스크나 컨테이너가 OnWarning 이벤트를 받을 때When the task or container receives the OnWarning event. 태스크로 인해 오류가 발생되지는 않지만 경고가 발생할 가능성이 매우 높은 경우에 호출됩니다.Called when the task is in a state that does not justify an error, but does warrant a warning.
태스크나 컨테이너가 OnInformation 이벤트를 받을 때When the task or container receives the OnInformation event. 태스크가 정보를 제공해야 하는 경우에 호출됩니다.Called when the task is required to provide information.
태스크나 컨테이너가 OnTaskFailed 이벤트를 받을 때When the task or container receives the OnTaskFailed event. 태스크 호스트가 실패할 때 해당 태스크 호스트에 의해 호출됩니다.Called by the task host when it fails.
태스크나 컨테이너가 OnProgress 이벤트를 받을 때When the task or container receives the OnProgress event. 태스크 실행에 대한 진행률을 업데이트하기 위해 호출됩니다.Called to update progress about task execution.
태스크나 컨테이너가 OnQueryCancel 이벤트를 받을 때When the task or container receives the OnQueryCancel event. 태스크 처리 중 실행을 취소할 수 있는 모든 시점에 호출됩니다.Called at any time in task processing when you can cancel execution.
태스크나 컨테이너가 OnVariableValueChanged 이벤트를 받을 때When the task or container receives the OnVariableValueChanged event. 변수 값이 변경될 때 Integration ServicesIntegration Services 런타임 시 호출됩니다.Called by the Integration ServicesIntegration Services runtime when the value of a variable changes. 이 이벤트가 발생하려면 변수의 RaiseChangeEvent를 true 로 설정해야 합니다.The RaiseChangeEvent of the variable must be set to true to raise this event.

** 경고 *\* 이 중단점과 연결된 변수는 컨테이너 범위에서 정의되어야 합니다.** Warning *\* The variable associated with this breakpoint must be defined at the container scope. 변수가 패키지 범주로 정의된 경우 중단점이 적중되지 않습니다.If the variable is defined at the package scope, the breakpoint does not get hit.
태스크나 컨테이너가 OnCustomEvent 이벤트를 받을 때When the task or container receives the OnCustomEvent event. 사용자 지정 태스크 정의 이벤트를 발생시키기 위해 태스크에 의해 호출됩니다.Called by tasks to raise custom task-defined events.

모든 태스크 및 컨테이너에 대해 사용할 수 있는 중단 조건 외에도 일부 태스크 및 컨테이너에는 중단점 설정을 위한 특수한 중단 조건이 포함됩니다.In addition to the break conditions available to all tasks and containers, some tasks and containers include special break conditions for setting breakpoints. 예를 들어 For 루프 컨테이너에 중단 조건을 설정하여 반복되는 각 루프가 시작될 때 실행을 일시 중지하도록 중단점을 설정할 수 있습니다.For example, you can enable a break condition on the For Loop container that sets a breakpoint that suspends execution at the start of each iteration of the loop.

중단점의 유연성과 기능 향상을 위해 다음 옵션을 지정하여 중단점의 동작을 수정할 수 있습니다.To add flexibility and power to a breakpoint, you can modify the behavior of a breakpoint by specifying the following options:

  • 실행이 일시 중지되기 전에 중단 조건이 발생하는 최대 횟수 또는 적중 횟수The hit count, or the maximum number of times that a break condition occurs before the execution is suspended.

  • 중단 조건이 중단점을 트리거하는 시점을 지정하는 규칙 또는 적중 횟수 유형The hit count type, or the rule that specifies when the break condition triggers the breakpoint.

    항상 유형을 제외한 적중 횟수 유형은 적중 횟수로 한정됩니다.The hit count types, except for the Always type, are further qualified by the hit count. 예를 들어 유형이 "다음과 같은 적중 횟수"이고 적중 횟수가 5이면 6번째 중단 조건 발생 시 실행이 일시 중지됩니다.For example, if the type is "Hit count equals" and the hit count is 5, execution is suspended on the sixth occurrence of the break condition.

    다음 표에서는 적중 횟수 유형에 대해 설명합니다.The following table describes the hit count types.

적중 횟수 유형Hit count type DescriptionDescription
항상Always 중단점에 도달하면 실행이 항상 일시 중지됩니다.Execution is always suspended when the breakpoint is hit.
다음과 같은 적중 횟수Hit count equals 중단점이 발생한 횟수가 적중 횟수와 같으면 실행이 일시 중지됩니다.Execution is suspended when the number of times the breakpoint has occurred is equal to the hit count.
다음보다 크거나 같은 적중 횟수Hit count greater than or equal to 중단점이 발생한 횟수가 적중 횟수보다 크거나 같으면 실행이 일시 중지됩니다.Execution is suspended when the number of times the breakpoint has occurred is equal to or greater than the hit count.
다음 배수의 적중 횟수Hit count multiple 적중 횟수의 배수가 되면 실행이 일시 중지됩니다.Execution is suspended when a multiple of the hit count occurs. 예를 들어 이 옵션을 5로 설정하면 5번째 중단점마다 실행이 일시 중지됩니다.For example, if you set this option to 5, execution is suspended every fifth time.

중단점을 설정하려면To set breakpoints

진행률 보고Progress Reporting

SSISSSIS 디자이너에는 제어 흐름 탭의 디자인 화면상의 색 구분 기능과 진행률 탭에 표시되는 진행률 메시지의 두 가지 진행률 보고 유형이 있습니다. Designer includes two types of progress reporting: color-coding on the design surface of the Control Flow tab, and progress messages on the Progress tab.

패키지를 실행할 때 SSISSSIS 디자이너는 실행 상태를 나타내는 색을 사용하여 각 태스크나 컨테이너를 표시하여 실행 진행 상태를 보여 줍니다.When you run a package, SSISSSIS Designer depicts execution progress by displaying each task or container using a color that indicates execution status. 색을 보면 요소가 실행 대기 중인지, 현재 실행 중인지, 성공적으로 완료되었는지 또는 오류가 발생하여 종료되었는지를 구분할 수 있습니다.You can tell by its color whether the element is waiting to run, currently running, has completed successfully, or has ended unsuccessfully. 패키지 실행을 중지한 다음에는 색 구분이 사라집니다.After you stop package execution, the color-coding disappears.

다음 표에서는 실행 상태를 보여 주는 데 사용되는 색에 대해 설명합니다.The following table describes the colors that are used to depict execution status.

Color 실행 상태Execution status
회색Gray 실행 대기 중Waiting to run
노란색Yellow 실행 중Running
녹색Green 성공적으로 실행됨Ran successfully
강조 표시됨highlighted 실행 중 오류 발생Ran with errors

진행률 탭에는 실행 순서별로 태스크와 컨테이너가 나열되며 시작 및 종료 횟수, 경고 및 오류 메시지가 포함됩니다.The Progress tab lists tasks and containers in execution order and includes the start and finish times, warnings, and error messages. 패키지 실행을 중지한 후에도 진행률 정보는 실행 결과 탭에 활성화된 상태로 유지됩니다.After you stop package execution, the progress information remains available on the Execution Results tab.

참고

진행률 탭에 메시지를 표시할지 여부는 SSIS 메뉴의 디버그 진행률 보고 옵션을 선택 또는 선택 취소하여 설정합니다.To enable or disable the display of messages on the Progress tab, toggle the Debug Progress Reporting option on the SSIS menu.

다음 다이어그램에서는 진행률 탭을 보여 줍니다.The following diagram shows the Progress tab.

SSIS 디자이너의 진행률 탭Progress tab of SSIS Designer

디버그 창Debug Windows

SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT) 에는 중단점을 사용하고, 중단점이 포함된 패키지를 디버깅하는 데 사용할 수 있는 여러 창이 포함됩니다. includes many windows that you can use to work with breakpoints, and to debug packages that contain breakpoints. 각 창에 대한 자세한 내용을 알아보려면 F1을 눌러서 해당 창에 대한 도움말을 표시하십시오.To learn more about each window, open the window, and then press F1 to display Help for the window.

SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 이러한 창을 열려면 디버그 메뉴를 클릭하고 을 가리킨 다음 중단점, 출력또는 직접 실행을 클릭합니다.To open these windows in SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), click the Debug menu, point to Windows, and then click Breakpoints, Output, or Immediate.

다음 표에서는 이러한 창에 대해 설명합니다.The following table describes the windows.

Window DescriptionDescription
중단점Breakpoints 패키지에 있는 중단점을 나열하고 중단점을 설정 및 해제할 수 있는 옵션을 제공합니다.Lists the breakpoints in a package and provides options to enable and delete breakpoints.
출력Output SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)의 기능에 대한 상태 메시지를 표시합니다.Displays status messages for features in SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT).
직접 실행Immediate 식을 디버깅 및 계산하고 변수 값을 출력하는 데 사용됩니다.Used to debug and evaluate expressions and print variable values.

태스크 또는 컨테이너에 중단점을 설정하여 패키지 디버깅 Debug a Package by Setting Breakpoints on a Task or a Container

이 절차에서는 패키지, 태스크, For 루프 컨테이너, Foreach 루프 컨테이너 또는 시퀀스 컨테이너에 중단점을 설정하는 방법을 설명합니다.This procedure describes how to set breakpoints in a package, a task, a For Loop container, a Foreach Loop container, or a Sequence container.

패키지, 태스크 또는 컨테이너에 중단점을 설정하려면To set breakpoints in a package, a task, or a container

  1. SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)에서 원하는 패키지가 들어 있는 Integration ServicesIntegration Services 프로젝트를 엽니다.In SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), open the Integration ServicesIntegration Services project that contains the package you want.

  2. 중단점을 설정할 패키지를 두 번 클릭합니다.Double-click the package in which you want to set breakpoints.

  3. SSIS 디자이너에서 다음을 수행합니다.In SSIS Designer, do the following:

    • 패키지 개체에 중단점을 설정하려면 제어 흐름 탭을 클릭하고 디자인 화면에 아무 곳에 커서를 놓고 마우스 오른쪽 단추를 클릭한 다음 중단점 편집을 클릭합니다.To set breakpoints in the package object, click the Control Flow tab, place the cursor anywhere on the background of the design surface, right-click, and then click Edit Breakpoints.

    • 패키지 제어 흐름에 중단점을 설정하려면 제어 흐름 탭을 클릭하고 태스크, For 루프 컨테이너, Foreach 루프 컨테이너 또는 시퀀스 컨테이너를 마우스 오른쪽 단추로 클릭한 다음 중단점 편집을 클릭합니다.To set breakpoints in a package control flow, click the Control Flow tab, right-click a task, a For Loop container, a Foreach Loop container, or a Sequence container, and then click Edit Breakpoints.

    • 이벤트 처리기에 중단점을 설정하려면 이벤트 처리기 탭을 클릭하고 태스크, For 루프 컨테이너, Foreach 루프 컨테이너 또는 시퀀스 컨테이너를 마우스 오른쪽 단추로 클릭한 다음 중단점 편집을 클릭합니다.To set breakpoints in an event handler, click the Event Handler tab, right-click a task, a For Loop container, a Foreach Loop container, or a Sequence container, and then click Edit Breakpoints.

  4. 중단점 설정 <컨테이너 이름 > 대화 상자에서 활성화할 중단점을 선택 합니다.In the Set Breakpoints <container name> dialog box, select the breakpoints to enable.

  5. 필요에 따라 각 중단점의 적중 횟수 형식 및 적중 횟수를 수정합니다.Optionally, modify the hit count type and the hit count number for each breakpoint.

  6. 패키지를 저장하려면 파일 메뉴에서 선택한 항목 저장 을 클릭합니다.To save the package, click Save Selected Items on the File menu.

중단점 설정Set Breakpoints

중단점 설정 대화 상자를 사용하여 중단점을 설정할 이벤트를 지정하고 중단점의 동작을 제어할 수 있습니다.Use the Set Breakpoints dialog box to specify the events on which to enable breakpoints and to control the behavior of the breakpoint.

옵션Options

설정Enabled
이벤트에 중단점을 설정하려면 선택합니다.Select to enable a breakpoint on an event.

중단 조건Break Condition
중단점을 설정할 사용 가능한 이벤트 목록을 봅니다.View a list of available events on which to set breakpoints.

적중 횟수 형식Hit Count Type
중단점이 적용되는 시기를 지정합니다.Specify when the breakpoint takes effect.

ValueValue DescriptionDescription
항상Always 중단점에 도달하면 실행이 항상 일시 중지됩니다.Execution is always suspended when the breakpoint is hit.
다음과 같은 적중 횟수Hit count equals 중단점이 발생한 횟수가 적중 횟수와 같으면 실행이 일시 중지됩니다.Execution is suspended when the number of times the breakpoint has occurred is equal to the hit count.
다음보다 크거나 같은 적중 횟수Hit greater or equal 중단점이 발생한 횟수가 적중 횟수보다 크거나 같으면 실행이 일시 중지됩니다.Execution is suspended when the number of times the breakpoint has occurred is equal to or greater than the hit count.
다음 배수의 적중 횟수Hit count multiple 적중 횟수의 배수가 되면 실행이 일시 중지됩니다.Execution is suspended when a multiple of the hit count occurs. 예를 들어 이 옵션을 5로 설정하면 5번째 중단점마다 실행이 일시 중지됩니다.For example, if you set this option to 5, execution is suspended every fifth time.

적중 횟수Hit Count
중단을 트리거하는 적중 횟수를 지정합니다.Specify the number of hits at which to trigger a break. 이 옵션은 중단점을 항상 적용하는 경우에는 사용할 수 없습니다.This option is not available if the breakpoint is always in effect.

관련 항목:See Also

패키지 배포 문제 해결 도구Troubleshooting Tools for Package Development
스크립트 태스크 및 스크립트 구성 요소에서 중단점을 설정하여 스크립트 디버깅Debug a Script by Setting Breakpoints in a Script Task and Script Component