- Este tópico contém 10 respostas, 4 vozes e foi atualizado pela última vez 14 anos, 3 meses atrás por Bogos.
-
AutorPosts
-
15 de julho de 2010 às 5:21 pm #95069GirinoParticipante
Olá..
Bom Dia a Todos..! 8)Gostaria de saber se é possível executar um JOB no Oracle apenas até determinado período do dia.
Desenvolvi um JOB que é executado minuto a minuto.
Quero que este job rode todos os dias apenas no período das 06:00 da manhã até as 24:00.É possível? 🙄
Segue sql do job abaixo:
DECLARE
job NUMBER;
BEGIN
DBMS_JOB.SUBMIT(job,’begin p_importa_pedidos; END;’,sysdate,’sysdate+1/1440′);
END;
/Muito Obrigado..!! 😀
Renato
15 de julho de 2010 às 6:06 pm #95070IshiiParticipanteOlá,
Se for versão 10g ou superior, melhor usar o DBMS_SCHEDULER que tem mais opções que o JOB. Inclusive essa que você necessita.
[]s Ishii
15 de julho de 2010 às 6:16 pm #95072Leonardo LitzParticipanteNo 9i a gente faz rodar ele o dia todo….
E dentro da rotina que ele chama, colocamos um if para verificar se esta no periodo desejado, caso não, sai da rotina se executa-lá…
Mas se vc utilizar o 10g utilize o DBMS_SCHEDULER mesmo que é melhor….
Vlw Leonardo Litz
15 de julho de 2010 às 6:20 pm #95073GirinoParticipanteOlá..!! 😀
Gostaria muito se possível, um exempo com o código que eu passei utilizando o DBMS_SCHEDULER.
Desde já, muito obrigado. 😆
Renato
16 de julho de 2010 às 12:39 am #95076BogosParticipanteOlá Girino
Dá uma lida nesse documento da própria Oracle que fala sobre o dbms_scheduler
http://download.oracle.com/docs/cd/B193 … m#ARPLS138😉
16 de julho de 2010 às 3:54 pm #95077GirinoParticipanteOlá Pessoal
Bom Dia! Tudo Bem? 😀Cheguei na empresa hoje e fui verificar a execução do job.
Parou de funcionar igual o dia anterior.
No primeiro dia parou as 03:24 da manhã e ontem parou as 21:00 hs.
Dei um select na tabela USER_JOBS e os campos BROKEN esta = N e FAILURES esta = 0
O que será que está acontecendo? Tenho que configurar alguma coisa no banco?Alguém já pasou por esse problema? 😥
To precisando mesmo resolver este problema. 😳
abraços e obrigado por qualquer ajuda..!! 😀
Renato
16 de julho de 2010 às 4:41 pm #95079BogosParticipanteGirino
use normalmente sua job que você mostrou no primeiro post;
DECLARE
job NUMBER;
BEGIN
DBMS_JOB.SUBMIT(job,'begin p_importa_pedidos; END;',sysdate,'sysdate+1/1440');
END;
/
Ela será executada de minuto em minuto durante as 24hrs normalmente, porém, para não deixar a p_importa_pedidos funcional apenas para a job, você poderia criar outra procedure (p_job_importa_pedidos) e nela você trata o tempo, se o sysdate estiver entre 6 da manha e 13:59, ela chama a p_importa_pedidos, senão não faz nada.
É uma solução, a outra é utilizar o DBMS_SCHEDULER.
Abraço!
16 de julho de 2010 às 4:52 pm #95080GirinoParticipanteOlá Bogos..!!
Bom Dia! 8)Então, o meu problema agora é com relação ao JOB que esta parando de rodar automaticamente durante a noite e quando eu chego pela manhã aqui na empresa esta tudo parado.
Você sabe porque isso está ocorrendo?
Muito Obrigado. 😀
Renato 😉
16 de julho de 2010 às 5:17 pm #95081BogosParticipanteEntendi. Você está usando o DBMS_SCHEDULER? Se for o caso pode ser que está feita de maneira incorreta fazendo com que ela pare de executar.
Caso não, então verifique o seguinte:A procedure que a job chama pode estar demorando mais do que 1 minuto para executar, sendo assim a job entra em fila e quebra causando a paralização da mesma.
Pode ser também algum objeto inválido ou que fique inválido na execução da job (algum erro de chaves, enfim).Utilize a seguinte instrução para verificar a execução da job:
select to_char(last_date, 'dd/mm/rr-hh24:mi:ss') last_date
2 , to_char(next_date, 'dd/mm/rr-hh24:mi:ss') next_date
3 from user_jobs
4 where job=26
5 /
select to_char(last_date, 'DD/MM/RRRR HH24:MI:SS') last_date,
to_char(next_date, 'DD/MM/RRRR HH24:MI:SS' ) next_date
from user_jobs
where job=NRO_DA_SUA_JOB
😉
16 de julho de 2010 às 5:52 pm #95082GirinoParticipanteOlá Bogos..!! 😀
Estou verificando essa possibilidade, já que a procedure carrega pedidos de uma Base de Dados Informix e nessa base é realizado um shutdow durante o período noturno.
Só ahei estranho que parou em um dia as 03:27 da manhã e ontem parou as 21:37 da noite e o shutdown é realizado em outro horário.
De qualquer forma, vou aumentar o tempo de execução do JOB durante a noite e verificar o resultado.
abraço e obrigado pelas dicas..!! 😀
Renato 8)
16 de julho de 2010 às 9:20 pm #95088BogosParticipanteQualquer coisa posta ae!
Se descobrir o que era, não deixa de postar a solução 😉Abraços
-
AutorPosts
- Você deve fazer login para responder a este tópico.