Pular para o conteúdo
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #95069
    Avatar de GirinoGirino
    Participante

      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

      #95070
      Avatar de IshiiIshii
      Participante

        Olá,

        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

        #95072
        Avatar photoLeonardo Litz
        Participante

          No 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

          #95073
          Avatar de GirinoGirino
          Participante

            Olá..!! 😀

            Gostaria muito se possível, um exempo com o código que eu passei utilizando o DBMS_SCHEDULER.

            Desde já, muito obrigado. 😆

            Renato

            #95076
            Avatar de BogosBogos
            Participante

              Olá 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

              😉

              #95077
              Avatar de GirinoGirino
              Participante

                Olá 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

                #95079
                Avatar de BogosBogos
                Participante

                  Girino

                  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!

                  #95080
                  Avatar de GirinoGirino
                  Participante

                    Olá 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 😉

                    #95081
                    Avatar de BogosBogos
                    Participante

                      Entendi. 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

                      😉

                      #95082
                      Avatar de GirinoGirino
                      Participante

                        Olá 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)

                        #95088
                        Avatar de BogosBogos
                        Participante

                          Qualquer coisa posta ae!
                          Se descobrir o que era, não deixa de postar a solução 😉

                          Abraços

                        Visualizando 11 posts - 1 até 11 (de 11 do total)
                        • Você deve fazer login para responder a este tópico.
                        plugins premium WordPress