Pular para o conteúdo
  • Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 18 anos atrás por chduarte.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #78243
    Marcio68Almeida
    Participante

      Estou tendo um problema inusitado na hora que eu programo um processo.
      Fiz um teste simples para inserir linhas em uma tabela, o que acontece é que o job executa, mas aparece “1” no faiures e ele se programa para executar novamente dali a um minuto, ai aparece “2” no failures e ele se programa para executar dali a dois minutos e vai crescendo, 4, 8, 16 32, 64 minutos…
      Até que enfim o job para e some do dba_jobs, só que nesse período ele inseriu linhas todas as vezes.
      Quando tento remover o job pelos metodos recomendados, isto é sys.dbms_job.remove(241) ele me dá a seguinte mensagem :
      ORA-23421: o número de job 241 não é uma tarefa da fila de jobs
      ORA-06512: em "SYS.DBMS_SYS_ERROR", line 86
      ORA-06512: em "SYS.DBMS_IJOB", line 529
      ORA-06512: em "SYS.DBMS_JOB", line 171
      ORA-06512: em line 3

      então eu removo diretamente da tabela dba_jobs.
      Há alguma diferença entre executar uma procedure simples e uma dentro de um pacote ?
      Existem outros processos esquedulados que funcionam normalmente…
      Alguém tem uma idéia do por que dessa anomalia ???

      #78247
      chduarte
      Participante

        Voce so pode remover jobs que sao do seu usuario.

        []

        #78248
        Marcio68Almeida
        Participante

          [quote=”chduarte”:dlzdx6e5]Voce so pode remover jobs que sao do seu usuario.

          [][/quote]
          Eu tentei com o usuário que enviou o job e tambep´m como DBA e como sys… não funcionou… 😳
          Só consigo elimina-lo removendo da tabela…

          #78258
          chduarte
          Participante

            Se voce criou este job com o usuario xxx voce precisa remover o job conectado com o usuario xxx. Nao esqueca que no final é preciso fazer commit.

            []

            #78262
            Marcio68Almeida
            Participante

              Como eu disse anteriormente, eu tentei com o usuário que criou o job, como DBA e como SYS… nenhuma das opções funcionou, só consegui remover dando delete na view DBA_JOBS.
              O meu REAL problema é que o processo mesmo sendo realizado ele está acusando erro e reesquedulando, consequentemente reprocessando e dando dor de cabeça… 😳
              O que eu preciso saber é onde verifico qual o erro que está acontecendo, por que ele está reesquedulando, quais os parâmetros no init.ora que preciso, etc… algo que resolva o problema da reesquedulagem… 💡
              😀 ➡ ❓

              #78265
              chduarte
              Participante

                Acho que nao entendi muito bem. Primeiramente em relacao ao schedule do job toda vez que ele executa ele ira atualizar a coluna next_date para o intervalo definido na coluna INTERVAL da DBA_JOBS indiferente se deu erro.

                Os erros de um job voce pode verificar no alert.log.

                Para alterar a data de um job, voce deve utilizar a procedure next_date da package dbms_jobs. Apos finalizar qualquer alteracao voce precisa dar um commit.

                O parametro para o job funcionar no banco é o job_queue_processes.

                Para ver com qual usuario o job foi criado:
                select log_user, priv_user, job from sys.dba_jobs where job = 241;

                Quando o job da 16 erros ele automaticamente entra em broken = ‘Y’.

                Tentei colocar aqui todos os cenarios de um job.

                Espero ter entendido agora.

                Grande []

                #78270
                Marcio68Almeida
                Participante

                  Achei… ❗
                  Aparentemente não tinha nada a ver, porém…
                  Coloquei uma trigger onde toda vez que alguém se loga no banco eu registro, toda vez que sai eu registro também…
                  Essa tranqueira estava confundindo o scheduler, pois, quando terminava, ele via mais de um processo, e data erro na hora de pegar a informação, como aparecia um erro, o scheduler acusava falha e consequentemente reagendava…
                  Não sei se me expliquei bem… mas foi iluminação divina… risos… 💡

                  #78279
                  chduarte
                  Participante

                    O importante é resolver. 😉

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