Problema com o MS DTC no SQL2008 win server 2k8 com o servidor vinculado do sql2000 win server 2k

1

Nós migramos nosso banco de dados do sql2000 win server 2k para o sql2008 win server 2k8. Nós vinculamos o servidor a partir do servidor sql2000 win 2k. Em nossa opinião, o problema é com o DTC e fizemos muitas configurações que encontramos como solução para o nosso problema, mas ainda assim o problema existe. Não há nenhum erro ou descuido ou informações mais no log sql nem no visualizador de eventos win. O aplicativo está saindo e no final a exceção de tempo limite é mostrada.

O que fizemos até agora:

  1. Habilitar acesso ao DTC de rede com entrada e saída sem necessidade de autenticação no win 2k8
  2. Abrimos a alocação dinâmica de portas RPC por meio do registro em 2k e 2k8
  3. Introduzimos a subchave TurnOffRpcSecurity no registro HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSDTC e a habilitamos em 2k e 2k8
  4. Adicionamos exceção para o DTC no firewall para todas as entidades

O que notamos é que, quando reiniciamos o serviço SQL e tentamos pela primeira vez a transação, o seguinte é mostrado: "Tentando inicializar o Coordenador de Transações Distribuídas da Microsoft (MS DTC). Esta é apenas uma mensagem informativa. Nenhuma ação do usuário é necessária." e depois disso: "A recuperação de qualquer transação distribuída sem dúvida envolvendo o MS DTC (Coordenador de Transações Distribuídas da Microsoft) foi concluída. Esta é apenas uma mensagem informativa. Nenhuma ação do usuário é necessária."

Alguém tem alguma ideia do que mais pode ser feito para resolver o problema?

Obrigado antecipadamente.

Atenciosamente, Snezana

    
por splattne 13.01.2010 / 20:41

4 respostas

1

Tente executar um rastreamento com o SQL Server Profiler nos dois servidores enquanto tenta executar a ação em seu aplicativo que está resultando nos tempos limite. Isso mostrará exatamente o que está acontecendo nas máquinas quando o tempo limite acabar.

E lembre-se de manter a mente aberta neste processo. Eu sei que você disse que acha que o DTC está causando o problema, mas na minha experiência, o DTC geralmente não causa tempos limites. Ele funciona ou não, e os erros lançados quando não estão configurados corretamente dizem explicitamente que o DTC não consegue iniciar a transação. Problemas de servidor vinculados que eu vi normalmente envolvem uma consulta remota que não está terminando ou uma consulta remota que precisa enviar muitos dados para o servidor de chamada.

    
por 13.01.2010 / 23:32
1

Sim, você está certo e corre o profiler antes, mas não percebeu alguns ascects porque eu fui redirecionado com a minha mente que o problema é com o servidor vinculado.

O problema foi um impasse e meu conselho para todos que tem tempo limite é o primeiro a verificar a ocorrência do deadlock.

Obrigado.

    
por 15.01.2010 / 14:55
0

Eu não tentei exatamente sua combinação. Mas aqui está algo que você poderia tentar:

  • Execute o comando dcomcnfg (não me diga que você não conseguiu encontrar o comando de execução
  • Expanda o nó "Serviços de componentes", depois o nó "Meu computador" e, em seguida, o nó "Coordenador de transações distribuídas"
  • Clique com o botão direito do mouse no nó "Local DTC" e selecione "Propriedades"
  • Nas “Propriedades locais do DTC”, selecione a guia “Segurança”
  • Selecione Acesso ao DTC de Rede, Permitir entrada, Permitir saída, Sem autenticação obrigatória e Ativar transações XA

Você também pode ver o monitor MSDTC enquanto está testando. Dessa forma, você verá se as transações estão sendo criadas e, em seguida, serão anuladas ou não serão criadas.

    
por 13.01.2010 / 22:14
0

As duas máquinas estão na mesma sub-rede? Eu nunca poderia fazer o DTC funcionar através de um roteador, firewall ou não.

Para depurar, tente usar o DTCPing DTCPing e DTCTester (google para isso).

Às vezes, as reinicializações são necessárias ao alterar as configurações do DTC, mesmo que o sistema não o diga.

    
por 28.03.2010 / 21:17