Colega, eu penso que o problema NÂO É o fato do banco remoto estar no Windows e o dblink estar no Solaris, pra mim o que houve é que alguém mexeu em config (por exemplo, global_names), e/ou permissões lá no banco remoto para o schema com o qual vc conecta no dblink : inclusive, um ponto-chave na minha análise é a msg :
ORA-04052: error occurred when looking up remote object ou seja, o banco NÃO consegue localizar o objeto que a procedure referencia lá no banco remoto : o fato de vc poder fazer SELECT com o objeto remoto MAS não poder usar ele numa procedure indica que talvez antes havia um GRANT direto desse objeto para o usuário do dblink, e hoje não há mais, algo do tipo... Sugestão : crie um NOVO dblink no banco-origem (solaris), conectando com um OUTRO usuário nesse outro banco Windows de teste , se assegure que o usuáriodo dblink recebeu GRANT direto no objeto que vc quer acessar e crie no Solaris uma procedure simples fazendo aceso ao objeto, veja lá... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "eladba" <[EMAIL PROTECTED]> escreveu > > Caro amigo, > > infelizmente não é esta a solução. > > Já tentamos fazer isso mas o erro é o mesmo, ou seja, tanto em > sessões do sqlplus no servidor solaris do banco de dados, ou no > cliente, ou até mesmo no servidor windows, a situação é a mesma. > > Abaixo mostramos a mesma sessão sqlplus no servidor solaris fazendo > select na tabela que está dentro da procedure e o dblink, e logo em > seguida tentando compilar a procedure: > > SQL> select count(*) from [EMAIL PROTECTED]; > > COUNT(*) > ---------- > 1781 > > SQL> alter PROCEDURE schema.nome_procedure compile; > > Warning: Procedure altered with compilation errors. > > SQL> sho errors > > 81/1 PL/SQL: SQL Statement ignored > 96/1 PL/SQL: ORA-04052: error occurred when looking up remote > object > [EMAIL PROTECTED] > ORA-00604: error occurred at recursive SQL level 1 > ORA-03106: fatal two-task communication protocol error > ORA-02063: preceding line from NOME_DBLINK > > > Muito obrigada, > > Elaine > > --- Em oracle_br@yahoogrupos.com.br, "Arystydes" <arystydes@> > escreveu > > > > Valide a procedure no próprio banco, e não remotamente. > > > > ----- Original Message ----- > > From: eladba > > To: oracle_br@yahoogrupos.com.br ; [EMAIL PROTECTED] ; > [EMAIL PROTECTED] > > Cc: DTQ03 - Mônica > > Sent: Thursday, May 08, 2008 5:14 PM > > Subject: [oracle_br] ORA-03106 em dblink entre Solaris e Windows > > > > > > Boa tarde, pessoal. > > > > Temos dois bancos na versão 9.2.0.8, sendo que o banco de > produção está no servidor com Windows 2003 Server, e o banco de dados > de armazenamento da auditoria do produção está no Solaris 8. > > > > O dblink está no banco de dados do Solaris e tem um JOB no banco > de dados para ler os dados de algumas tabelas do banco de dados do > Windows, e atualizar as tabelas de auditoria e apagar as tabelas no > produção. Para esta tarefa existe uma PROCEDURE. > > > > PROBLEMA: Está tarefa estava funcionando bem, até que de uns dias > para cá o JOB começou a apresentar erro, percebemos então que a > PROCEDURE que faz a atualização estava invalida e ao validá-la > aparece a seguinte mensagem: > > > > PL/SQL: SQL Statement ignored > > PL/SQL: ORA-04052: error occurred when looking up remote object > > [EMAIL PROTECTED] > > ORA-00604: error occurred at recursive SQL level 1 > > ORA-03106: fatal two-task communication protocol error > > ORA-02063: preceding line from DBLINK > > > > Mas quando é acessado o DBLINK para teste via SQLPLUS fazendo, > por exemplo, SELECT COUNT(*) FROM [EMAIL PROTECTED] há o retorno > da consulta, portanto a conexão está funcionando. O erro aparece na > validação da PROCEDURE. > > > > Alguém já passou por isso e pode nos dar alguma dica? > > > > Detalhe, passamos a rotina exatamente como é para outro banco de > dados no Windows e voltou a funcionar. Ou seja, Windows X Windows > funciona, assim podemos dizer que o problema está entre Solaris X > Windows mesmo. > > > > Obrigada a todos, > > > > Elaine > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > >