web-dev-qa-db-fra.com

Problème lors de la création d'une transaction dans un package SSIS

Je travaille sur un package qui doit utiliser une transaction mais j'obtiens actuellement l'erreur suivante:

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.

Voici ce que je sais jusqu'à présent:

  • Forfait 2012
  • Je suis en cours de déploiement de package
  • La propriété TransactionOption est définie sur Obligatoire
  • Exécution sur une instance 2008 R2
  • Je peux créer une transaction distribuée manuellement sur l'instance et selon l'observateur d'événements MSDTC en cours d'exécution.
  • MSDTC a les paramètres suivants

enter image description here

Quelqu'un peut-il indiquer une direction pour trouver des informations supplémentaires?.

Edit: L'une des étapes que j'ai lues a dit d'exécuter DTC sur la machine locale exécutant le package ainsi que sur le serveur contenant l'instance. Une fois que j'ai fait cela, j'ai eu une nouvelle erreur:

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.

La partie importante étant The transaction manager has disabled its support for remote/network transactions. Suis-je en train de manquer quelque chose dans les permissions? Noter la Allow Remote Clients a également été vérifié.

J'ai vu le ping MSDTC mentionné (y compris dans les commentaires ci-dessous) mais quand je l'ai regardé, je ne sais pas trop quoi en faire.

12
Kenneth Fisher

J'ai résolu le problème. J'avais lu à plusieurs endroits que le DTC devait être démarré sur la machine source ainsi que sur la destination. Donc, à ma place, mon poste de travail ainsi que le serveur sur lequel l'instance se trouve.

Une fois que j'ai activé MSDTC, j'ai reçu une nouvelle erreur:

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.

La partie importante étant The transaction manager has disabled its support for remote/network transactions.

Une fois là-bas, j'ai fait des recherches supplémentaires et j'ai finalement réalisé que je n'avais pas configuré mon DTC local pour autoriser l'accès au réseau, etc.

enter image description here

Je ne suis pas sûr que ce soit les autorisations minimales requises pour la connexion locale, mais cela semble l'être.

10
Kenneth Fisher