Summary:
We have a job that is supposed to run every 3 seconds. It actually runs every 5 seconds (no worries there), but occasionally doesn't seem to run at all for a period of up to approx 3 minutes.
Detail:
Our software suppliers have a job in their/our database.
JOB LOG_USER PRIV_USER ---------- ------------------------------ ------------------------------ SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE ------------------------------ --------- -------- --------- -------- --------- NEXT_SEC TOTAL_TIME B -------- ---------- - INTERVAL -------------------------------------------------------------------------------- FAILURES ---------- WHAT -------------------------------------------------------------------------------- NLS_ENV -------------------------------------------------------------------------------- MISC_ENV INSTANCE ---------------------------------------------------------------- ---------- 339 MANHATTEN MANHATTEN MANHATTEN 14-JUL-06 14:50:17 14-JUL-06 14:50:20 1014568 N SYSDATE + 3/86400 0 BEGIN manhatten_com.poll_label; END; NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA' NLS_CURRENCY='$' NLS_ISO_CURRENC Y='AMERICA' NLS_NUMERIC_CHARACTERS='.,' NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' NLS_DATE_LANGUAGE='AMERICAN' NLS_SORT='BINARY' 0102000000000000 0
As you can see, the intention is to run every 3 seconds. The jobs usually takes a very small fraction of a
second, but occasionally takes up to 15 seconds. This is as we expect.
Also, as _job_queue_interval=5, we actually see this usually run every 5 seconds, as evidenced by running
this SQL in a loop. (The loop has a sleep 2 in it, I've taken out some of the repeated data in the data given
below).
select what, to_char(last_date,'DD-MON-YYYY HH24:MI:SS') last_date , to_char(next_date,'DD-MON-YYYY HH24:MI:SS') next_date, to_char(this_date,'DD-MON-YYYY HH24:MI:SS') this_date, decode(this_date,null,null,'EXECUTING') from dba_jobs where what like '%poll_label%' order by next_date /
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 11:32:40 14-JUL-2006 11:32:43
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 11:32:45 14-JUL-2006 11:32:48
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 11:32:50 14-JUL-2006 11:32:53
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 11:32:55 14-JUL-2006 11:32:58
So far, so good. However, every so often, the job 'appears' not to run for a few minutes.
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:31 14-JUL-2006 12:50:34
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:31 14-JUL-2006 12:50:34 14-JUL-2006 12:50:36 EXECUTING
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:31 14-JUL-2006 12:50:34 14-JUL-2006 12:50:36 EXECUTING
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:31 14-JUL-2006 12:50:34 14-JUL-2006 12:50:36 EXECUTING
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:31 14-JUL-2006 12:50:34 14-JUL-2006 12:50:36 EXECUTING
.... job finishes, next_date is set to three seconds in the future.
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:36 14-JUL-2006 12:50:39
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:36 14-JUL-2006 12:50:39
.... repeated approx 30 times....... We've gone way beyond 12:50:39 - why hasn't my job executed?
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:36 14-JUL-2006 12:50:39
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:50:36 14-JUL-2006 12:50:39
.... and finally, it appear to have executed again.
WHAT -------------------------------------------------------------------------------- LAST_DATE NEXT_DATE THIS_DATE DECODE(TH -------------------- -------------------- -------------------- --------- BEGIN manhatten_com.poll_label; END; 14-JUL-2006 12:54:01 14-JUL-2006 12:54:04
Additional info:
SCLOWES @ pkxxl> show parameter job_q
NAME TYPE VALUE ------------------------------------ ----------- ------------ job_queue_processes integer 35 SCLOWES @ pkxxl> select count(*) from dba_jobs;
COUNT(*) ---------- 24
I don't ever see non-zero values in FAILURES column.
Can anybody give some pointers as to what may be happening here?