- I have execute sql task(EST) which creates transaction.
- Another EST to insert data to table and gets identity value.
- Data Flow Task(DFT1) which has excel source to ADO.NET destination in data flow.
- Another DFT2 which has ado.net source to ado.net destination.
- Another DFT3 which has ado.net source to ado.net destination.
- File system task to move excel file to archive
- Commit transaction in EST.
- In event handler on error option have rollback transaction in EST.
My ADO.NET connection manager
RetainSameConnection is true
because I want to rollback all if something goes wrong, and I don't want to involve in this DTC .
Now when I executed the package, it failed at 3rd point above. In 3rd DFT ADO.NET destination property, changed value of UseBulkInsertWheneverPossible to false. This error got solved.
Got another error at 4th point in ADO.NET Destination, the error message is posted below,
[ADO NET Destination [2]] Error: An exception has occurred during data insertion, the message returned from the provider is: There is already an open DataReader associated with this Command which must be closed first.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "ADO NET Destination" (2) failed with error code 0xC020844B while processing input "ADO NET Destination Input" (9). 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.
I am trying to resolve this still, any help would be greatly appreciated