Pular para o conteúdo

Fóruns Banco de dados Oracle Quais os motivo para um JOB parar de reagendar? Quais os motivo para um JOB parar de reagendar?

#96121
Ishii
Participante

    Olá,

    O DBMS_SCHEDULER tem mais opções que o Job da Oracle. Por exemplo: é possível agendar em dias específicos como todo dia 1, 19 e 30 de cada mês. No Job seria necessário criar vários Jobs e isso está atrelado ao JOB_QUEUE_PROCESSES, mas no DBMS_SCHEDULER não há essa restrição. Outra vantagem do Scheduler é os logs que são muito mais ricos em informações, todas as execuções do Scheduler são visíveis nas views user_scheduler_job_log ou dba_scheduler_job_log (se tiver essa permissão para a view dba_…).
    No Job, quando entra em “broken” ele fica suspenso até que seja seja ativado novamente, o Scheduler registra a falha na view de log mas mantém o agendamento ativo (mesmo que continue o erro) até que seja arrumado.

    Sugiro a leitura da documentação da Oracle sobre o DBMS_SCHEDULER que é muito rica e extensa em exemplos. http://bit.ly/a5Ty2s Link da Documentação.

    Lembrando que é uma feature a partir do Oracle 10g. Segue abaixo apenas um exemplo da utilização chamando uma store procedure que está sendo rodada todo dia 1 de cada mês as 2:30hs a.m.


    begin
    DBMS_SCHEDULER.create_job ( job_name => 'nome do Job',
    job_type => 'STORED_PROCEDURE',
    job_action => 'pAjusteCustoEstoqProducao',
    start_date => SYSTIMESTAMP,
    repeat_interval => 'freq=monthly; interval=1; bymonthday=1; byhour= 2; byminute=30',
    end_date => NULL,
    enabled => TRUE,
    comments => 'Job Carrega os Saldos de Estoque Producao');
    end;
    /

    Explicando rapidamente o repeat_interval:

    Freq: Frequencia monthly (mensal) poderia ser hourly (por hora) …
    interval: intervalo de repetição 1, a cada um mês pois a frequencia é mensal se eu quisesse rodar bimestralmente o valor seria 2
    bymonthday: o dia do mês que será executado, aqui posso informar vários dias
    byhour: horário da execução, tb posso informar vários
    byminute: minuto preciso da execução…idem aos outros…

    Há muito mais ainda… melhor ler a documentação e fazer uns testes…enjoy!!!

    []s Ishii