none
Linked Server RRS feed

  • Pergunta

  •  

    Olá,

     

    Tenho um problema com o um linked server que as vezes dá o seguinte erro:

    Server: Msg 7391, Level 16, State 1, Procedure pr_Regerana, Line 42
    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].

     

     

    Já verifiquei o serviço MSDTC e ele está no ar e do servidor que utiliza o linked tambem, já verifiquei os service packs do windows no servidor e estão ok também.

    Essas foram as duas soluções que encontrei pesquisando na internet.

     

    Alguém sabe o que mais posso fazer para resolver esse problema?

     

     

    Obrigada

    • Movido Gustavo Maia Aguiar segunda-feira, 28 de setembro de 2009 20:38 (De:SQL Server - Desenvolvimento Geral)
    segunda-feira, 22 de setembro de 2008 18:59

Todas as Respostas

  • Jeruiva,

     

    Este linked server que você esta tentando utilizando é entre duas instâncias SQL Server?

    segunda-feira, 22 de setembro de 2008 20:11
    Moderador
  • Boa Tarde,

     

    Você pode pesquisar aqui no fórum. Digitando MSDTC no fórum de SQL Server Geral são encontradas 57 entradas referentes ao MSDTC e eu me lembro de já ter feitos as minhas considerações sobre essa dúvida em posts anteriores.

     

    [ ]s,

     

    Gustavo

    segunda-feira, 22 de setembro de 2008 20:23
  • Ambos são sql server 2000

    terça-feira, 23 de setembro de 2008 13:54
  • Jeruiva,

     

    Você esta conseguindo se comunicar entre estes servidores, fora do SQL Server?

    terça-feira, 23 de setembro de 2008 14:28
    Moderador
  • Jeruiva,

    Coloque o seguinte coidgo na sua procedure.

    ALTER PROCEDURE
    pr_Regerana
    AS
    SET XACT_ABORT ON
    BEGIN DISTRIBUTED TRANSACTION
    --- SEU CODIGO
    COMMIT TRAN
    SET XACT_ABORT OFF


    Ou pelo menos coloque esse codigo entre as operações de INSERT, UPDATE E DELETE.

    Espero ter ajudado!
    quarta-feira, 24 de setembro de 2008 23:21
  • Jeruiva,

    Coloque o seguinte coidgo na sua procedure.

    ALTER PROCEDURE
    pr_Regerana
    AS
    SET XACT_ABORT ON
    BEGIN DISTRIBUTED TRANSACTION
    --- SEU CODIGO
    COMMIT TRAN
    SET XACT_ABORT OFF


    Ou pelo menos coloque esse codigo entre as operações de INSERT, UPDATE E DELETE.

    Espero ter ajudado!
    Pessoal,

    Estou com um problema relacionado a begin tran usando linked server, e acredito ser o mesmo citado nesse topico.
    Eu utilizei o set xact_abort on e funcionou em partes.
    Deixa eu explicar, eu acredito que o problema esteja relacionado a configuração de rede.
    Pois em meu ambiente cluster com 2 nós, eu consigo fazer as chamadas entre eles sem problemas, mas o problema é quando eu quero fazer uma chamada de uma das instancias em cluster para um outro servidor stand alone.
    Quando eu coloco dentro do begin tran um select funciona perfeitamente, mas ao tentar dar um insert ou update da erro:

    The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "192.168.0.xxx" was unable to begin a distributed transaction.


    Quando eu falo que o problema está relacionado a rede é porque esse meu outro servidor stand alone está na subrede 0 (192.168.0.xxx) e meu servidor em cluster está na subrede 1 (192.168.1.xxx).
    Eu fiz um teste com outro servidor que também está na subrede 1 e funcionou.
    Mas o problema é que nao posso alterar o IP desse meu servidor.
    Voces sabem se essa configuração que estou querendo funciona ?

    Grato

    Bruno Henrique.

    segunda-feira, 28 de setembro de 2009 15:11
  • Bruno,

    Verifique as configuracoes do MSDTC entre os dois servers (tive um problema parecido, em um dos MSDTC faltou marcar a opcao XACT e allow inbound e outbound)

    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 28 de setembro de 2009 16:03
    Moderador
  • ola MArcelo,

    MSDTC ja esta configurado, nao é esse o problema.

    Grato
    segunda-feira, 28 de setembro de 2009 16:16
  • Bruno,

    Então como você esta afirmando que o MSDTC não é o problema!!!!

    Na sua opinião o poderia estar ocorrendo o seu ambiente?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 28 de setembro de 2009 23:38
    Moderador
  • Bruno,

    Então como você esta afirmando que o MSDTC não é o problema!!!!

    Na sua opinião o poderia estar ocorrendo o seu ambiente?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA

    Ola Junior,

    Eu apenas gostaria de saber se esse fato de meus servidores estarem em redes diferentes atrapalha em alguma coisa, pois como eu disse eu só consegui fazer funcionar quando coloquei o servidor na mesma rede.

    Grato
    terça-feira, 29 de setembro de 2009 11:42
  • Bruno,

    Pode atrapalhar sim, isso vai depender da configuração das suas redes!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 29 de setembro de 2009 12:59
    Moderador
  • Ok Junior, tenho quase certeza que é problema de rede.
    Mas tranquilo, eu vou ver o que faço.
    Desde já agradeço a todos pela atenção.

    Abcs

    Bruno
    terça-feira, 29 de setembro de 2009 13:07