Error : The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
-
Friday, July 08, 2011 10:02 AM
Hi All,
I have a package that transform data from OLEDB Source TableA to OLEDBDestination TableB.
The count of records in TableA is around 7.500.000 records.
When I run that package, the package run well, but after around 200.000 records have been inserted to TableB, the package got error, and TableA become Red. This is the summary of the error messages :Unspecified error
SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Union All 11" (16989) failed with error code 0xC0047020 while processing input "Union All Input 2" (17111). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
I've tried to search that problem, and I read in forum that someone suggest to change the Data Access Mode for OLEDB Destination From "Table/View Fast Load" to "Table/View". I've tried that, but the performance become very slow, and I still got the same error after around 300.000 records have been inserted to TableB.
Does anybody know what reason that might cause that error?
Thank you
All Replies
-
Friday, July 08, 2011 10:25 AMModerator
where did you got this error? on source? destination ? or transformation?
you should configure error output on any component which caused error, and redirect error output to another flat file destination, then you can run the package, and take a look at bad data rows in flat file to troubleshoot problem
http://www.rad.pasfu.com -
Friday, July 08, 2011 5:11 PMModerator
-
Friday, July 15, 2011 3:20 AM
Hi All,
I got this error on the source and destination, not because of the transformation (Union All Component).
Sorry, I wanted to summarize the error messages because the log event displayed the same error message for several times, but I missed something, this is the error messages :
The ProcessInput method on component "Union All 12" (8507) failed with error code 0xC0047020 while processing input "Union All Input 1" (8508). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
INSERT TABLEA TO TABLEB {60378B3F-72AA-4B1B-BFB4-6ED915AB7B54} {A2115E0C-B659-4865-8D5E-1192ACB1319F} SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "TABLEA" (1) returned error code 0xC02020C4. 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.
INSERT TABLEA TO TABLEB {60378B3F-72AA-4B1B-BFB4-6ED915AB7B54} {A2115E0C-B659-4865-8D5E-1192ACB1319F} The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
But now that errors can be solved by using SQL Server Destination instead of using OLEDB Destination, and set the TIME OUT to higher value (for ex : 500)
But I'm still wondering why I need to do this. It seems that the connection to the destination database timed out. Is it possible because I have quite complicated transformation and it takes time to pass the records from Source to Destination?
And We can't use SQL Server Destination if the Destination database is not in the same server with our package, right? Can we set TIME OUT in OLEDB Destination?, I have tried to set properties in OLEDB Destination ROW_PER_BATCH = 100 and MAXIMUM_INSERT_COMMIT=100, but I still got that error messages :(
Thank you for your help.
Regards,
Ratna
- Marked As Answer by Alex Feng (SQL)Moderator Tuesday, July 26, 2011 1:17 AM
-
Friday, July 15, 2011 4:11 AMModerator
-
Friday, July 15, 2011 5:50 AM
I used OLEDB Destination with Data Access Mode "Table or View - Fast Load".
The error message before that error messages only this:
08-Jul-11 1:17:29 PM 08-Jul-11 1:17:29 PM
OnError Package11 {02EFADA7-B576-4D27-A297-7AECB1F8A8B5} {A2115E0C-B659-4865-8D5E-1192ACB1319F} Unspecified error
08-Jul-11 1:17:30 PM 08-Jul-11 1:17:30 PM
OnError INSERT TABLEA TO TABLEB {60378B3F-72AA-4B1B-BFB4-6ED915AB7B54} {A2115E0C-B659-4865-8D5E-1192ACB1319F} SSIS Error CodeI guess the problem is in Time Out, because after I changed OLEDB Destination to SQL Server Destination, I still got that error, but after I changed Time Out to higher value, the package can be executed successfully and all the records are inserted to destination table.
Thank You.
Regards,
Ratna
-
Friday, July 15, 2011 5:57 AM
And with OLEDB Destination, I didn't get that error message in the beginnning of package execution. Sometimes after 200.000 records have been inserted to the Destination table, I got that error messages, and sometimes after 300.000 records have been inserted to Destination table.
So I thought that's not because of data or transformation problem, but depends on the response time from the destination database connection.
Thank You.
Regards,
Ratna



