Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: HELP: DBMS_JOB QUESTION
On Tue, 21 Sep 1999 09:07:06 +0100, "Jonathan Lewis"
<jonathan_at_jlcomp.demon.co.uk> wrote:
>The next time is set from the END of the
>job completion. You job appears to take
>about 40 seconds, so each restart slips
>another 40 seconds.
A small correction, since this appears to be quite common misunderstanding:
The "next time" of a job is not set at END of the job completion, it is computed as an offset from the START of the beginning of the current job execution. However it is true that this computed time of the next job run is "written" in the dictionary only after the completion of the current job run (ie it is not visible until the current run is completed).
This common consecutive execution time drift is not caused by the duration of the job, it is caused by the SNP process not waking up exactly at the interval specified in the init file.
In the Huiming Li's case however, the duration of the job also influences the time of the next execution. This influence is not in the area of calculating the time of the next job run, it is rather reflected as the time when the SNP process will wake up next after the job is completed. Since he has only 1 SNP process active, this process will wake up 60 seconds after the current job completion, so effectively it is executing every (60 seconds + job_durration).
If he would have more than 1 SNP process active, the duration of the job would not influence the next effective execution time, although some time drift could still occur, unless the NEXT parameter is defined in a manner that you describe bellow.
>A reasonably safe solution in your case is
>to change the formula from sysdate + 1/96
>to something which truncates the sysdate to
>the nearest 15 minutes and then adds 15 minutes.
Regards,
Jurij Modic <jmodic_at_src.si>
Certified Oracle DBA (7.3 & 8.0 OCP)
![]() |
![]() |