To Ensure that the Repository DBMS_Jobs are always Executed:
1. Set the job_queue_processes initialization parameter to a value > 0. For a Grid Control repository, the recommended value is 10. This should be set to a higher value if there are other user-defined dbms_job's in the same database.
2. Verify that the CJQ0 process / Scheduler is not disabled. Login to the database as a DBA user and execute:
SQL> select * from dba_objects where object_name='SCHEDULER_DISABLED';
If this returns:
OWNER OBJECT_NAME
----------------------- ---------------------------------
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED LAST_DDL_ TIMESTAMP STATUS T G S
--------- --------- ------------------- ------- - - -
SYS SCHEDULER_DISABLED
379669 UNDEFINED
02-AUG-10 02-AUG-10 2010-08-02:13:46:20 VALID N N N
then the CJQ process will not be started automatically with the Database startup. To rectify this,
SQL> exec dbms_scheduler.set_scheduler_attribute('SCHEDULER_DISABLED','FALSE');
Verify that the CJQ is now running:
SQL> select program, username from v$process;
PROGRAM USERNAME
----------------------------------- ---------------
...
oracle@em11gc.idc.oracle.com (CJQ0) oracle
...
- In case of a RAC database, ensure that the value of the job_queue_processes initialization parameter is the same across all the instances. Use the query:
SQL> SELECT a.instance_name AS sid, b.value AS jobqueue
FROM gv$instance a, gv$parameter b
WHERE a.inst_id = b.inst_id
AND b.name='job_queue_processes';