Ir para conteúdo

Arquivado

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

JRFOL

Problemas com linked server

Recommended Posts

Estou com dois server SQL Server 2005 Express linkados.... se eu mando inserir dados de um servidor no outro ele inseri normalmente, mas se eu criar um trigger para fazer essa inserção ele da erro:

 

OLE DB provider "SQLNCLI" for linked server "acesso\sqlexpress" returned message "O gerenciador de transações de parceiros desativou seu suporte a transações remotas/de rede.".

Msg 7391, Level 16, State 2, Procedure registra_credencial, Line 4

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

 

a trigger esta assim:

 

CODE
create trigger registra_credencial on cartao

for insert

as

insert [acesso\sqlexpress].rbacesso_v100.dbo.credenciais cred_numero,cred_areanomomento,crti_numero)

select cartao,'1','2' from inserted

o link funciona, quando eu mando esse comando ele roda normalmente

CODE
insert [acesso\sqlexpress].rbacesso_v100.dbo.credenciais (cred_numero,cred_areanomomento,crti_numero)

select cartao,'1','2' from cartao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de reconfigurar o MSDTC a msg de erro mudou, agora esta:

 

(1 row(s) affected)

OLE DB provider "SQLNCLI" for linked server "acesso\sqlexpress" returned message "A transação já foi implicitamente ou explicitamente confirmada ou anulada".

Msg 7391, Level 16, State 2, Procedure registra_credencial, Line 4

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema realmente nao eh com sua trigger, mas sim com seu linked server. Ele esta conf. corretamente?! o usuario do linked tem permissao de leitura e escrita?!

 

Ah, este fix pode lhe ajudar tb

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

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema realmente nao eh com sua trigger, mas sim com seu linked server. Ele esta conf. corretamente?! o usuario do linked tem permissao de leitura e escrita?!

 

Ah, este fix pode lhe ajudar tb

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

 

Abçs

pelo oq eu chequei o usuario que estou usando no linked server esta com todas as autorizações disponiveis no outro servidor...

tem alguma (em algum ponto) que eu precise conferir ?

 

se eu mandar executar

CODE
insert [acesso\sqlexpress].rbacesso_v100.dbo.credenciais (cred_numero,crti_numero)

select cartao,'2' from cartao

os dados são enviados para o servidor, mas qdo o esse comando é executado pela trigger da o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao JRFOL,

 

geralmente este carinha aqui "SQLNCLI" dah erro msm, você tem todos os sps instalados no server? No link que te mandei, tem as versoes mais atuais dele. Como ele eh um driver, pode estar nele o problema. você tentou fazer uma trigger soh com este comando?

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao JRFOL,

 

geralmente este carinha aqui "SQLNCLI" dah erro msm, você tem todos os sps instalados no server? No link que te mandei, tem as versoes mais atuais dele. Como ele eh um driver, pode estar nele o problema. você tentou fazer uma trigger soh com este comando?

abçs

no link q você mando para pegar o hotfix precisa solicitar para a microsoft... ja pedi...

no caso do problema ser no SQLNCLI seria no servidor que esta executando a trigger para acessar o BD ou no servidor que esta o BD ?

"estou usando o SQL Server 2005 Express SP2"

a trigger é só esse comando que coloquei a cima... a unica coisa é que ela pega os dados na hora do inserted...

 

Caso ajude em algo, as versões instaladas são:

 

SERVIDOR QUE ESTA RODANDO A TRIGGER

Microsoft SQL Server Management Studio Express 9.00.2047.00

Microsoft Data Access Components (MDAC) 2000.086.1830.00 (srv03_sp1_rtm.050324-1447)

Microsoft MSXML 2.6 3.0 6.0

Microsoft Internet Explorer 6.0.3790.1830

Microsoft .NET Framework 2.0.50727.42

Operating System 5.2.3790

 

 

SERVIDOR QUE ESTA COM O BD ACESSADO PELA TRIGGER

Microsoft SQL Server Management Studio Express 9.00.3042.00

Microsoft Data Access Components (MDAC) 2000.086.3959.00 (srv03_sp2_rtm.070216-1710)

Microsoft MSXML 2.6 3.0 6.0

Microsoft Internet Explorer 6.0.3790.3959

Microsoft .NET Framework 2.0.50727.1433

