Olá,
Recentemente um membro do forum OTN postou um estranho problema (ver a thread Jobs don't running automatically) relacionado à execução de tarefas usando o pacote DBMS_JOB no Oracle 9i. Apesar do parâmetro job_queue_processes estar setado corretamente com um valor maior que zero, os novos JOBS criados não eram executados automaticamente. De acordo com o Note:313102.1 do Oracle Metalink que mostra algumas ações que devem realizadas para poder solucionar o problema, e segundo note, este problema foi reportado na versão Oracle Server - Enterprise Edition - Version: 9.2.0.4.0.
No caso do problema referente à thread, o problema só foi resolvido quando o servidor foi reiniciado e isso porque segundo o note, se o servidor estiver no ar ininterruptamente por mais de 497 dias (UPTIME > 497 days), então haverá a possibilidade de que os JOBS não sejam executados automaticamente (bug 3427424).
A novidade é que me deparei com este problema também na versão Oracle Database 10g Enterprise Edition Release 10.1.0.2.0, e apesar de o banco de dados estar funcionando perfeitamente e os JOBS agendados estarem automaticamente sendo executados, novos JOBS que fossem JOBS criados não eram executados automaticamente. Além do mais, mesmo que executasse o procedimento DBMS_JOB.RUN para executar o JOB, o mesmo era agendado para a próximo horário, mas não era executado automaticamente.
A novidade é que me deparei com este problema também na versão Oracle Database 10g Enterprise Edition Release 10.1.0.2.0, e apesar de o banco de dados estar funcionando perfeitamente e os JOBS agendados estarem automaticamente sendo executados, novos JOBS que fossem JOBS criados não eram executados automaticamente. Além do mais, mesmo que executasse o procedimento DBMS_JOB.RUN para executar o JOB, o mesmo era agendado para a próximo horário, mas não era executado automaticamente.
Em resumo, o problema somente foi resolvido quando eu reinicializei o parâmetro JOB_QUEUE_PROCESSES como mostrado abaixo:
- alter system set job_queue_processes=0;
- aguardei por 1 minuto ...
- alter system set job_queue_processes=10;
Após executado o procedimento acima, os novos JOBS criados foram agendados e executados normalmente. Pelo fato deste problema ter ocorrido também na release 1 do Oracle 10g, achei importante relatar o ocorrido e enviei um e-mail para a equipe do Oracle Metalink reportando o problema.
Após o envio, obtive a resposta abaixo:
"Thank you for the feedback.
We have sent your comments to the support team that
created this document. They will review the information
and update the Note as necessary.
Regards"
We have sent your comments to the support team that
created this document. They will review the information
and update the Note as necessary.
Regards"
No mais, se alguém tiver esse mesmo problema, eu sugiro tentar primeiro reinicializar o parâmetro JOB_QUEUE_PROCESSES, antes de tentar uma outra solução como por exemplo, efetuar um shutdown no banco de dados e inclusive no servidor.
2 comentários:
Sensacional Eduardo, passo por esse problema diariamente. E como medida eu simplesmente reagendo meu JOB que esta com problema, removo através da DBMS_JOB e reagendo através da mesma, assim ele volta a sua rotina de execuções, mas ha casos em que mesmo assim não funciona.
Abração.
David Ricardo
drdba@uol.com.br
Olá David,
Por falar nisso, eu não cheguei a realizar testes no Oracle 10g rel 2 e Oracle 11g rel 1 para ver se esse tipo de problema ainda ocorre.
No mais, acho que à partir do Oracle 10g, o ideal mesmo é utilizar o pacote DBMS_SCHEDULER
Abraços ...
Postar um comentário