Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NoFxPT

SQL: Distributed Transaction

Recommended Posts

Boas,Tenho o SQL Server 2000 SP4 e estou a tentar através um linked server a apontar para AS400 (DB2), e por intermédio de um trigger, ao fazer o insert numa tabela em SQL, ele fazer esse mesmo insert em AS400. No entanto deparo-me com o seguinte erro:Server: Msg 7391, Level 16, State 1, Procedure INSERT_WMCS01F, Line 18The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction.[OLE/DB provider returned message: [iBM][iSeries Access ODBC Driver]Enlist with DTC phase failed. 2]OLE DB error trace [OLE/DB Provider 'MSDASQL' ITransactionJoin::JoinTransaction returned 0x8004d00a].Após ter investigado em busca de soluções, e ter encontrado algo sobre configurações do DTC e por aí fora verifiquei que está tudo em ordem. Se alguém puder ajudar agradecia...Cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,Realmente o post desafiador.Não tem experiência com linke server com AS400 mas vamos levantar uns questionamentos q talvez possa iniciar esta discussão.A questão de permissão e acesso ao AS400 tá ok?Existem algum firewall?A rede do server linkado é a msm sua ou esta em outra rede.Seu SQL esta instaldo com os Services Pack´s ?t+

Boas,Tenho o SQL Server 2000 SP4 e estou a tentar através um linked server a apontar para AS400 (DB2), e por intermédio de um trigger, ao fazer o insert numa tabela em SQL, ele fazer esse mesmo insert em AS400. No entanto deparo-me com o seguinte erro:Server: Msg 7391, Level 16, State 1, Procedure INSERT_WMCS01F, Line 18The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction.[OLE/DB provider returned message: [iBM][iSeries Access ODBC Driver]Enlist with DTC phase failed. 2]OLE DB error trace [OLE/DB Provider 'MSDASQL' ITransactionJoin::JoinTransaction returned 0x8004d00a].Após ter investigado em busca de soluções, e ter encontrado algo sobre configurações do DTC e por aí fora verifiquei que está tudo em ordem. Se alguém puder ajudar agradecia...Cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

conexao em ordem, permissoes tmb, firewall desligada, tenho o service pack 4 do sql 2000

 

no entanto depois de verificar em varios sites creio q o problema esta no provider DB2OLEDB...

 

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

 

Esse é exactamente o erro q tenho ao fazer query (um select *) à base de dados atraves do linked server

ai diz para fazer download do SNA Server 4.0 Service Pack 4 mas nao consigo encontrar pois o link da microsoft n esta a funcionar

se alguem me puder ajudar a encontra lo agradecia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

já peguei um problema assim.... uma m@#$@$# isso cara... mas vamos lá.

 

instale:

http://www.microsoft.com/downloads/details...;DisplayLang=en

 

reinicie e instale:

http://support.microsoft.com/kb/215838/pt-br

 

Instale o SP4

 

Se mesmo assim não resolver, de 3 pulinhos e clique aqui:

http://support.microsoft.com/search/defaul...r&cus=False

 

Bom, eh isso...

qq coisa eh soh postar

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou tentando fazer uma transação distribuida (begin ditributed transaction) mas ao iniciar a query com ela não me retorna a conclusão do passo, e depois de algun minutos de query rodando ela trava o servidor q estou utilizando, apenas o q utilizo para executar a query, sendo ele um dos envolvidos na transação, o outro servidor não acontece nada, não trava.

 

o ms dtc esta ligado nos dois servidores e configurado.

 

alguém tem alguma ideia o q pod ser?

 

ah eu utilizo o sql server 2000 sp4 e windows 2000 sever

SET XACT_ABORT ONBEGIN DISTRIBUTED TRANSACTION INSERT INTO ADM2.ARH.DBO.TB_TRABALHO_RH					 (NOM_RECURSO,COD_RH) SELECT #NOM_RECURSO,#COD_RH   FROM #INSERT_SITUACAO  WHERE #NOM_RECURSO IS NOT NULL	AND #COD_RH IS NOT NULLIF (@@ERROR<>0) BEGIN   ROLLBACK TRANSACTION ENDINSERT INTO ADM1.DBC.DBO.TB_TRABALHO_RH					   (NOM_RECURSO,COD_RH) SELECT #NOM_RECURSO,#COD_RH   FROM #INSERT_SITUACAO  WHERE #NOM_RECURSO IS NOT NULL	AND #COD_RH IS NOT NULLIF (@@ERROR<>0) BEGIN   ROLLBACK TRANSACTION ENDCOMMIT TRANSACTION DROP TABLE #INSERT_SITUACAODROP TABLE #ERROS_SITUACAORETURN
OBS.: os tabelas temporárias foram criadas antes, e o cod sql é executado sem o begin distributed transaction

Compartilhar este post


Link para o post
Compartilhar em outros sites

já sim executei e atualizei o servidor (lembrando q o meu servidor eh windows 2000 sp4) será que o problema pod ser por meus servidores estarem sendo executados em maquinas virtuais e elas não estão registrados na rede, a maquina real q executa ambos possui o windows 2003 server. E será que se na real o firewall estiver ativado, influencia para o erro tbmvlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.