Editar / Prefácio: Esta questão foi migrada do SO, pois estou particularmente interessado na questão de tempos limite nas consultas de link do banco de dados. A solução fornecida pela SO é um tanto aceitável, mas estou realmente interessado na pergunta em si.
Motivação:
tive uma consulta em execução "para sempre" (mais de 2 dias, até que eu encerrei a sessão), que estava usando um link de banco de dados. O problema parecia ser que o banco de dados remoto ficou indisponível e, por algum motivo ainda desconhecido, não ORA-02068
foi levantado (não deve ser discutido aqui) e a consulta apenas aguardou.
(A consulta é emitida por um trabalho dbms_scheduler, que executa um procedimento em um pacote PL / SQL. Como conseqüência, o trabalho também foi interrompido. Mas isso não é de interesse especial para o núcleo desta questão)
Simulei essa situação colocando um dos meus bancos de dados de teste no modo quiesce e consultei-o em um link de banco de dados. Conforme previsto, a consulta estava aguardando até que o cancelamento manual ou o banco de dados remoto não fossem acionados.
Pergunta:
Não tenho controle sobre o comportamento e o tempo de atividade do banco de dados remoto; portanto, estou em busca de alguma possibilidade de definir um tempo limite em uma consulta que esteja usando um link de banco de dados.
Eu já examinei perfis ( CPU_PER_CALL
etc), sqlnet.ora
parâmetros, adicionando parâmetros de nomenclatura local diretamente à string de conexão (como adicionar (connect_timeout=10)
à definição de link do banco de dados), executando um comando com ... for update wait 1
, mas eles funcionam em sessões ocupadas ou inativas, mas não para sessões em espera.
Portanto, estou procurando alguma opção no lado "local" do link do banco de dados, que define um tempo limite para consultas nos links do banco de dados.
Alguma solução como alter session set xyz
ou select ... from a@b "wait 100" --(yes, I know this syntax doesn't exist)
seria apreciada, pois não tenho direitos de DBA nesses bancos de dados específicos.
Atualmente, estou em 10gR2, mas atualizo para 11gR2 em algumas semanas, portanto, idéias para qualquer uma dessas versões serão úteis.