Поделиться через


Отладка потока управления

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

SQL Server Data Tools (SSDT) и Службы Microsoft Integration Services включают функции и средства, которые можно использовать для устранения неполадок потока управления в пакете служб Integration Services.

  • Службы Integration Services поддерживают точки останова для контейнеров и задач.

  • Конструктор служб SSIS предоставляет отчеты о ходе выполнения во время выполнения.

  • SQL Server Data Tools (SSDT) предоставляет окна отладки.

Точки останова

Конструктор служб SSIS предоставляет диалоговое окно "Установка точек останова ", в котором можно задать точки останова, включив условия останова и указав время, когда точка останова может возникнуть до приостановки выполнения пакета. Точки останова могут быть установлены на уровне пакета или на уровне компонента. Если условия останова включены на уровне задачи или контейнера, значок точки останова отображается рядом с задачей или контейнером на вкладке "Поток управления". Если условия останова включены в пакете, на вкладке "Поток управления" появится значок точки останова.

При остановке выполнения в заданной точке значок точки останова изменяется, чтобы помочь определить причину останова. Во время выполнения пакета можно изменить условие останова, добавить или удалить точку останова.

Службы Integration Services предоставляют десять условий останова, которые можно включить для всех задач и контейнеров. В диалоговом окне Задание точек останова можно установить точки останова по следующим условиям.

Условие останова Description
Задача или контейнер получает событие OnPreExecute . Вызывается в момент запуска задачи. Это событие возникает непосредственно перед тем, как задача или контейнер начнет свое выполнение.
Задача или контейнер получает событие OnPostExecute . Вызывается сразу после того, как задача завершит свою работу. Это событие возникает сразу после того, как задача или контейнер завершит свое выполнение.
Задача или контейнер получает событие OnError . Вызывается задачей или контейнером при возникновении ошибки.
Задача или контейнер получает событие OnWarning . Вызывается, когда задача находится в состоянии, еще не подтверждающем ошибку, но уже требующем передачи предупреждения.
Задача или контейнер получает событие OnInformation . Вызывается, когда от задачи требуется передача сведений.
Задача или контейнер получает событие OnTaskFailed . Вызывается сервером задач при возникновении ошибки.
Задача или контейнер получает событие OnProgress . Вызывается для обновления информации о ходе выполнения задачи.
Задача или контейнер получает событие OnQueryCancel . Вызывается в любой момент обработки задачи, когда необходимо отменить ее выполнение.
Задача или контейнер получает событие OnVariableValueChanged . Вызывается средой выполнения служб Integration Services при изменении значения переменной. Чтобы вызвать данное событие, для свойства RaiseChangeEvent переменной необходимо установить значение true .

** Предупреждение. ** Переменная, связанная с этой точкой останова, должна быть определена в области контейнера. Если переменная определена в области пакета, точка останова не достигается.
Задача или контейнер получает событие OnCustomEvent . Вызывается задачей для вызова пользовательского события, определенного для данной задачи.

В дополнение к условиям останова, доступным для всех задач и контейнеров, некоторые задачи и контейнеры имеют дополнительные условия останова для установки точек останова. Например, можно активировать условия останова в контейнере «цикл по элементам», который задает точку останова, приостанавливающую выполнение в начале каждой итерации цикла.

Для повышения гибкости и функциональности можно изменить поведение точки останова с помощью настройки следующих параметров.

  • Число попаданий или максимальное количество попаданий в заданную точку останова, после достижения которого выполнение приостанавливается.

  • Тип счетчика попаданий или правило, определяющее, когда условие останова запускает точку останова.

Типы счетчика попаданий, кроме типа Always, уточняются числом попаданий. Например, если тип — «Число попаданий» и число попаданий — 5, то выполнение будет остановлено на 6-м событии условия останова.

В следующей таблице описываются типы счетчика попаданий.

Тип счетчика попаданий Description
Всегда Выполнение приостанавливается при каждом попадании в точку останова.
Число попаданий Выполнение приостанавливается, если число попаданий в точку останова равно значению счетчика попаданий.
Число попаданий больше или равно Выполнение приостанавливается, если число попаданий в точку останова становится равным или больше значения, заданного счетчиком попаданий.
Число попаданий кратно Выполнение приостанавливается, если число попаданий в точку останова кратно установленному. Например, если значение этого параметра равно 5, выполнение приостанавливается на каждой пятой точке прерывания.

Задание точки останова

Отчет о состоянии

Конструктор служб SSIS включает два типа отчетов о ходе выполнения: цветовую кодировку на вкладке "Поток управления" и сообщения о ходе выполнения на вкладке "Ход выполнения ".

