Problem beim Erstellen einer Transaktion in einem SSIS-Paket


12

Ich arbeite an einem Paket, für das eine Transaktion erforderlich ist, erhalte jedoch derzeit die folgende Fehlermeldung:

SSIS package "CATS-Package.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001401A at CATS-Package: The SSIS Runtime has failed to start the distributed transaction due to error 0x8004D01B "The Transaction Manager is not available.". The DTC transaction failed to start. This could occur because the MSDTC Service is not running.
SSIS package "CATS-Package.dtsx" finished: Failure.

Folgendes weiß ich bisher:

  • 2012 Paket
  • Ich bin in der Paketbereitstellung ausgeführt
  • Die TransactionOption-Eigenschaft wird auf Erforderlich festgelegt
  • Ausführung gegen eine 2008 R2-Instanz
  • Ich kann eine verteilte Transaktion manuell auf der Instanz erstellen und gemäß der Ereignisanzeige, die MSDTC ausführt.
  • MSDTC verfügt über die folgenden Einstellungen

Bildbeschreibung hier eingeben

Kann jemand in eine Richtung zeigen, um zusätzliche Informationen zu finden.

Bearbeiten: Einer der Schritte, die ich gelesen habe, lautete, DTC auf dem lokalen Computer auszuführen, auf dem das Paket ausgeführt wird, sowie auf dem Server, auf dem sich die Instanz befindet. Als ich das gemacht habe, habe ich einen neuen Fehler bekommen:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

Mit dem wichtigen Teil The transaction manager has disabled its support for remote/network transactions. Bin ich etwas in den Berechtigungen fehlt? Hinweis: das Allow Remote Clientswurde auch geprüft.

Ich habe gesehen, wie MSDTC Ping erwähnt wurde (auch in den Kommentaren unten), aber als ich es mir ansah, war ich mir nicht ganz sicher, was ich damit anfangen sollte.


1
Detaillierte Informationen zu einigen Schritten zur Fehlerbehebung für DTC und SSIS: richardlees.blogspot.com/2010/01/…

1
Mit welcher Methode legen Sie Ihre Transaktion im SSIS-Paket fest?
Zane,

1
Überprüfen Sie das Anwendungsereignisprotokoll für Fehler von msdtc, erhalten MSDTC ping support.microsoft.com/en-us/kb/918331
Spörri

@ Spörri Ich habe im Ereignisprotokoll auf dem Client oder Server nichts gesehen. Ich habe MSDTC angeschaut, aber es sieht (auf den ersten Blick) über meinen Kopf aus.
Kenneth Fisher

1
@KennethFisher Ich habe gerade Servername im Powershell-Test gemeint, wenn Sie Informationen zurückbekommen haben, dann ist RPC geöffnet.
Bob Klimes

Antworten:


10

Ich habe das Problem gelöst. Ich hatte an mehreren Stellen gelesen, dass sowohl auf dem Quellcomputer als auch auf dem Ziel ein DTC gestartet werden muss. An meiner Stelle ist also sowohl meine Workstation als auch der Server, auf dem sich die Instanz befindet.

Nachdem ich MSDTC eingeschaltet hatte, erhielt ich einen neuen Fehler:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

Mit dem wichtigen Teil ist The transaction manager has disabled its support for remote/network transactions.

Dort habe ich zusätzliche Nachforschungen angestellt und festgestellt, dass ich meinen lokalen DTC nicht für den Netzwerkzugriff usw. konfiguriert habe. Nachdem ich ihn für den Netzwerk-DTC-Zugriff konfiguriert hatte, funktionierte alles reibungslos.

Bildbeschreibung hier eingeben

Ich bin nicht sicher, ob dies die Mindestberechtigung ist, die für die lokale Verbindung erforderlich ist, aber es scheint zu sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.