A nova transação não pode ser inscrita no coordenador de transações especificado quando você tenta iniciar uma transação no MS DTC
Este artigo ajuda você a resolve 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 de registro do Windows para usuários avançados.
Sintomas
Considere o seguinte cenário:
- Você tem um computador cliente que se comunica com um computador de servidor.
- O MS DTC está instalado em ambos os computadores.
- Uma ou mais das seguintes condições são verdadeiras:
- Reinicie qualquer um dos computadores.
- Reinicie 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 alistada no coordenador de transações especificado (0x8004d00a)
Além disso, a primeira transação falha. As transações subsequentes têm êxito 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 alistada no coordenador de transações especificado (0x8004d00e)
Motivo
Esse problema pode ocorrer quando a conexão MS DTC entre o computador cliente e o computador do servidor for 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 do servidor. Quando ocorre uma nova solicitação de transação, o computador cliente deve restabelecer a conexão MS DTC com o computador do servidor.
Quando o computador cliente tenta restabelecer a conexão MS DTC com o computador do servidor, o computador cliente envia um pacote. Em seguida, o computador cliente aguarda uma resposta de pacote de associação do computador do servidor. Por padrão, o computador cliente interromperá a transação se o computador cliente não receber uma resposta do computador do servidor em 4 segundos. A resposta do computador do servidor pode ser atrasada devido a problemas de latência de rede ou atrasos de autenticação. Quando a resposta do computador do 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 Protocolo de Datagrama do Usuário (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).
Resolução
Aviso
Poderão ocorrer sérios problemas se você modificar o Registro incorretamente com 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 a seu próprio risco.
Para ter certeza de que você está 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 propor transação com o nó filho ' ComputerName ' porque a conexão com o gerenciador de transações remota caiu"
Observação
Nesses dados, a palavra propogation é um erro de ortografia para a propagação da palavra. A palavra propogate é um erro de ortografia 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 de dados Valor , digite 60.
Esse valor aumenta o tempo que o computador cliente aguarda pela resposta do pacote de associação do computador do servidor. Esse valor é o dobro do número de segundos antes que o computador cliente pare 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. Podem ser necessários testes adicionais em sua configuração.
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 Protocolo de Controle de Transmissão (TCP) 88) estejam abertas quando um firewall estiver envolvido na Rede de Perímetro. As portas UDP 389 e TCP 389 (ambas para LDAP (Protocolo de Acesso ao Diretório Leve) para localizar o Centro de Distribuição de Chaves (KDC)) também devem estar abertas.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários