Job Queue Processes
Job queue processes are used for batch processing. They run user
jobs. They can be viewed as a scheduler service that can be used to
schedule jobs as PL/SQL statements or procedures on an Oracle instance.
Given a start date and an interval, the job queue processes try to run
the job at the next occurrence of the interval.
Job queue processes are managed dynamically. This allows job queue
clients to use more job queue processes when required. The resources
used by the new processes are released when they are idle.
Dynamic job queue processes can run a large number of jobs
concurrently at a given interval. The job queue processes run user jobs
as they are assigned by the CJQ process. Here's what happens:
The coordinator process, named CJQ0, periodically selects jobs that need to be run from the system JOB$ table. New jobs selected are ordered by time.
The CJQ0 process dynamically spawns job queue slave processes (J000…J999) to run the jobs.
The job queue process runs one of the jobs that was selected by the
CJQ process for execution. The processes run one job at a time.
After the process finishes execution of a single job, it polls for
more jobs. If no jobs are scheduled for execution, then it enters a
sleep state, from which it wakes up at periodic intervals and polls for
more jobs. If the process does not find any new jobs, then it aborts
after a preset interval.
The initialization parameter JOB_QUEUE_PROCESSES
represents the maximum number of job queue processes that can
concurrently run on an instance. However, clients should not assume that
all job queue processes are available for job execution.
Note:
The coordinator process is not started if the initialization parameter JOB_QUEUE_PROCESSES is set to 0.
See Also:
for more information about job queues[@more@]