Boa tarde a todos
Estou com um problema entre em um linked server sql server com IP via VPN.
Encontro o seguinte erro
OLE DB provider "SQLNCLI10" for linked server "10.91.11.139" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 5
The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "10.91.11.139" was unable to begin a distributed transaction.
Já verifiquei diversas configurações do MSDTC como MSDCT Service rodando nos dois servidores, Network DTC Access, Allow Inbound and Allow Outbound entre outras que encontrei em sites como este: http://www.sqlwebpedia.com/content/msdtc-troubleshooting e http://www.sqlvillage.com/Articles/Distributed%20Transaction%20Issue%20for%20Linked%20Server%20in%20SQL%20Server%202008.asp
Até HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC criar a chave DWORD CmMaxNumberBindRetries com valor decimal (60) (http://social.technet.microsoft.com/wiki/contents/articles/5141.solucionando-problemas-no-transaction-is-active-no-sql-server-pt-br.aspx)
Fiz o teste abaixo entre máquinas na mesma rede usando ip fazendo estas configurações e funcionaram normalmente
BEGIN TRAN
EXEC [10.91.11.139].master.dbo.teste
COMMIT TRAN
Os servidores estão usando Windows Server 2008 R2 e SQL Server 2008 R2 SP 1 Enterprise
Alguém pode me dar uma luz?
Obrigado desde já
Olá Vitor,
Como você está utilizando VPN seria interessante você checar se todas as portas necessárias para o DTC estão abertas.
- Faça o teste nas instâncias de origem e destino com o comando BEGIN DISTRIBUTED TRAN, pra você checar se ambas as instâncias estão fazendo o enlist no DTC. Caso ocorra algum erro neste passo, o provavel problema está no DTC da instâncias que apresentou o problema.
- Se funcionar, utilize as ferramentas citadas neste link (http://msdn.microsoft.com/en-us/library/aa547959.aspx) para checar a comunicação do DTC entre os servidores.
- Achei o DTCTester uma ferramenta mais completa, pois ela testa praticamente todos os componentes necessário para que uma transação distribuida funcione.
- O DTCPing é uma boa ferramenta para fazer o primeiro diagnóstico, se todas as portas estão desbloqueadas.
- Por fim verifique se suas regras estão de acordo com o KB http://support.microsoft.com/kb/306843
- É importante também checar se o Windows Firewall das máquinas estão habilitados e se não estão bloqueando a comunicação.
--
Abraços,
-----------------------------------------------------
Euler Paiva de Moraes