Problema al crear una transacción en un paquete SSIS


12

Estoy trabajando en un paquete que necesita usar una transacción pero actualmente recibo el siguiente error:

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.

Esto es lo que sé hasta ahora:

  • Paquete 2012
  • Estoy corriendo en despliegue de paquete
  • La propiedad TransactionOption se establece en Requerido
  • Correr contra una instancia 2008 R2
  • Puedo crear una transacción distribuida manualmente en la instancia y según el visor de eventos MSDTC se está ejecutando.
  • MSDTC tiene la siguiente configuración

ingrese la descripción de la imagen aquí

¿Alguien puede apuntar en una dirección para encontrar información adicional?

Editar: Uno de los pasos que leí dijo que ejecutara DTC en la máquina local que ejecuta el paquete, así como en el servidor que contiene la instancia. Una vez que hice eso, recibí un nuevo error:

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.

Con la parte importante, The transaction manager has disabled its support for remote/network transactions. ¿me estoy perdiendo algo en los permisos? Nota: el Allow Remote Clientstambién ha sido verificado.

He visto el ping de MSDTC mencionado (incluso en los comentarios a continuación) pero cuando lo miré no estoy muy seguro de qué hacer con él.


1
Se encontró información más detallada que en realidad muestra algunos pasos de solución de problemas para DTC y SSIS: richardlees.blogspot.com/2010/01/…

1
¿Qué método está utilizando para configurar su transacción en el paquete SSIS?
Zane

1
Consulte el registro de eventos de la aplicación para ver si hay errores de msdtc, obtenga el ping de MSDTC support.microsoft.com/en-us/kb/918331
Spörri

@ Spörri No vi nada en el registro de eventos en el cliente o servidor. He visto MSDTC pero se ve (a primera vista) sobre mi cabeza.
Kenneth Fisher

1
@KennethFisher Solo me refería al nombre del servidor en la prueba de PowerShell, si obtuviste información, entonces RPC está abierto.
Bob Klimes

Respuestas:


10

Resolví el problema. Había leído en varios lugares que el DTC debe iniciarse en la máquina de origen, así como en el destino. Entonces, en mi lugar, mi estación de trabajo y el servidor en el que se encuentra la instancia.

Una vez que encendí MSDTC recibí un nuevo error:

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.

Con la parte importante siendo The transaction manager has disabled its support for remote/network transactions.

Una vez allí, hice una investigación adicional y finalmente me di cuenta de que no había configurado mi DTC local para permitir el acceso a la red, etc. Una vez que lo configuré para permitir el acceso a la red DTC, permitir conexiones remotas y permitir conexiones de salida, todo funcionó sin problemas.

ingrese la descripción de la imagen aquí

No estoy seguro de que estos sean los permisos mínimos necesarios para la conexión local, pero parece ser.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.