Usuário com melhor resposta
Transação distribuída Linked Server

Pergunta
-
Boa tarde, estou com um problema com meu linked server.
Eu criei o linked server entre os servidores, um identifica o outro normalmente, e criei uma trigger de update para replicar os dados do Servidor A para o Servidor B que estão conectados através de uma VPN.
O pior é o seguinte, tinha feito vários teste (varios mesmo) até finalmente conseguir colocar para funcionar no cliente.
Rodou perfeitamente por 2h, mas depois acabou dando erro e agora não consigo mais fazer as atualizações de um banco ir para o outro.
Ao tentar atualizar a linha aparece:
"The data in row 1 was not committed.
Error Source: .Net SqlClient Data Provider.
Error Message: The operation could not be performed because OLE DB provider "MSDASQL" for linked server "loja" was unable to begin a distributed transaction.
OLE DB provider "MSDASQL" for linked server "loja" returned message "[Microsoft][ODBC SQL Server Driver] Erro de transação distribuída".
O engraçado novamente é que funcionou por algum tempo!
Ja verifiquei em todos os lugares os possíveis erros que se encontravam aqui no fórum, google, vários sites.
Agradeço
- Editado rodriguez4392 segunda-feira, 1 de outubro de 2012 17:30
Respostas
-
Se você quer fazer replicação, ainda que seja de algumas colunas, o melhor a fazer é usar a própria Replicação de Dados do SQL Server.
Seguem alguns links de referência:
1) http://www.youtube.com/watch?v=9yCdFXpnzmE
2) http://msdn.microsoft.com/pt-br/library/ms151198.aspx
3) http://www.blogdati.com.br/index.php/2011/07/replicacao-de-dados-utilizando-sql-server-2008/
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Roberson Ferreira _ terça-feira, 2 de outubro de 2012 11:26
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 25 de fevereiro de 2015 15:25
Todas as Respostas
-
Qual versão do SQL?
Se for a 2008, veja o link http://support.microsoft.com/kb/954950.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
-
rodriguez4392,
Provavelmente existem transações pendentes entre estes servidores. Uma possibilidade seria parar o serviço MSDTC e força a execução desta transação com a reinicialização do serviço.
Outra possibilidade seria desativar a trigger e deixar que estas transações sejam concluídas.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Dê uma olhada então no http://support.microsoft.com/kb/306212.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
-
Hoje ja apareceu uma mensagem diferente, a seguinte:
"Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding."
O tempo de timeout eu defini como 0 nas configurações do servidor, e executei um script do sql para ver se o servidor A verificava se o servidor B estava "Online", e aparece disponivel.
Estou quase desistindo desta opção! Se alguém souber outra opção para a replicação dos dados, pois ja tentei a replicação do SQL, mas eu não posso fazer o envio de todas as colunas da tabela, e gostaria que fosse algo que fizesse as alterações simultaneamente.
Obrigado pelo ajuda por enquanto
-
Se você quer fazer replicação, ainda que seja de algumas colunas, o melhor a fazer é usar a própria Replicação de Dados do SQL Server.
Seguem alguns links de referência:
1) http://www.youtube.com/watch?v=9yCdFXpnzmE
2) http://msdn.microsoft.com/pt-br/library/ms151198.aspx
3) http://www.blogdati.com.br/index.php/2011/07/replicacao-de-dados-utilizando-sql-server-2008/
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Sugerido como Resposta Roberson Ferreira _ terça-feira, 2 de outubro de 2012 11:26
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 25 de fevereiro de 2015 15:25