ID do artigo: 839279 - Última revisão: terça-feira, 25 de agosto de 2009 - Revisão: 4.0
Você pode receber uma mensagem de erro 7391 no SQL Server 2000 quando você executa uma transação distribuída em um servidor vinculado após a instalação Windows Server 2003 ou Windows XP Service Pack 2
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.
Quando você executa uma transação distribuída em uma instância do SQL Server, poderá receber uma mensagem de erro semelhante à seguinte:
Servidor: Mensagem 7391, nível 16, estado 1, linha 1 A operação não pôde ser executada porque o provedor de banco de dados OLE 'SQLOLEDB' não pôde iniciar uma transação distribuída. [Provedor OLE/DB retornado mensagem: nova transação não pode se inscrever no coordenador de transação especificada.] Rastreamento de erro de OLE [provedor OLE/DB 'SQLOLEDB' ITransactionJoin::JoinTransaction retornado 0x8004d00a].
Esse problema pode ocorrer quando uma das seguintes condições for verdadeira:
Microsoft Windows Server 2003 ou Microsoft Windows XP Service Pack 2 (SP2) está instalado no computador que inicia a transação distribuída.
Microsoft Windows Server 2003 ou Microsoft Windows XP SP2 é instalado no computador remoto que esteja executando o Microsoft SQL Server 2000 e esse computador está vinculado ao computador que inicia a transação distribuída.
importante Esta seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Por isso, certifique-se que você execute essas etapas cuidadosamente. Para proteção adicional, fazer backup do registro antes de modificá-lo. Em seguida, você pode restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
322756
(http://support.microsoft.com/kb/322756/
)
Como fazer backup e restaurar o registro no Windows
Para contornar esse problema, execute estas etapas no Windows Server 2003 ou Windows XP SP2 instalado no computador:
Verifique se a conta Fazer logon como para o serviço MSDTC é a conta do Serviço de rede . Para fazer isso, execute as seguintes etapas:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , digite Services.msc e clique em OK .
Na janela serviços , localize o serviço Coordenador de transações distribuídas em nome no painel à direita.
Na coluna Fazer logon como , veja se a conta Fazer logon como é Serviço de rede ou Sistema Local .
Se a conta Fazer logon como Serviço de rede , vá para a etapa 2. Se a conta Fazer logon como conta do Sistema Local , continue com essas etapas.
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , digite cmd e, em seguida, clique em OK .
No prompt de comando, digite net stop msdtc para interromper o serviço MSDTC.
No prompt de comando, digite Msdtc ?uninstall para remover o MSDTC.
No prompt de comando, digite regedit para abrir o Editor do Registro.
No Editor do Registro, localize a seguinte chave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
chave do Registro.
Exclua essa chave.
Feche o Editor do Registro.
No prompt de comando, digite Msdtc ?install para instalar o MSDTC.
No prompt de comando, digite net start msdtc iniciar o serviço MSDTC.
Observe que a conta Fazer logon como para o serviço MSDTC é definida para Serviço de rede conta.
Habilite o MSDTC permitir que a transação de rede. Para fazer isso, execute as seguintes etapas:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , digite dcomcnfg.exe e, em seguida, clique em OK .
Na janela de Serviços de componente , expanda Serviços de componente , expanda computadores e, em seguida, expanda Meu computador .
Clique com o botão direito do mouse Meu computador e, em seguida, clique em Propriedades .
Na caixa de diálogo Propriedades de Meu computador , clique em Configuração de segurança na guia MSDTC .
Na caixa de diálogo Configuração de segurança , clique para selecionar a caixa de seleção Acesso DTC de rede .
Para permitir que a transação distribuída seja executada neste computador a partir de um computador remoto, clique para selecionar a caixa de seleção Permitir entrada .
Para permitir que a transação distribuída seja executada em um computador remoto deste computador, clique para selecionar Permitir saída caixa de seleção.
No grupo Comunicação de Gerenciador de transações , clique para selecionar a opção Sem autenticação necessária . Definir a Não autenticação necessária no cliente e sistemas remotos.
Na caixa de diálogo Configuração de segurança , clique em OK .
Na caixa de diálogo Propriedades de Meu computador , clique em OK .
Configure o Firewall do Windows para incluir o programa MSDTC e a porta 135 como uma exceção. Para fazer isso, execute as seguintes etapas:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , digite firewall.cpl e, em seguida, clique em OK
No Painel de controle , clique duas vezes em Firewall do Windows .
Na caixa de diálogo Firewall do Windows , clique em Adicionar programa na guia exceções .
Na caixa de diálogo Adicionar um programa , clique no botão Procurar e localize o arquivo MSDTC.exe. Por padrão, o arquivo é armazenado na < unidade de Instalação >: \Windows\System32 pasta.
Na caixa de diálogo Adicionar um programa , clique em OK .
Na caixa de diálogo Firewall do Windows , clique para selecionar a opção msdtc na lista programas e serviços .
Clique em Adicionar porta na guia exceções .
Na caixa de diálogo Adicionar uma porta , digite 135 na caixa de texto número da porta e, em seguida, clique para selecionar a opção TCP .
Na caixa de diálogo Adicionar uma porta , digite um nome para a exceção na caixa de texto nome e, em seguida, clique em OK .
Na caixa de diálogo Firewall do Windows , selecione o nome que você usou para a exceção na Etapa j na lista programas e serviços e, em seguida, clique em OK .
Teste de ping do servidor host para o servidor remoto e do servidor remoto para o servidor host, usando o nome de netbios (nome do servidor, sem o domínio). Microsoft Distributed Transaction Coordinator usa o nome netbios, não o nome de domínio totalmente qualificado, para localizar servidores. Se a resolução de nome falhar, transações distribuídas falhará. Se falhar pings usando o nome netbios, consulte o seguinte artigo da base de dados de Conhecimento:
172218
(http://support.microsoft.com/kb/172218/
)
Ordem de resolução de nomes de host do Microsoft TCP/IP
Efetuar logon um computador com Windows Server 2003 ou Windows XP SP2 instalado.
Início Query Analyzer.
Adicione um computador remoto que está executando o Microsoft SQL Server 2000 como um servidor vinculado. Para fazer isso, execute a seguinte instrução Transact-SQL no Query Analyzer:
EXEC sp_addlinkedserver '<remote_server>', N'SQL SERVER'
GO
Observação Substitua remote_server pelo nome do computador que deve ser configurado como servidor vinculado.
Execute uma transação distribuída entre este computador e o computador remoto. Para fazer isso, execute a seguinte instrução Transact-SQL no Query Analyzer:
SET xact_abort ON
GO
USE pubs
GO
BEGIN DISTRIBUTED TRANSACTION
SELECT * FROM <remote_server>.pubs.dbo.authors
COMMIT TRAN
GO
Você receberá a mensagem de erro mencionada na seção "Sintomas".
Para obter mais informações sobre como configurar o Windows XP Service Pack 2 para uso com o SQL Server 2000, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
841249
(http://support.microsoft.com/kb/841249/
)
Como configurar o Windows XP Service Pack 2 para uso com o SQL Server
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 839279
(http://support.microsoft.com/kb/839279/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.