首页 » ORACLE 9i-23c » know more about dbms_job fails

know more about dbms_job fails

When job execution fails, the SNP processes attempts to rerun the job one minute later. If this run fails, another attempt is made in two minutes and another in four minutes. The job queue doubles the retry interval until it exceeds the normal execution interval, which is then used. After 16 consecutive failures, the job is flagged as broken and will not be re-executed by the job queue without user intervention.

The next_date parameter can be set to a time in the past. Jobs are chosen for execution in order of their next execution dates, so setting a job’s next_date back can effectively move the job ahead in the queue. This can be useful in systems where the job queue processes are not keeping up with jobs to be executed, and a specific job needs to be executed as soon as possible.

The interval parameter is a character string representing a valid Oracle date expression. This date expression is evaluated each time the job begins execution. When a job completes successfully, this date becomes the next execution date for the job. It is important to remember that interval evaluation and updating the job’s next execution date happen at different times. For instance, a job that takes one hour to complete and has interval set to SYSDATE+1/48 (every 30 minutes) will constantly execute, because each time it completes, it will already be 30 minutes late to execute again.
The interval expression must evaluate to either a NULL value or a time in the future. When interval evaluates to a NULL value, the job will not be re-executed after the next execution and will be automatically removed from the job queue. Thus, to execute a job one time only, pass a NULL value for the interval parameter.

jobs are no longer executing automatically.
If forced (exec dbms_job.run(), these execute fine.
Cause
Trying the most common reasons why jobs don’t execute automatically and as scheduled:
1) Instance in RESTRICTED SESSIONS mode?
2) JOB_QUEUE_PROCESSES=0
3)_SYSTEM_TRIG_ENABLED=FALSE
4) Is the job BROKEN?
5) Is the job COMMITted?
6)If uptime>497 and the jobs do not execute automatically, then you are hitting bug 3427424
(Jobs may stop running after 497 days uptime) which is fixed in 9206 and A102
7)Check dba_jobs_running to see if the job is still running
8)Check if the last_date and next_date for the job are proper:
9)Check if the Next_date is changing properly as per the interval set in dba_jobs

reference 《Oracle Built-in Packages》and MOS

打赏

对不起,这篇文章暂时关闭评论。