Artigo: 839279 - Última revisão: terça-feira, 25 de Agosto de 2009 - Revisão: 4.0
Poderá receber uma mensagem de erro 7391 no SQL Server 2000 quando executa uma transacção distribuída num servidor ligado depois de instalar 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 executa uma transacção distribuída uma instância do SQL Server, poderá receber uma mensagem de erro semelhante à seguinte:
Servidor: Erro 7391, nível de 16, estado 1, linha 1 Não foi possível executar a operação porque o fornecedor de OLE DB 'SQLOLEDB' não conseguiu iniciar uma transacção distribuída. [Fornecedor OLE/DB devolvida a mensagem: nova transacção não é possível efectuar a inscrição no coordenador de transacções especificado.] Rastreio de erro de OLE DB [fornecedor de OLE/DB 'SQLOLEDB' ITransactionJoin::JoinTransaction devolvido 0x8004d00a].
Este problema poderá 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 transacção distribuída.
Microsoft Windows Server 2003 ou Microsoft Windows XP SP2 é instalado no computador remoto com o Microsoft SQL Server 2000 em execução e esse computador está ligado ao computador que inicia a transacção distribuída.
Este problema ocorre devido a um ou mais das seguintes razões:
Coordenador de transacções distribuídas da Microsoft (MSDTC) está desactivada para transacções de rede.
Firewall do Windows está activado no computador. Por predefinição, o Firewall do Windows bloqueia o Microsoft Distributed Transaction Coordinator (MSDTC) programa.
Nota Este problema pode ocorrer mesmo quando Windows Firewall está desactivado.
importante Esta secção, método ou tarefa contém passos que indicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo de forma incorrecta. Por conseguinte, certifique-se de que segue estes passos cuidadosamente. Criar uma para protecção adicional, cópia de segurança do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
322756
(http://support.microsoft.com/kb/322756/
)
Como efectuar uma cópia de segurança e restaurar o registo no Windows
Para contornar este problema, siga estes passos no computador que o Windows Server 2003 ou Windows XP SP2 está instalado:
Certifique-se a conta Iniciar sessão como para o serviço MSDTC está a conta do Serviço de rede . Para o fazer, siga estes passos:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , escreva Services.msc e, em seguida, clique em OK .
Na janela Serviços , localize o serviço Coordenador de transacções distribuídas em nome no painel da direita.
Na coluna Log On As , ver se a conta Iniciar sessão como é Serviço de rede ou Sistema Local .
Se a conta Iniciar sessão como Serviço de rede , avance para o passo 2. Se a conta Iniciar sessão como conta Sistema Local , continue com estes passos.
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , escreva cmd e, em seguida, clique em OK .
Na linha de comandos, escreva net stop msdtc para parar o serviço MSDTC.
Na linha de comandos, escreva Msdtc ?uninstall para remover o MSDTC.
Na linha de comandos, escreva regedit para abrir o Editor de registo.
No Editor de registo, localize a seguinte chave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
chave do registo.
Elimine esta chave.
Saia do Editor de registo.
Na linha de comandos, escreva MSDTC ?install para instalar o MSDTC.
Na linha de comandos, escreva net start msdtc iniciar o serviço MSDTC.
Note que a conta Iniciar sessão como para o serviço MSDTC está definida como Serviço de rede conta.
Active o MSDTC permitir que a transacção de rede. Para o fazer, siga estes passos:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , escreva dcomcnfg.exe e, em seguida, clique em OK .
Na janela Serviços de componentes , expanda Serviços componentes , expanda computadores e, em seguida, expanda o Meu computador .
Clique com o botão direito do rato em Meu computador e, em seguida, clique em Propriedades .
Na caixa de diálogo Os meus propriedades do computador , clique em Configuração de segurança no separador MSDTC .
Na caixa de diálogo Configuração de segurança , clique para seleccionar a caixa de verificação de Acesso ao DTC na rede .
Para permitir que a transacção distribuída executar este computador a partir de um computador remoto, clique para seleccionar a caixa de verificação Permitir entrada .
Para permitir que a transacção distribuída executar num computador remoto a partir deste computador, clique para seleccionar Permitir saída seleccione caixa.
Em grupo de Comunicação do Gestor de transacções , clique para seleccionar a opção Não é necessário autenticação . Definir Sem autenticação necessário o cliente e sistemas remotos.
Na caixa de diálogo Configuração de segurança , clique em OK .
Na caixa de diálogo Os meus propriedades do computador , clique em OK .
Configurar Firewall do Windows para incluir o programa MSDTC e para incluir a porta 135 como uma excepção. Para o fazer, siga estes passos:
Clique em Iniciar e, em seguida, clique em Executar .
Na caixa de diálogo Executar , escreva firewall.cpl e, em seguida, clique em OK
No Painel de controlo , faça duplo clique em Firewall do Windows .
Na caixa de diálogo Firewall do Windows , clique em Adicionar programa no separador excepções .
Na caixa de diálogo Adicionar um programa , clique no botão Procurar e, em seguida, localize o ficheiro MSDTC.exe. Por predefinição, o ficheiro é armazenado na < Instalação unidade >: \Windows\System32 pasta.
Na caixa de diálogo Adicionar um programa , clique em OK .
Na caixa de diálogo Firewall do Windows , clique para seleccionar a opção de msdtc na lista programas e serviços .
Clique em Adicionar porta no separador excepções .
Na caixa de diálogo Adicionar uma porta , escreva 135 na caixa de texto número da porta e, em seguida, clique em para seleccionar a opção TCP .
Na caixa de diálogo Adicionar uma porta , escreva um nome para a excepção na caixa de texto Nome e, em seguida, clique em OK .
Na caixa de diálogo Firewall do Windows , seleccione o nome que utilizou para a excepção no passo j lista de programas e serviços e, em seguida, clique em OK .
Teste ping do servidor anfitrião para o servidor remoto e do servidor remoto no servidor anfitrião, utilizando o nome de netbios (sem o domínio, nome do servidor). Coordenador de transacções distribuídas da Microsoft utiliza o nome de netbios e não o nome de domínio totalmente qualificado, para localizar servidores. Se a resolução de nomes falhar, transacções distribuídas falhará. Se falhar a pings utilizando o nome de netbios, consulte o seguinte artigo da base de dados de conhecimento:
172218
(http://support.microsoft.com/kb/172218/
)
Microsoft TCP/IP Host nome resolução encomenda
Inicie sessão no computador com o Windows Server 2003 ou Windows XP SP2 instalado.
Início Query Analyzer.
Adicione um computador remoto com o Microsoft SQL Server 2000 como um servidor ligado. Para o fazer, execute a seguinte instrução Transact-SQL no Query Analyzer:
EXEC sp_addlinkedserver '<remote_server>', N'SQL SERVER'
GO
Nota Substitua o nome do computador que tem de ser configurado como o servidor ligado remote_server.
Executa uma transacção distribuída entre este computador e o computador remoto. Para efectuar este procedimento, execute a seguinte instrução Transact-SQL no analisador de consultas:
SET xact_abort ON
GO
USE pubs
GO
BEGIN DISTRIBUTED TRANSACTION
SELECT * FROM <remote_server>.pubs.dbo.authors
COMMIT TRAN
GO
Poderá receber a mensagem de erro mencionada na secção "Sintomas".
Para obter mais informações sobre como configurar Windows XP Service Pack 2 para utilização com o SQL Server 2000, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
841249
(http://support.microsoft.com/kb/841249/
)
Como configurar o Windows XP Service Pack 2 para utilização 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.