При запуске пакета конструктор служб SSIS отображает ход выполнения, отображая каждую задачу или контейнер с помощью цвета, указывающего состояние выполнения. По этому цвету можно определить, ожидает ли элемент выполнения или выполняется в данный момент, завершилось ли его выполнение успешно или с ошибкой. После того, как выполнение пакета останавливается, выделение цветом исчезает.

Следующая таблица описывает цвета, используемые для отображения состояния.

Color Состояние выполнения
Серый Ожидание выполнения
Желтый Выполняется
Зеленый Успешное завершение
выделенный текст Завершение с ошибками

Вкладка Выполнение содержит список задач и контейнеров в порядке их выполнения, а также время запуска и завершения выполнения, предупреждения и сообщения об ошибках. После того как выполнение пакета остановлено, данные о ходе выполнения могут быть получены на вкладке Результаты выполнения .

Примечание.

Чтобы включить или отключить отображение сообщений на вкладке Выполнение , установите или снимите флажок Отчет о ходе отладки в меню Службы SSIS .

Вкладка Выполнение показана на следующей диаграмме.

Вкладка Ход выполнения конструктора служб SSIS

Окна отладки

SQL Server Data Tools (SSDT) включает множество окон, которые можно использовать для работы с точками останова, а также для отладки пакетов, содержащих точки останова. Чтобы получить больше информации по каждому из окон, откройте окно и нажмите клавишу F1 для получения справки.

Чтобы открыть эти окна в SQL Server Data Tools (SSDT), щелкните меню отладки, наведите указатель на Windows и выберите пункт "Точки останова", "Вывод" или "Интерпретация".

Каждое из окон описано в таблице ниже.

Окно Description
Точки останова Содержит список точек останова пакета и позволяет устанавливать и удалять точки останова.
Выходные данные Отображает сообщения о состоянии функций в SQL Server Data Tools (SSDT).
Интерпретация Используется для отладки и вычисления выражений и вывода значений переменных.

Выполнение отладки пакета путем установки точек останова для задачи или контейнера

Эта процедура описывает, как установить точки останова в пакете, задаче, контейнерах «цикл по элементам», «цикл по каждому элементу» и контейнере последовательности.

Установка точки останова в пакете, задаче или контейнере

  1. В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.

  2. Дважды щелкните пакет, для которого следует установить точки останова.

  3. В конструкторе служб SSIS сделайте следующее.

    • Чтобы установить точки останова в объекте пакета, перейдите на вкладку Поток управления , поместите курсор где-либо на заднем плане области конструктора, щелкните правой кнопкой мыши и выберите пункт Изменить точки останова.

    • Чтобы установить точки останова в потоке управления пакета, перейдите на вкладку Поток управления , правой кнопкой мыши щелкните задачу, контейнер "цикл по элементам", "цикл по каждому элементу" или контейнер последовательности и выберите пункт Изменить точки останова.

    • Чтобы установить точки останова в обработчике события, перейдите на вкладку Обработчик события , щелкните правой кнопкой мыши задачу, контейнер "цикл по элементам", "цикл по каждому элементу" или контейнер последовательности и выберите пункт Изменить точки останова.

  4. В диалоговом окне Задание точек останова <имя контейнера> выберите точки останова для включения.

  5. При необходимости измените тип счетчика попаданий и значение числа попаданий для каждой точки останова.

  6. Чтобы сохранить пакеты, выберите пункт Сохранить выбранные элементы в меню Файл .

Задание точек останова для отладки

Диалоговое окно Установка точек останова используется для указания событий, для которых будут включены точки останова, а также управления поведением точек останова.

Параметры

Включено
Выберите, чтобы включить точку останова для события.

Break Condition
Позволяет просмотреть список доступных событий, для которых можно установить точки останова.

Hit Count Type
Позволяет указать условия срабатывания точки останова.

значение Описание
Всегда Выполнение приостанавливается при каждом попадании в точку останова.
Число попаданий Выполнение приостанавливается, если число попаданий в точку останова равно значению счетчика попаданий.
Число попаданий больше или равно Выполнение приостанавливается, если число попаданий в точку останова становится равным или больше значения, заданного счетчиком попаданий.
Число попаданий кратно Выполнение приостанавливается, если число попаданий в точку останова кратно установленному. Например, если значение этого параметра равно 5, выполнение приостанавливается на каждой пятой точке прерывания.

Число попаданий
Позволяет задать число попаданий в точку останова, необходимое для приостановки выполнения. Этот параметр недоступен, если точка останова настроена на срабатывание всегда.

См. также

Инструменты устранения неполадок при разработке пакета
Отладка скрипта с помощью точек останова в задаче и компоненте «Скрипт»