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
lançar processo em background, via trigger da base de dados
- dr_gori
- 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
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.
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.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante