Сбой пакета SSIS при сбое одного из контейнеров

У меня есть пакет с 1 контейнером. Сбой пакета ssis, если этот контейнер не работает!? Недвижимость

FAIL PACKAGE ON FAILURE является ложным для контейнера.

Означает ли это, что пакет выходит из строя только в том случае, если для этого свойства установлено значение TRUE, в противном случае только состояние контейнера не выполнено, а состояние пакета не равно !?


person user1254579    schedule 30.11.2016    source источник
comment
да, это не удастся, если MaximumErrorCount не будет увеличен до 2 или более.   -  person SuL    schedule 07.03.2019


Ответы (2)


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

Пример

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

введите описание изображения здесь

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

введите описание изображения здесь

Теперь давайте остановимся и изучим. Если мы сравним поведение пакета с настройками свойств, это выглядит неправильно. Здесь мы установили FailPackageOnFailure=False, однако сбой контейнера последовательности вызывает сбой пакета. Почему это? Неинтуитивные имена атрибутов. См. это проблема с Microsoft Connect. Вы не одиноки в своем замешательстве. Официальное объяснение от Microsoft таково.

Несмотря на несколько довольно пространных предыдущих сообщений, мы считаем, что эта функция работает так, как задумано. Если для параметра FailParentOnFailure задано значение false, родительский объект не будет давать сбой до тех пор, пока количество сбоев в дочернем объекте не превысит пороговое значение MaximumAllowedErrors. Если для параметра FailparentOnFailure задано значение true, родительский объект завершится ошибкой при первом возникновении ошибки независимо от порогового значения MaximiumAllowedErrors.

Важная часть информации, которую можно извлечь из этой цитаты, заключается в том, что FailPackageOnFailure и MaximiumAllowedErrors работают как пара!!!

Итак, зная это, мы можем добиться ожидаемого поведения, увеличив количество MaximiumAllowedErrors с 1 до 2.

введите описание изображения здесь

Это позволит вам иметь контейнер последовательности, который дает сбой, но НЕ сбой всего пакета.

введите описание изображения здесь

Надеюсь это поможет!

person Troy Witthoeft    schedule 30.11.2016

Все зависит от того, как настроен пакет и контейнеры. Вы должны открыть/импортировать его (в SQL Server Business Intelligence Development Studio) и запустить предпочтительные тестовые данные, чтобы увидеть, какой из них не работает. Имеют ли два контейнера взаимозависимости друг от друга?

person Danie Schoeman    schedule 30.11.2016
comment
извините, мой вопрос заключался в сбое пакета deos, когда произошел сбой одного из контейнеров. Между контейнерами нет взаимозависимостей. - person user1254579; 30.11.2016
comment
Как настраиваются ограничения между контейнерами: По завершению или по Успеху - person Danie Schoeman; 30.11.2016
comment
По завершении он перейдет к следующему контейнеру, если при успехе произойдет сбой и конец - person Danie Schoeman; 30.11.2016
comment
хорошо. Давайте рассмотрим, что мой пакет имеет только один контейнер. Если контейнер вышел из строя, тогда статус пакета также не прошел? - person user1254579; 30.11.2016
comment
но по умолчанию FAIL PACKAGE ON FAILURE имеет значение false для контейнера. - person user1254579; 30.11.2016