Operating System 5.2.3790

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema no driver pode estar em uma das pontas, tanto no server q esta acessando o db qto no server q esta o db.

Li em outros artigos e a maioria fala a msm coisa: "refaça o linked server com outro usuario".

Nunca tive este problema e nem parecido. Tentei simular este erros no meu pc e nos meus servers de desenvolvimento, mas nao dah o erro hehehe

 

http://groups.google.com/group/microsoft.p...9097e07c50782fa

 

se nao funcionar, temos que recorrer ao google

http://www.google.com.br/search?hl=pt-BR&a...&meta=lr%3D

 

Infelizmente nao sei como lhe ajudar =\ jah que nem o erro estou conseguindo gerar.

Tenta refazer o linked com um usuario sysadm ^^

 

absç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda...

Vi agora que o Servidor que roda a trigger não esta com o SP2 do Windows.... vo instalar pra ver se pode ser esse o problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

problema resolvido.... instalei o SP2 no servidor que esta rodando as triggers, depois reconfigurei o MSDTC ai rodo normal...

 

 

muito obrigado pela ajuda JUS2KA, agora esta tudo funcionando, posso dar continuidade ao meu trabalho... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

 

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew. Acabou a novela mexicana hehehehe

Que bom que funcionou cara. Mantenha sempre seu server atualizado. Qq duvida poste que a gente tenta ajudar (ou atrapalhar, o que importa eh marcar presença rs)

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew. Acabou a novela mexicana hehehehe

Que bom que funcionou cara. Mantenha sempre seu server atualizado. Qq duvida poste que a gente tenta ajudar (ou atrapalhar, o que importa eh marcar presença rs)

 

abçs

fala jus2ka... um novo capitulo para a novela... rs

 

Depois de um tempo sem usar a tabela que roda a trigger, quando volto a usar (fazer um novo cadastro) ele da o erro:

OLE DB provider "SQLNCLI" for linked server "acesso\sqlexpress" returned message "A transação já foi implicitamente ou explicitamente confirmada ou anulada".

Msg 7391, Level 16, State 2, Procedure registra_credencial, Line 4

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

 

mas ai clico OK e mando salvar o cadastro novamente ai vai normal, e fica normal nos proximos cadastros... mas depois de um tempo sem usar, quando vai usar de novo volta a fazer o mesmo... erro... clica OK, manda de novo e vai.....

alguma ideia ?... :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala JRFOL

 

Ideias?! Variasssssss mas vamos por partes hehehe http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Como você msm disse antes, precisava instalar um service pack, sera que nao tem mais algum faltando? A maquina esta atualizada? No sqlprofiler, você consegue ver alguma lentidao? Como esta o processamento do server qdo você roda esta trigger? Tem mais algum processo em conflito?! o link entre os dois servidores esta ok? tem perda de pacote?

 

ufa, acho que isso é pra começar.

 

lentidão ou erros como o seu são muitos amplos e podem ter varias causas. Postei alguns links em outro post, ve se eles te ajudam ^^

 

Seu processo eh bem simples para te dar uma dor de cabeça tao grande.

 

Qq coisa posta aki.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala JRFOL

 

Ideias?! Variasssssss mas vamos por partes hehehe http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Como você msm disse antes, precisava instalar um service pack, sera que nao tem mais algum faltando? A maquina esta atualizada? No sqlprofiler, você consegue ver alguma lentidao? Como esta o processamento do server qdo você roda esta trigger? Tem mais algum processo em conflito?! o link entre os dois servidores esta ok? tem perda de pacote?

 

ufa, acho que isso é pra começar.

 

lentidão ou erros como o seu são muitos amplos e podem ter varias causas. Postei alguns links em outro post, ve se eles te ajudam ^^

 

Seu processo eh bem simples para te dar uma dor de cabeça tao grande.

 

Qq coisa posta aki.

 

Abçs

Estou observando o processo, mas acredito que o problema parou...

 

aproveitando... tira uma duvida...

 

como faço uma trigger para atualização ?

quando atualizar o campo de uma tabela ele atualizar o campo da outra tabela.......

 

CODE
create trigger atuasit on aluno

for update

as

......................

aqui ele teria q fazer: update pessoas set sit = aluno.sit (como montar essa expressão na trigger usando a tabela insert ?)

vlws.....

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.