locked
New transaction cannot enlist in the specified transaction coordinator RRS feed

  • Pergunta

  • Pessoal, preciso de um help.

    Tenho um ambiente em produção que usa LinkedServer com uma outra base em um servidor de replicação.

    Montei um ambiente em desenvolvimento e apontei o linked server para o proprio servidor, no lkd consigo acessar todas as atbelas do banco alvo. O problema começa quando envolve uma transação. Meu windows é um server 2003 SP2 com o SQL 2000 sp4, já vi as opções do component service é estão OK. Esta transação funcionava ontem, e hoje deixou de funcionar.

    O erro que dá é :

    Server: Msg 7391, Level 16, State 1, Procedure P_RPL_GERA_GUIAMOVIMENTO3, Line 25
    The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
    [OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
    OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

    OBS. Já verifiquei o firewall tb e não é.
    E já configurei o MSDTC para permitir acesso a rede.

    HELP!!!!

    terça-feira, 23 de setembro de 2008 18:55

Todas as Respostas

  • Diogo,

     

    A mensagem de erro que esta sendo retornada, esta informando que a Stored Procedure P_RPL_GERA_GUIAMOVIMENTO3, esta com um erro na página 25.

     

    Você já verificou como esta stored procedure?

    terça-feira, 23 de setembro de 2008 19:26
    Moderador
  • Junior,

    Já verifiquei sim, a procedure está correta. E está rodando no ambiente de produção. Rodei até um comprare para ver se existia alguma diferença e nada. Esiste alguma restrição de um Linked server chamar o proprio servidor, sei lá, já estou sem idéias aqui!! =(
    terça-feira, 23 de setembro de 2008 19:45
  • Olá Diogo,

     

    Na verdade a origem deste problema é um poço sem fundo dado a infinidade de possibilidades que existem http://support.microsoft.com/kb/306212. A mais simples e comum delas é a falta de correta configuração do MSDTC e do componente do Windows "Network DTC Access".

     

    Vc já verificou se o DTC está corretamente configurado? Configurou o MSDTC em ambos os nós?

    http://support.microsoft.com/kb/817064

    http://support.microsoft.com/default.aspx?scid=kb;en-us;329332

     

    Depois que vc tiver certeza que o DTC está corretamente instalado e configurado em ambos os nós (não esqueça do restart), vc pode fazer testes fazendo um simples SELECT entre os nós

     

    BEGIN DISTRIBUTED TRANSACTION

    SELECT * FROM [LINKEDSERVER].master.dbo.sysusers

    COMMIT DISTRIBUTED TRANSACTION

     

    Caso o erro continue, vc pode usar o utilitário DTCPING para ajudar na identificação do problema. http://support.microsoft.com/kb/918331/en-us

     

    Caso o problema continue retorne e post aqui possíveis outros erros.... veja no errorlog do SQL Server se existe algum outro erro.

     

    Um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

     

     

    sábado, 4 de outubro de 2008 02:44
    Moderador