Estou trabalhando em um pacote que precisa usar uma transação, mas atualmente estou recebendo o seguinte erro:
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.
Aqui está o que eu sei até agora:
- Pacote 2012
- Estou executando na implantação de pacotes
- A propriedade TransactionOption está definida como Necessário
- Executando contra uma instância do 2008 R2
- Posso criar uma transação distribuída manualmente na instância e de acordo com o visualizador de eventos que o MSDTC está executando.
- O MSDTC possui as seguintes configurações
Alguém pode apontar em uma direção para encontrar informações adicionais.
Edit: Uma das etapas que li disse para executar o DTC na máquina local executando o pacote, bem como no servidor que contém a instância. Depois disso, recebi um novo erro:
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.
Sendo a parte importante, The transaction manager has disabled its support for remote/network transactions.
estou perdendo algo nas permissões? Nota: o Allow Remote Clients
também foi verificado.
Eu já vi o ping do MSDTC mencionado (inclusive nos comentários abaixo), mas, quando olhei para ele, não sei ao certo o que fazer com ele.
sql-server
sql-server-2008-r2
ssis
ssis-2012
distributed-transactions
Kenneth Fisher
fonte
fonte
Respostas:
Eu resolvi o problema. Eu tinha lido em vários lugares que o DTC precisa ser iniciado na máquina de origem e no destino. Portanto, em meu lugar, minha estação de trabalho e o servidor em que a instância está.
Depois de ativar o MSDTC, recebi um novo erro:
Com a parte importante sendo
The transaction manager has disabled its support for remote/network transactions.
Uma vez lá, fiz uma pesquisa adicional e finalmente percebi que não havia configurado meu DTC local para permitir o acesso à rede, etc. Depois que eu o configurei para permitir o acesso ao DTC de rede, permitir conexões remotas e permitir conexões de saída tudo funcionou sem problemas.
Não tenho certeza se essas são as permissões mínimas necessárias para a conexão local, mas parece ser.
fonte