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

12

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

entrez la description de l'image ici

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

Edit: Une des étapes que j'ai lues disait 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. ai-je oublié quelque chose dans les autorisations? Remarque: le Allow Remote Clientsa é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.

Kenneth Fisher
la source
1
Vous trouverez des informations plus détaillées qui montrent en fait certaines étapes de dépannage pour DTC et SSIS: richardlees.blogspot.com/2010/01/…
1
Quelle méthode utilisez-vous pour définir votre transaction dans le package SSIS?
Zane
1
Consultez le journal des événements d'application pour les erreurs de msdtc, obtenez le ping MSDTC support.microsoft.com/en-us/kb/918331
Spörri
@ Spörri Je n'ai rien vu dans le journal des événements sur le client ou le serveur. J'ai regardé MSDTC mais il regarde (à première vue) au-dessus de ma tête.
Kenneth Fisher
1
@KennethFisher Je voulais juste dire servername dans le test powershell, si vous avez obtenu des informations, alors RPC est ouvert.
Bob Klimes

Réponses:

10

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.

entrez la description de l'image ici

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

Kenneth Fisher
la source