Erro Linked Server usando IP via VPN - "No transaction is active."

235 views
Skip to first unread message

victormlima

unread,
May 9, 2012, 4:54:02 PM5/9/12
to sqlse...@googlegroups.com

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á

Euler Paiva de Moraes

unread,
May 9, 2012, 6:48:07 PM5/9/12
to sqlse...@googlegroups.com
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

victormlima

unread,
May 10, 2012, 2:24:29 PM5/10/12
to sqlse...@googlegroups.com
Obrigado pela resposta Euler.

Vou checar as portar e a conexão VPN.


Obrigado e até mais



Em quarta-feira, 9 de maio de 2012 19h48min07s UTC-3, Euler Paiva escreveu:
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


Jefferson Oliveira

unread,
May 29, 2012, 8:39:41 AM5/29/12
to sqlse...@googlegroups.com
Passei pelo mesmo problema.

First verify the "Distribute Transaction Coordinator" Service is
running on both database server computer and client computers
1.      Go to "Administrative Tools > Services"
2.      Turn on the "Distribute Transaction Coordinator" Service if it is not running

If it is running and client application is not on the same computer as
the database server, on the computer running database server
1.      Go to "Administrative Tools > Component Services"
2.      On the left navigation tree, go to "Component Services > Computers
> My Computer" (you may need to double click and wait as some nodes
need time to expand)
3.      Right click on "My Computer", select "Properties"
4.      Select "MSDTC" tab
5.      Click "Security Configuration"
6.      Make sure you check "Network DTC Access", "Allow Remote Client",
"Allow Inbound/Outbound", "Enable TIP" (Some option may not be
necessary, have a try to get your configuration)
7.      The service will restart
8.      BUT YOU MAY NEED TO REBOOT YOUR SERVER IF IT STILL DOESN'T WORK
(This is the thing drove me crazy before)

On your client computer use the same above procedure to open the
"Security Configuration" setting, make sure you check "Network DTC
Access", "Allow Inbound/Outbound" option, restart service and computer
if necessary.

On you SQL server service manager, click "Service" dropdown, select
"Distribute Transaction Coordinator", it should be also running on
your server computer.

Hope it helps,

Eric
 


--
-------------------------------------------------
att,

Jefferson Santos

victormlima

unread,
May 29, 2012, 9:46:29 AM5/29/12
to sqlse...@googlegroups.com
Obrigado Jefferson 

Já tinha feito de tudo. Já tinha seguido esta lista várias vezes, só que com seu post me atentei a reinicialização do server.

Só falta isto. 

Vou tentar na minha próxima Maintenance windows

Muito obrigado pela resposta

Abraço

Jefferson Oliveira

unread,
May 29, 2012, 10:54:54 AM5/29/12
to sqlse...@googlegroups.com
Opa,

Quando eu fiz aqui, na hora que muda os parâmetros do msdtc ele se auto-reinicia e já resolve o problema. 

Exceto um servidor que realmente tive que reiniciar ele(o server).
Reply all
Reply to author
Forward
0 new messages