A nova transação não pode se inscrever no coordenador de transações especificado quando você tenta iniciar uma transação no MS DTC
Artigo
Este artigo ajuda você a resolver um problema ao iniciar uma transação no MS DTC (Coordenador de Transações Distribuídas da Microsoft).
Versão original do produto: Windows Número original do KB: 922430
Importante
Este artigo contém informações sobre como modificar o Registro. Faça backup do Registro antes de modificá-lo. Você deve saber como restaurar o Registro caso ocorra algum problema. Para obter mais informações sobre como fazer backup, restaurar e modificar o Registro, consulte Informações do Registro do Windows para usuários avançados.
Sintomas
Considere o cenário a seguir.
Você tem um computador cliente que se comunica com um computador servidor.
O MS DTC está instalado em ambos os computadores.
Uma ou mais das seguintes condições são verdadeiras:
Você reinicia um dos computadores.
Você reinicia o MS DTC em qualquer um dos computadores.
Os computadores estão em domínios diferentes.
Nesse cenário, você recebe a seguinte mensagem de erro ao tentar iniciar uma transação no MS DTC:
A nova transação não pode ser inscrita no coordenador de transações especificado (0x8004d00a)
Além disso, a primeira transação falha. As transações subsequentes são bem-sucedidas por um tempo. No entanto, as transações subsequentes podem falhar novamente. Se as transações subsequentes falharem, você receberá a seguinte mensagem de erro:
A nova transação não pode ser inscrita no coordenador de transações especificado (0x8004d00e)
Causa
Esse problema pode ocorrer quando a conexão MS DTC entre o computador cliente e o computador servidor é fechada. Por exemplo, um tempo limite ocioso, um tempo limite de chamada de procedimento remoto (RPC) ou o firewall podem fechar a conexão MS DTC entre o computador cliente e o computador servidor. Quando ocorre uma nova solicitação de transação, o computador cliente deve restabelecer a conexão do MS DTC com o computador servidor.
Quando o computador cliente tenta restabelecer a conexão do MS DTC com o computador servidor, o computador cliente envia um pacote. Em seguida, o computador cliente aguarda uma resposta de pacote de ligação do computador servidor. Por padrão, o computador cliente interrompe a transação se o computador cliente não receber uma resposta do computador servidor em 4 segundos. A resposta do computador servidor pode ser atrasada devido a problemas de latência de rede ou atrasos de autenticação. Quando a resposta do computador servidor finalmente chega ao computador cliente, as transações subsequentes são bem-sucedidas.
A primeira transação pode levar muito tempo e, em seguida, uma solicitação posterior para fazer uma transação distribuída pode ser concluída imediatamente. Esse problema pode ocorrer quando o lado do cliente do MS DTC tem um problema de comunicação com o servidor Kerberos (KDC). Normalmente, esse problema ocorre se o cliente e o servidor estiverem em domínios diferentes que tenham um firewall entre eles.
Por exemplo, esse problema ocorre no seguinte cenário:
O serviço Web está na rede de perímetro em um domínio. O serviço Web precisa usar transações com um servidor de banco de dados em outro domínio em uma intranet.
Um firewall está entre a rede de perímetro e a intranet. O atraso excessivo na primeira transação ocorre porque a porta 88 (Kerberos) do User Datagram Protocol (UDP) está bloqueada.
A repetição e o intervalo de repetição para a solicitação Kerberos são iguais a um atraso excessivo (mais de 100 segundos).
Solução
Aviso
Poderão ocorrer problemas sérios se você modificar o Registro incorretamente usando o Editor do Registro ou outro método. Esses problemas podem exigir a reinstalação do sistema operacional. A Microsoft não pode garantir que esses problemas possam ser resolvidos. Modifique o Registro por conta própria.
Para garantir que você esteja enfrentando o problema descrito neste artigo, confirme se o arquivo de log de rastreamento de transações do MS DTC contém os seguintes dados:
; eventid=TRANSACTION_PROPOGATION_FAILED_CONNECTION_DOWN_FROM_REMOTE_TM ; tx_guid=f11cd9c9-7b8a-41e3-a904-4840123bacf7 ;" falha ao propagar a transação para o nó filho ' ComputerName ' porque a conexão com o gerenciador de transações remoto caiu"
Observação
Nesses dados, a palavra propagação é um erro ortográfico para a palavra propagação. A palavra propogate é um erro ortográfico para a palavra propagar.
Se o arquivo de log de rastreamento de transações do MS DTC contiver esses dados, siga estas etapas:
Selecione Iniciar e Executar, digite regedit e selecione OK.
Localize a seguinte subchave do Registro: HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
Clique com o botão direito do mouse em MSDTC, aponte para Novo e selecione Valor DWORD.
Digite CmMaxNumberBindRetries e pressione ENTER.
Clique com o botão direito do mouse em CmMaxNumberBindRetries e selecione Modificar.
Selecione Decimal.
Na caixa Dados do valor, digite 60.
Esse valor aumenta o tempo que o computador cliente aguarda a resposta do pacote de ligação do computador servidor. Esse valor é o dobro do número de segundos antes que o computador cliente interrompa a transação se o computador cliente não receber a resposta do pacote de associação. Por exemplo, um valor de 60 é igual a 30 segundos. O valor de 60 é apenas um valor recomendado. Testes adicionais em sua configuração podem ser necessários.
Selecione OK.
Reinicie o MS DTC.
Observação
Para o cenário de resposta lenta, certifique-se de que as portas exigidas pela autenticação Kerberos (UDP 88 e TCP (Transmission Control Protocol) 88) estejam abertas quando um firewall estiver envolvido na rede de perímetro. As portas UDP 389 e TCP 389 (ambas para LDAP (Lightweight Directory Access Protocol) para localizar o KDC (Centro de Distribuição de Chaves)) também devem estar abertas.
Saiba como solucionar problemas com falhas no serviço AD DS ou degradação de desempenho. Saiba como recuperar objetos de segurança e o banco de dados do AD DS excluídos e como solucionar problemas com autenticação híbrida.
Descreve como recompilar uma instalação quebrada do MSDTC para uso com uma instalação do SQL Server clusterizada com failover e como mover o recurso clusterizado do MSDTC para um novo grupo.