Контейнер цикла по каждому элементу с параметром перечислителя по каждому элементу повторяет все файлы дважды - PullRequest
0 голосов
/ 21 июля 2011

Я использую контейнер циклов Forex служб SSIS для перебора файлов с определенным шаблоном в общем сетевом ресурсе.

Я сталкиваюсь с неустранимой неисправностью контейнера циклов:

Иногдацикл выполняется дважды.После того, как все файлы были обработаны, он начинается с первого файла.

Кто-нибудь сталкивался с подобной ошибкой?Может быть, не использовать SSIS напрямую, а получить доступ к файлам в общей папке Windows с помощью какой-либо технологии?Может ли эта ошибка быть связана с некоторыми проблемами в сети?

Спасибо.

Ответы [ 3 ]

1 голос
/ 10 июня 2015

Я обнаружил, что это имеет место при работе с файлами Excel и использовании подстановочного знака * .xlsx для управления foreach.

Как только я установил запись в журнал, я заметил, что при открытии Excel он выдаетФайл Excel с префиксом ~ $.Это было обнаружено циклом foreach.

Поэтому я использовал трюк, подобный http://geekswithblogs.net/Compudicted/archive/2012/01/11/the-ssis-expression-wayndashskipping-an-unwanted-file.aspx, чтобы исключить файлы с ~ $ в имени файла.

0 голосов
/ 23 августа 2011

ничего не помогло - я реализовал следующий обходной путь: задача сценария в итераторе foreach, который отслеживает все файлы. если файл был уже загружен, выдается предупреждение, и файл не обрабатывается снова. в любом случае, похоже, что проблема связана с сетью ...

0 голосов
/ 03 августа 2011

Какое сообщение об ошибке (журнал SSIS / сообщения Eventvwr) вы получаете?

Подобно @Siva, я не сталкивался с этим, но некоторые идеи вы могли бы использовать, чтобы попытаться диагностировать. Возможно, вы уже делаете некоторые из них, я просто записал их для полноты своих мыслительных процессов ...

  • записывать все обработанные файлы. записать строку в файл журнала / таблицу предварительной обработки (каждый файл), а затем постобработку (каждый файл). Сохраняйте полный путь каждого файла. На самом деле это то, что мы делаем стандартно с нашими реализациями ETL, так как пользователи часто возвращаются к нам с вопросами о том, когда / что было загружено. Это позволит вам увидеть, действительно ли файлы обрабатываются дважды.
  • возможно, попробуйте переместить каждый файл после его обработки в другой каталог. Это усложнит повторную обработку файла, и проблема может исчезнуть. (Если вы обрабатываете их из области, которая является «основной» областью (и поэтому не можете переместить их), рассмотрите возможность копирования файлов в «ожидающую» папку, затем их обработки и перемещения в «обработанную» папку)
  • @ Комментарий Шивы интересен - посмотрите на флажок «переходить в подпапки».
  • проверка вашего eventvwr на наличие нечетных сетевых событий или событий приложения (перезапуск SQL Server?)
  • используйте perf mon, чтобы увидеть, происходит ли что-то странное с точки зрения загрузки сети на вашем сервере (немного случайная идея!)
  • попробуйте запустить весь процесс с файлами на локальном диске, а не на сетевом диске, если среднее время между сбоями составляет 10 раз, то вы можете выполнить эту загрузку локально 20-30 раз, и если вы не получите ошибку может быть сетевой ошибкой
...