Oracle scheduler jobs and next run date computation – the new oracle dba knowledge article





You are a new oracle dba and you already know what oracle scheduler jobs are. you might want to schedule a job to run every 10 minutes or 20 minutes and you want to know what will happen if the job didnt finish in time and whether this will impact the next run date of the scheduler job.

Below discussion from asktom.com gives a clear view of what happens.

Tom,
 
Let us say thet job is scheduled to run every 5 minute. The job started at 12:00, its next schedled
execution time is 12:05, but prev job finished at 12:07. So nxt job will start at 12:07 (as soon as
the prev job finished). So now what will be the next execution time for the job. Will it be 12:12
or 12:10.
 
I see a potential of skipping some jobs due to earlier jobs finishing late. Am I correct?
 
Thanks

 

Followup   August 19, 2004 – 10am Central time zone:

the next execution time of the job that runs at 12:07 will be computed using YOUR function -- so
you tell me, will YOUR function run at 12:07 return
 
a) 12:10
b) 12:12
 
???  only you can tell -- cause only you know the function used.  If you did your function so that
"jobs don't slip" -- it would be 12:10.  If you just said "schedule it to run 5 minutes after right
now" it would be 12:12.
 
YOU control it.
 
I don't see how you can "skip some jobs"  as there is "just the SINGLE job" we are talking about
here and this single job will run at most one copies of itself and this job controls when it next
runs.

 

Tom,
 
If I set a replication job to be run every 5 minutes. Then what happenes if the previous job does
not finish in 5 minutes. Does oracle starts another job, even if old job is still not complete. How
is the Next column handled in this situation.
 
Thanks

 

Followup   August 18, 2004 – 11pm Central time zone:

the job will run to completion and then set it's "next time" which was computed at the beginning of
the job - -meaning it'll run ASAP (since its next run time already happened)
 
in short
 
o it won't run another run until the running one is done
o the "next" date is evaluated when the job starts
o so if the job started at 12:00, it would be scheduled to run at 12:05 -- but if the job that
started at 12:00 didn't finish until 12:10 -- it would just run ASAP after the 12:10 completion.
Author: admin