lançar processo em background, via trigger da base de dados

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
JSLindo
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qui, 11 Jan 2007 2:10 pm
Localização: Covilha

Ola Pessoal.

Necessito de ajuda. Tenho varios triggers que executam accoes sempre que registos são inseridos ou alterados. Algumas destas acçoes demoram bastante tempo, bloqueando o utilizador temporariamente, quando grava os dados.

A ideia era ao executar o trigger, lançar um processo em backgroud com utilizador da base de dados, permitindo assim libertar de imediato o utilizador que esta a gravar dados.
O processo lançado em backgroud pode ser executado varios segundos depois, dado que não tem reflexo na accao de gravação do utilizador que efectuou o insert ou Update.

Desde de já agradeço qualquer ajuda desta questão
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Uma das formas mais faceis de fazer isso é usar JOBS.
Na sua trigger, execute um JOB com o que você quiser rodar. Logo após, exclua o JOB.

Lembre-se que o JOB é outra sessão, por isso, talvez ele não "enxergue" o que você está alterando e ainda não comitou.

Isso normalmente é feito para tarefas demoradas, exemplo: quando o usuário clica em um BOTÃO. Daí, libera na hora a execução. Em uma trigger, eu teria muito cuidado, justamente por causa de ser uma sessão diferente.
Responder
  • Informação