2009-07-15 5 views
1

Ich versuche, Transaktionen unter SSIS (SQL Server Integration Services 2005) und Oracle ohne Glück zu bekommen. Ich benutze Oracle 10g.Oracle-Transaktion unter MS SSIS

Ich habe einen Sequenzcontainer erstellt, seine TransactionOption auf "Required" gesetzt und darin eine DataFlow-Task mit TransactionOption = "Supported" eingefügt.

Auf dem Server, auf dem SSIS ausgeführt wird, wird der MSDTC-Dienst ausgeführt.

Der DataFlow-Task hat als Quelle eine SQL Server OLEDB-Verbindung und als Ziel eine Oracle OLEDB-Verbindung.

Beim Versuch, ihn auszuführen, erhalte ich folgende Fehler:

Error: 0xC001402C at MediaMarketAnnullamento, Connection manager "ITMASORASVIL:1521/SVILUPPO.EDP": 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 MediaMarketAnnullamento, Connection manager "ITMASORASVIL:1521/SVILUPPO.EDP": SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8004D01B. 

Error: 0xC020801C at 9999 - Insert_MAGAZZZINO_MM_SHOW, MAGAZZINO_MM_SHOW_SSIS [2187]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "ITMASORASVIL:1521/SVILUPPO.EDP" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. 

Error: 0xC004701A at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: component "MAGAZZINO_MM_SHOW_SSIS" (2187) failed the pre-execute phase and returned error code 0xC020801C. 

Information: 0x40043009 at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: Cleanup phase is beginning. 

Information: 0x4004300B at 9999 - Insert_MAGAZZZINO_MM_SHOW, DTS.Pipeline: "component "MAGAZZINO_MM_SHOW_SSIS" (2187)" wrote 0 rows. 

Task failed: 9999 - Insert_MAGAZZZINO_MM_SHOW 

Information: 0x4001100C at 9999 - Insert_MAGAZZZINO_MM_SHOW: Aborting the current distributed transaction. 

Information: 0x4001100C at Insert su Oracle: Aborting the current distributed transaction. 

SSIS package "MediaMarketAnnullamento.dtsx" finished: Failure. 

Jede Hilfe? Danke

EDIT: Ich habe gerade festgestellt, dass der Server mit Oracle ist nicht, wie ich dachte, Windows-basierte aber IBM ICS. Ich weiß nicht, ob das relevant ist.

+0

klingt für mich wie dies sollte besser in serverfault passen. – lexu

+0

nein, das ist Programmierung bezogen –

+0

Ich schlage vor, dass Sie SSIS-Transaktionen vermeiden. Es hat mich daran gehindert, funktionierende Verbindungen zu benutzen. Verwenden Sie stattdessen SQL-Transaktionen in SSIS. – Steam

Antwort

1

Sieht so aus, als könnte es ein Problem mit MSDTC-Berechtigungen sein this MS Blogpost könnte helfen, es zu debuggen. Auch ich gehe davon aus, dass die Berechtigungen auf dem Oracle-Server korrekt eingestellt sind, siehe this MS KB-Artikel für Hilfe mit diesem.

+0

Ich schlage vor, dass Sie SSIS-Transaktionen vermeiden. Es hat mich daran gehindert, funktionierende Verbindungen zu benutzen. Verwenden Sie stattdessen SQL-Transaktionen in SSIS. – Steam