- Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 18 anos atrás por chduarte.
-
AutorPosts
-
10 de janeiro de 2007 às 4:55 pm #78243Marcio68AlmeidaParticipante
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 ???10 de janeiro de 2007 às 6:59 pm #78247chduarteParticipanteVoce so pode remover jobs que sao do seu usuario.
[]
10 de janeiro de 2007 às 7:11 pm #78248Marcio68AlmeidaParticipante[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…10 de janeiro de 2007 às 8:26 pm #78258chduarteParticipanteSe 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.
[]
10 de janeiro de 2007 às 8:34 pm #78262Marcio68AlmeidaParticipanteComo 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… 💡
😀 ➡ ❓10 de janeiro de 2007 às 8:58 pm #78265chduarteParticipanteAcho 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 []
10 de janeiro de 2007 às 9:22 pm #78270Marcio68AlmeidaParticipanteAchei… ❗
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… 💡10 de janeiro de 2007 às 10:00 pm #78279chduarteParticipanteO importante é resolver. 😉
-
AutorPosts
- Você deve fazer login para responder a este tópico.