Как избежать сбоя задачи SSIS FTP при отсутствии файлов для загрузки? - PullRequest
18 голосов
/ 26 сентября 2008

Я использую SQL Server 2005 и создаю задачи ftp в SSIS.

Иногда будут файлы для FTP, иногда нет. Если файлов нет, я не хочу, чтобы задача или пакет не работали. Я изменил стрелку, переходящую от задачи ftp к следующей: «завершение», поэтому пакет проходит. Я изменил допустимое количество ошибок на 4 (потому что есть задачи 4 ftp, и у любого из 4 каталогов могут быть или не быть файлы).

Но когда я запускаю пакет из задания в агенте, он помечает задание как сбойное. Так как это будет выполняться каждые 15 минут, я не хочу, чтобы в моей истории работ была куча красных крестиков, что приведет к тому, что мы не увидим проблему, когда она действительно произойдет.

Как установить свойства в задаче ftp, чтобы не найти файлы по ftp не было ошибкой? Я использую операцию «Отправить файлы».

Вот еще немного информации: файлы находятся на сервере, к которому у меня нет доступа, кроме ftp. И я не знаю имен файлов заранее. Пользователь может называть их как угодно. Так что я не могу проверить конкретные файлы, и, я думаю, я не могу проверить вообще. За исключением случаев использования ftp-соединения и задач, основанных на этом соединении. Файлы находятся на удаленном сервере, и я хочу скопировать их на мой сервер, чтобы получить их с этого удаленного сервера.

Я могу использовать командный уровень ftp в скриптовом задании. Возможно, это то, что мне нужно использовать вместо задачи ftp. (Я перешел на использование командной строки ftp с файлом параметров, вызванным из задачи скрипта. Он не выдает ошибок, когда нет файлов для получения. Я думаю, что это решение будет работать для меня. Я создаю файл параметров динамически, что означает, что мне не нужно иметь информацию о соединении в простом текстовом файле, а скорее можно сохранить в моем файле конфигурации, который находится в более безопасном месте.)

Ответы [ 12 ]

0 голосов
/ 02 октября 2008

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

Для этого добавьте новую задачу сценария, выделите задачу FTP, появится второй зеленый соединитель, перетащите его в задачу сценария и дважды щелкните его. Выберите Failure в раскрывающемся списке Value. Очевидно, что затем вам нужно будет обработать реальные сбои в этой задаче сценария, чтобы они по-прежнему отображались прямо в истории заданий.

0 голосов
/ 27 сентября 2008

Поместите его в контейнер ForEach, который перебирает файлы для загрузки. Нет файлов, нет FTP, нет ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...