Как продолжить после сбоя в SSIS

12

Я хочу реализовать что-то вроде следующего: введите описание изображения здесь

В этом пакете я хочу просмотреть список имен баз данных, динамически изменяя настройки диспетчера соединений.

Однако первый сбой в «Тестовом соединении» остановит и завершит выполнение пакета.

Но я бы хотел продолжить цикл по каждому элементу. Я чувствую, что это должно быть возможно (в противном случае, каков вариант использования этих красных стрелок сбоя?)

Вещи, которые я пробовал, включают в себя возиться с "MaximumErrorCount".

Майкл Дж Сварт
источник

Ответы:

12

Чтобы ответить на вопрос в том виде, в котором я его задал, можно продолжить после сбоев, убедившись, что MaximumErrorCount равен нулю для задачи и ее родительских контейнеров ... В данном случае это означает задачу «Test Connection», контейнер «foreach» и сам пакет.

Я закончил тем, что делал что-то другое все же. И Джейми Томсон « Проверка соединения перед использованием» был полезен здесь. Вот что я сделал:

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

  • используется только один диспетчер соединений, а не все,
  • результат задачи всегда был успешным
  • и я установил новую переменную «User :: ConnectionSucceeded» в результате теста соединения.

Я также изменил стрелки, выходящие из задачи проверки соединения, чтобы оценить выражения, они оценивают:

  • @ [User :: ConnectionSucceed] == True
  • @ [User :: ConnectionSucceed] == False

соответственно.

Я также должен был помнить, чтобы редактировать множественные ограничения, входящие в задачу «Обновить LastMonitored». Я изменил их, чтобы использовать логическое «ИЛИ».

Вот как выглядит мой пакет служб SSIS: новый пакет

Майкл Дж Сварт
источник
1

Простой способ ...

Дважды щелкните ограничение Precedence (зеленая линия) после задачи «Проверить соединение». Вы должны увидеть «Параметры ограничения», нажать на выпадающий список «Значение» и выбрать «Завершение». Это говорит о том, что ваш пакет будет продолжать работать после завершения задачи, независимо от того, произойдет ли сбой.

Примечание. Не изменяйте раскрывающийся список «Операция оценки» на «Ограничение», если только вы не хотите добавить выражение для оценки после выполнения задачи. Также сохраняйте ограничение на «Логическое И».

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

Использование ограничения приоритета

Энейо
источник
Ограничение приоритета было преднамеренно установлено как «Успех». Кроме того, изменение его на «Завершение» не решает вопрос, который я задал, или задачу, с которой я боролся. Если «Test Connection» не удается, это все равно останавливает выполнение пакета.
Майкл Дж Сварт
Так много страниц прочитано, чтобы наконец найти этот ответ! Благодарность!
Алексковельский