Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
IDVT Member Откуда: Сообщений: 316 |
Добрый день, подскажите пожалуйста, больше спрашивать не у кого... Есть ETL пакет, который трансформирует и актуализирует данные ХД из промежуточной области (StageDB). Таблицы промежуточной области заполняет дочерний пакет, по факту родительский пакет параллельно запускает N'ое количество дочерних пакетов (количество указывается в параметрах родителя), при этом все шаги получения данных дочернего объекта обернуты в цикл, на тот случай если параметр количества параллельной обработки имеет меньшее значение чем количество источников данных. Все пакеты имеют обработчик событий OnError, который пишет (обычный insert с параметрами) в таблицу логирования. Вопрос: В Visual Studio все работает отлично, если у одного из экземпляров дочернего пакета в каком-то источнике данных возникает исключение (сервер недоступен, БД в монопольном режиме…) то обработчик событий фиксирует ошибку и переходит в цикле к следующему источнику. Все прям так, как и хотел. Но развернутый пакет в службу Integration Services ведет себя совсем по-другому, в случае выявленного исключения дочернего пакета фиксирует ошибку в таблицу логирования и просто заворачивает родительский пакет. Причину пока не удается выявить, отчеты SSIS нечего внятного не показывают, обработчик событий не фиксирует исключения в таблицу именно такой ситуации. Вызов дочернего пакета в родителе осуществляет компонент Script, есть одна особенность, развернутый родительский пакет в службе Integ.Services так же обращается к локальному файлу дочернего пакета, но я сомневаюсь что тут причина.
В обоих случаях, что в Visual Studio, что на сервере родительский пакет после выявленного исключения дочернего(их) пакета(ов), благополучно переходит к следующему этапу на котором в цикле повторно пытается извлечь данные из источника с определенным количеством попыток и временем ожидания между итерациями цикла. Повторюсь: Если повторная загрузка данных пакета, развернутого на сервере, терпит не удачу (исключение), то родительский пакет прерывает свое выполнение, без фиксации исключения. |
|
4 апр 17, 09:06 [20363566] Ответить | Цитировать Сообщить модератору |
IDVT Member Откуда: Сообщений: 316 |
Visual Studio 2015 сервер Microsoft SQL Server 2016 (SP1-CU2) (KB4013106) - 13.0.4422.0 (X64) Mar 6 2017 14:18:16 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) |
4 апр 17, 09:09 [20363574] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
IDVT, попробуйте изменить параметр (не помню как называется точно) "кол-во ошибок, после которого пакет завершает работу". По умолчанию установлена 1. |
4 апр 17, 12:10 [20364637] Ответить | Цитировать Сообщить модератору |
IDVT Member Откуда: Сообщений: 316 |
|
||
4 апр 17, 12:17 [20364683] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |