0

I have an SSIS package that takes customer CSV files from an FTP server, imports them unchanged into staging tables in a database, then, from there, normalizes the stage data before finally moving it into corresponding ODS schema tables.

I had this package working properly in a test environment, using sample files (each file only contained a percentage of the data that the full files will have), but now I'm attempting to deploy this in a production environment using the full files, and the first portion of the package is failing with the following error:

[Flat File Source [2]] Error: An unexpected disk I/O error occurred while reading the file.

The package is configured as follows:

There is a sequence container that holds (4) ForEach File Enumerators. Each Foreach loop is set to the same folder/directory, and is using wildcards to loop through the directory to find files with a specific name (e.g. Foreach A is looking within the directory for files named A_.csv, Foreach B is looking for B_.csv, etc.). When each foreach finds its files, it copies the data from the csv to the corresponding tables in the db (stage.a, stage.b etc)

To me, this error sounds like the foreach loops might be locking each other up by looping through the same directory at the same time - is this set up in a valid way, or is there a better way to achieve this same goal? The thing that really confuses me is the fact that this package WAS working, the way I had initially set it up, for quite some time.

The only way I can get it to work now is to use the arrows to make the workflow of the package process each foreach loop individually before moving on to the next.

Should each different type of file be in its own subfolder within the main directory?

Sorry if this was already answered somewhere - I searched around on here as well as on google for the last few days and didn’t find anything similar.

Thanks!

Edit: Here is the only other error message. All 4 foreach loops fail with these same two errors, only if they run simultaneously. If I force them to run 1 by 1, everything works fine.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on Flat File Source returned error code 0xC020209D.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
Justin
  • 9,634
  • 6
  • 35
  • 47
  • There's usually more than one error generated when an SSIS package goes belly up. Any chance you can post the full output? Warnings and or Informational events can also be of help – billinkc Feb 12 '15 at 21:39
  • Are you running the package on the server using a proxy account with access to the folders in question and using FQDN for everything? http://stackoverflow.com/a/25665702/2587452 – Eric Hauenstein Feb 12 '15 at 21:41
  • thanks for the responses guys. I added the other error message to my original post, and in response to Eric: I don't think I'm using a proxy account...the package is actually being launched by Windows Task Scheduler, which launches a batch file that triggers the .dtsx (using the dtexec exe), and not through the SQL Server Agent – peterxgriffin Feb 12 '15 at 22:43
  • Look at [this](http://stackoverflow.com/questions/23233571/ssis-mysterious-error) and at [this](http://stackoverflow.com/questions/2912860/ssis-primeoutput-error). Something is funky with your input. Setup some logging and dig in. – sorrell Feb 14 '15 at 03:59

0 Answers0