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:
1. 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.
2. The CJQ0 process dynamically spawns job queue slave processes (J000…J999) to
run the jobs.
3. 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.
4. 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.
用来批处理任务 , 可以看做一个调度服务来调度PL/SQL和存储过程 .
JOB_QUEUE_PROCESSES用来设定在实例中可以并发的数量 , 如果该参数设为0 , coordinator process不会启动
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/10599713/viewspace-980324/，如需转载，请注明出处，否则将追究法律责任。