2011-07-21 62 views
0

我正在使用SSIS Foreach循環容器遍歷網絡共享上的特定模式的文件。Foreach循環容器與Foreach文件枚舉器選項迭代所有文件兩次

我遇到的那種循環容器的不可再現的故障:

有時循環執行兩次。所有文件處理完畢後,重新開始第一個文件。

有沒有人遇到類似的錯誤? 也許不是直接使用SSIS,而是使用某種技術訪問Windows共享文件? 這個錯誤可能與一些網絡問題有關嗎?

謝謝。

回答

0

沒有幫助 - 我實施了以下解決方法:sc在跟蹤所有文件的foreach迭代器中分解任務。如果文件已被加載,則會觸發警告,並且不會再次處理該文件。無論如何,似乎有些網絡相關的問題......

0

你會得到什麼錯誤消息(SSIS日誌/ Eventvwr消息)?

到@Siva類似,我還沒有碰到過這一點,但一些想法,你可以用它來嘗試和診斷。你可能已經在做一些這些了,我已經從我的思維過程中完整地寫下了它們...

  • 記錄所有處理過的文件。寫一行到日誌文件/表預處理(每個文件),然後後處理(每個文件)。保持每個文件的完整路徑。這實際上是我們對ETL實現的標準做法,因爲用戶經常回過頭來詢問關於什麼時候/什麼已加載的問題。這將允許您查看文件是否實際上正在處理兩次。
  • 也許嘗試移動每個文件後,它被處理到不同的目錄。這會讓第二次處理文件變得更加困難,問題可能會消失。 (如果您正在從「主」區域(因此無法移動它們)的區域處理它們,請考慮將文件複製到「等待」文件夾,然後處理它們並將它們移動到「已處理」文件夾中)
  • @ Siva的評論很有趣 - 請看「遍歷子文件夾」複選框。
  • 檢查EVENTVWR奇數網絡事件,或應用程序事件(SQL服務器重新啓動?)
  • 使用PERF週一,看看是否有你的服務器上的網絡負載方面什麼奇怪事情發生(有點隨意的想法! )
  • 嘗試本地磁盤,而不是在網絡磁盤上運行的整個過程中與文件,如果的平均故障時間是運行10次後,那麼你可以這樣做負載當地20-30倍,如果你沒有得到的錯誤它可能是網絡錯誤