Artigo: 867520 - Última revisão: sexta-feira, 13 de Abril de 2007 - Revisão: 2.2

Não consegue iniciar o serviço Microsoft Distributed Transaction Coordinator (MSDTC) no computador baseado no Windows 2000 Server que faz parte de um cluster de servidores

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Importante: este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o pode restaurar se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
256986  (http://support.microsoft.com/kb/256986/ ) Descrição do registo do Microsoft Windows

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).
Expandir tudo | Reduzir tudo

Sintomas

No computador baseado no Microsoft Windows 2000 Server que faz parte de um cluster de servidores, recebe a seguinte mensagem de erro:
An error occurred while processing the last operation. Error code 8004E00F - COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator.
Não consegue iniciar o serviço Microsoft Distributed Transaction Coordinator (MSDTC).

Os eventos que se seguem poderão ser registados no registo de eventos de aplicações:
Event ID: 4099
Type: Error
Source: COM+
Description:
The runtime environment was unable to initialize for transactions required to support transactional components. Make sure that MS DTC is running. (DtcGetTransactionManagerEx{}: hr = 0x8004d01b

Event ID: 4097
Type: Error
Source: MSDTC
Description:
MS DTC started with the following settings:
Security Configuration (OFF = 0 and ON = 1):
Network Administration of Transactions = 1,
Network Clients = 0,
Distributed Transactions using Native MSDTC Protocol = 1,
Transaction Internet Protocol (TIP) = 0, XA
Transactions = 1

Event ID: 4395
Type: Error
Source: MSDTC
Description:
MSDTC detected that MSDTC related information in the local registry is different from that in the shared cluster registry. Error Specifics: d:\nt\com\com1x\dtc\shared\mtxclu\mtxclusetuphelper.cpp:541,
CmdLine: C:\WINNT\System32\msdtc.exe, Pid: 796

Event ID: 4384
Type: Error
Source: MSDTC
Description:
MS DTC was unable to start because the installation was not configured to run on a cluster. Please run comclust.exe and restart MS DTC. Error Specifics: d:\nt\com\com1x\dtc\shared\mtxclu\mtxclusetuphelper.cpp:668,
CmdLine: C:\WINNT\System32\msdtc.exe, Pid: 796

Causa

Este comportamento ocorre se as seguintes condições se verificarem:
  • Instalou o serviço MSDTC como um recurso sem ser de cluster num cluster baseado no Windows 2000 Server.
  • Instalou a actualização de software MS04-012.

    Nota: a actualização de software MS04-012 está incluída no pacote 27 do conjunto de correcções de COM+ posterior ao Service Pack 4 do Windows 2000.
A actualização de software MS04-012 inclui uma alteração ao proxy do MSDTC (Msdtcprx.dll). A actualização de software revela a necessidade de ter o serviço MSDTC configurado com um recurso de cluster. Depois de instalar a actualização, o serviço MSDTC consegue iniciar no cluster local porque o serviço é inicializado antes do início do serviço de cluster. No entanto, se parar o serviço MSDTC depois de o serviço de cluster estar em execução, não conseguirá reiniciar o MSDTC até reiniciar o servidor.

Para obter informações adicionais sobre a actualização MS04-012, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
822473  (http://support.microsoft.com/kb/822473/ ) Error when a stand-alone instance of SQL Server is in a cluster environment
Nota: se instalar o MSDTC como um recurso sem ser de cluster, esta configuração pode dar origem a transações isoladas. Transacções isoladas podem provocar danos em dados se ocorrer uma activação pós-falha no cluster. Não recomendamos nem fornecemos suporte a esta configuração. Por predefinição, o Microsoft Windows Server 2003 requer que o MSDTC esteja instalado como recurso de cluster.

Resolução

Para resolver este comportamento, siga estes passos:

Aviso: a utilização incorrecta do Registry Editor poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. A Microsoft não garante que os problemas resultantes da utilização incorrecta do Registry Editor possam ser resolvidos. Todo e qualquer risco decorrente da utilização do Registry Editor é da responsabilidade do utilizador.
  1. Ligue a ambos os nós utilizando um cliente dos serviços de terminal ou na consola.
  2. Mova todos os recursos para um dos nós. Este nó passa a ser o nó activo.
  3. Em ambos os nós, utilize o Registry Editor para eliminar as seguintes subchaves do registo:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
    • HKEY_CLASSES_ROOT\CID
    Para tal, siga estes passos:
    1. Clique em Start, clique em Run, escreva regedit e clique em OK.
    2. Localize e clique com o botão direito do rato na seguinte subchave do registo:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
    3. Clique em Delete.
    4. Clique em Yes para confirmar a eliminação.
    5. Repita os passos a a d para a subchave
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
      e a subchave
      HKEY_CLASSES_ROOT\CID
      .
    6. Saia do Registry Editor.
  4. No nó activo, crie a pasta "DTClog" na unidade de quórum. Por exemplo, crie a pasta Q:\DTClog.
  5. Se não vir a unidade de quórum no Windows Explorer ou na linha de comandos, use o utilitário DCOMCNFG (Dcomcnfg.exe) para verificar a configuração. Para usar o utilitário DCOMCNFG, siga estes passos:

    Nota: se tiver o Oracle instalado, este procedimento poderá repor os valores e bloquear as contas de administrador e a conta de sistema.
    1. Clique em Start, clique em Run, escreva dcomcnfg e clique em OK.
    2. Clique no separador Default Security.
    3. Em Default Access Permissions, clique em Edit Default.
    4. Verifique as seguintes permissões de acesso predefinidas:
      • SYSTEM Allow Access
      • INTERACTIVE Allow Access
      • Administrators Allow Access
      Se algumas das entradas estiver em falta, clique em Add, clique na conta que pretende adicionar, clique em Add e clique em OK.

      Nota: também poderá ver uma conta para a conta de administrador do cluster. Esta conta faz parte do grupo de administradores. Por exemplo, se a conta de administrador do cluster tiver o nome CLUSADMIN, poderá ver CLUSADMIN Allow Access.
    5. Quando terminar, clique em OK.
    6. Em Default Launch Permissions, clique em Edit Default.
    7. Verifique as seguintes permissões:
      • SYSTEM Allow Launch
      • INTERACTIVE Allow Launch
      • Administrators Allow Access
      Se algumas das entradas estiver em falta, clique em Add, clique na conta que pretende adicionar, clique em Add e clique em OK.
    8. Quando terminar, clique em OK duas vezes.
    9. Se alterar as definições do utilitário DCOMCNFG, terá de terminar a sessão e iniciar nova sessão para obter as permissões de acesso.
  6. Em ambos os nós, pare o serviço MSDTC. Para o fazer, escreva o seguinte comando numa linha de comandos e prima ENTER:
    net stop msdtc
    Certifique-se de que é apresentada uma mensagem a indicar que o serviço MSDTC foi parado com êxito.
  7. Em ambos os nós, remova o MSDTC. Para o fazer, escreva o seguinte comando numa linha de comandos e prima ENTER:
    msdtc -uninstall
  8. Em ambos os nós, certifique-se de que o serviço Distributed Transaction Coordinator foi removido do snap-in Services. Para iniciar o snap-in Services, clique em Start, clique em Run, escreva services.msc e clique em OK.
  9. Instale o MSDTC com um recurso de cluster no nó activo e no nó passivo. Primeiro, instale o MSDTC no nó activo. Em seguida, instale-o no nó passivo. Para tal, siga estes passos:
    1. No nó activo, escreva o seguinte comando numa linha de comandos e prima ENTER:
      comclust
      Após a conclusão da execução do COM Cluster Wizard (Comclust.exe), retorna à linha de comandos. Não feche a linha de comandos.
    2. No nó passivo, escreva o seguinte comando numa linha de comandos e prima ENTER:
      comclust
      Após a conclusão da execução do COM Cluster Wizard, retorna à linha de comandos.
    3. Feche a linha de comandos no nó passivo. Têm de fechar a linha de comandos primeiro no nó passivo.
    4. Feche a linha de comandos no nó activo.
    Para obter informações adicionais sobre como instalar o MSDTC como um recurso de cluster num ambiente do Windows 2000, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    290624  (http://support.microsoft.com/kb/290624/ ) How to configure MSDTC in a Windows 2000 cluster environment
  10. Certifique-se de que não são apresentadas mensagens de erro e de que o serviço MSDTC está instalado. Além disso, certifique-se de que o recurso MSDTC é adicionado ao grupo do cluster.

    Nota: se receber a seguinte mensagem de erro, reinicie todos os nós e, em seguida, tente efectuar o passo 9 novamente:

    C:\Documents and Settings\Administrator>comclust Setting up MS DTC. Setup found that the current configuration of the cluster does not contain any resource groups in which the MS DTC resource can be created. Setup of MS DTC requires that the cluster contain at least one resource group that contains both a network name resource and a shared disk resource. Setup also requires that this resource group be owned by the first node in the cluster on which setup is run. Please re-run setup after the appropriate changes to the cluster configuration have been made.
  11. Certifique-se de que o recurso de cluster MSDTC está a funcionar correctamente. Para o fazer, tente o seguinte:
    1. Verifique se consegue mover o grupo do cluster de um nó para o outro, e novamente para o primeiro.
    2. Verifique se consegue executar o snap-in Component Services sem erros. Para o fazer, clique em Start, aponte para Programs, aponte para Administrative Tools e clique em Component Services. No snap-in Component Services, expanda Component Services, expanda Computers, expanda My Computer e expanda COM+ Applications.
    3. Utilize o Event Viewer para procurar mensagens de erro relacionadas no registo de eventos do sistema e no registo de eventos de aplicações.

Referências

Para obter informações adicionais sobre o MSDTC como um recurso de cluster, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
305742  (http://support.microsoft.com/kb/305742/ ) You may receive error messages when you start MSDTC on a node of a cluster server
296313  (http://support.microsoft.com/kb/296313/ ) Setup fails when MS DTC is not configured as a cluster resource
301600  (http://support.microsoft.com/kb/301600/ ) Como configurar o coordenador de transacções distribuídas da Microsoft num cluster do Windows Server 2003

A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Advanced Server
Palavras-chave: 
kbclustering kberrmsg kbtshoot kbprb KB867520