Обработка ошибок в сборщике данных

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

  • Типичные, предсказуемые ошибки. Многие ошибки можно предупредить на основании сведений о потоке, процессах и поведении компонента сбора. Автоматическое восстановление после ошибок этой категории не всегда возможно. Однако применение простых и щадящих методик позволяет обрабатывать такие ошибки и снова запускать сбор данных.

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

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

Распространенные ошибки

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

Ошибка

Описание, причина и обработка

Не удалось соединиться с поставщиком данных.

Сборщик данных не может соединиться с сервером или конкретным поставщиком данных, таким как Transact-SQL. Среди возможных причин могут быть неполадки в конфигурации системы и настройках безопасности.

Обработка: Ошибка записана в журнал, набор сбора остановлен и помечен как отключенный. Состояние «Отключено» регистрируется в журнале выполнения. Автоматического восстановления после этой ошибки не предусмотрено.

Соединение с поставщиком данных разорвано во время выполнения.

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

ПримечаниеПримечание
Запланированные выключения не попадают в эту категорию. В случае запланированного выключения, наборы сбора выключаются при остановке экземпляров SQL Server и Агента SQL Server.

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

Невозможно соединиться с хранилищем управляющих данных.

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

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

ПримечаниеПримечание
Данные, собранные во время работы набора сбора сохраняются и накапливаются. Если пакет передачи может соединиться с хранилищем данных, передаются накопленные данные.

Соединение с хранилищем управляющих данных разорвано во время передачи.

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

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

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

Ошибка, полученная от поставщика данных.

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

Ошибка в потоке управления.

Логика, определенная в пакете потока управления, дала сбой.

Обработка: Если эта ошибка предсказуема и относится к конкретному пакету, она обрабатывается с помощью пути потока управления OnError. Во многих случаях пакет может автоматически восстановиться после ошибки и перезапуститься.

Ошибка в потоке данных.

Эта ошибка формируется конвейером потока данных и относится к одной из следующих категорий:

  • Ошибки преобразования данных, возникающие, если преобразование приводит к потере значащих разрядов, потере незначащих разрядов или к усечению строк. Ошибки преобразования данных также возникают, если запрашиваемое преобразование не поддерживается.

  • Ошибки оценки выражений, возникающие, если выражения, оцениваемые во время исполнения, выполняют недействительные операции или становятся синтаксически неправильными из-за потери данных или их неверных значений данных.

  • Ошибки поиска, возникающие, если операция поиска не может обнаружить соответствия в таблице уточняющих запросов.

Обработка: Каждый компонент данных настроен на выдачу ошибки только в случае возникновения критической ошибки потока данных. По умолчанию ошибочные строки направляются в отдельный выход после подсчета их количества. Эти сведения записываются в журнал после завершения потока данных и формирования отчета о потоке данных.