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?
Stuart
--
http://www.freelists.org/webpage/oracle-l
Received on Fri Jul 14 2006 - 09:12:20 CDT