For a single SSIS task I'm trying to make its transaction local. To simplify things, I'm trying to do it like this:
inside that task I delete some rows from destination table and issue a ROLLBACK:
DELETE FROM SOME_TABLE WHERE SOME_COLUMN = 'ABCD';
ROLLBACK;
Test Connection
TransactionOption
property to Required
RetainSameConnection
property of Connection Manager to True
As I understand, the task should start a local transaction without using DTC. However, this is the output when I run the package:
SSIS package "Package1.dtsx" starting.
Information: 0x4001100A at ROLLBACK: Starting distributed transaction for this container.
Error: 0xC001402C at Package1, Connection manager "xxx@yyy": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D01B "The Transaction Manager is not available.".
Error: 0xC0202009 at Package1, Connection manager "xxx@yyy": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8004D01B.
Error: 0xC00291EC at ROLLBACK, Execute SQL Task: Failed to acquire connection "xxx@yyy". Connection may not be configured correctly or you may not have the right permissions on this connection.
Task failed: ROLLBACK
Information: 0x4001100C at ROLLBACK: Aborting the current distributed transaction.
Warning: 0x80019002 at Package1: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. SSIS package "Package1.dtsx" finished: Failure.
Does anyone know what's happening here?
User contributions licensed under CC BY-SA 3.0