【体系结构】25.作业队列协调进程 (CJQ0)

作业队列协调器进程(CJQ0)是⼀个后台进程,它从数据字典中选择需要运行的作业,并生成作业队列从属进程(Jnnn)来运行这些作业。OracleScheduler会根据需要自动启动和停止CJQ0。JOB_QUEUE_PROCESSES初始化参数指定可以为执行作业创建的大进程数。CJQ0仅启动要运行的作业数量和可用资源所需数量的作业队列进程。

作业队列从属进程(Jnnn)执行作业协调分配的作业。选择作业进行处理时,作业从属进程将执行以下操作:

  • 收集运行作业所需的所有元数据,例如:程序参数和权限信息。
  • 以作业的所有者身份启动数据库会话,启动事务,然后开始执行作业。
  • 作业完成后,从属进程将提交并结束事务。
  • 关闭会话。

完成工作后,从属进程将执行以下操作:

  • 重新安排作业(如果需要)
  • 更新作业表中的状态以反映作业是否已完成或计划再次运行
  • 在作业日志表中插⼊⼀个条⽬
  • 更新运行计数,并在必要时更新失败和重试计数
  • 清理
  • 寻找新工作(如果没有,则休眠)

CJQ0和Jnnn都可以作为线程或操作系统进程运行。

posted @ 2021-07-14 15:33  蟹Bro  阅读(348)  评论(0编辑  收藏  举报