Транзакция SSIS 2012 в цикле ForEach

У меня есть пакет, который повторяется несколько раз, по одному для каждой категории. Я помещаю транзакцию в пакет так, чтобы каждая Категория завершалась полностью или не завершалась вообще. Если у меня есть 3 категории, A B и C, а категория B не работает, я хочу убедиться, что A и C будут работать успешно. Однако в настоящее время, когда B выходит из строя, выполнение пакета останавливается с ошибкой вместо перехода к следующей категории.

У меня есть контейнер ForEach Loop, который выполняет итерацию по категориям. Внутри у меня есть контейнер последовательности с параметром Transaction, установленным на Required. Это должно сделать каждую итерацию отдельной транзакцией.

Как мне заставить этот пакет перейти в следующую категорию, когда другая категория выйдет из строя и откатится?

Заранее благодарю за любую помощь.


person Mark Vaillancourt    schedule 15.05.2015    source источник


Ответы (1)


Измените максимальное количество ошибок контейнера Loop и всех родительских контейнеров на 3 и измените флаг «останавливать пакет при сбое» на false. Это должно позволить ему продолжить цикл.

Хотя это должно сработать, я не поддерживаю такой подход. Я бы разделил три транзакции на отдельные контейнеры, связанные ограничениями «Завершение», поскольку могут быть ошибки, которые все равно должны останавливать выполнение пакета.

person Eric Hauenstein    schedule 15.05.2015
comment
Спасибо. Максимальное количество ошибок помогло. К сожалению, реальность больше похожа на 20+ категорий. Так что разбить их на свой собственный путь на самом деле нереально. Число также может измениться. Это оказалось тем решением, которое мне было нужно. Большое спасибо. - person Mark Vaillancourt; 16.05.2015