ジョブ・キュー・コーディネータ・プロセス(CJQ0)は、データ・ディクショナリから実行する必要があるジョブを選択し、ジョブを実行するためにジョブ・キュー・ワーカー・プロセス(Jnnn)を生成します。Oracle Schedulerでは、必要に応じてCJQ0が自動的に起動および停止されます。JOB_QUEUE_PROCESSES
初期化パラメータには、実行中のジョブに対して作成可能なプロセスの最大数を指定します。CJQ0は、実行するジョブ数と使用可能なリソースに応じた数のジョブ・キュー・プロセスのみを起動します。
Jnnnプロセスは、ジョブ・コーディネータによって割り当てられるジョブを実行します。処理対象のジョブを就業者が選択すると、次の処理が実行されます。
- ジョブの実行に必要なすべてのメタデータ(プログラム引数や権限情報など)を収集します。
- ジョブの所有者としてデータベース・セッションを開始し、トランザクションを開始した後に、ジョブの実行を開始します。
- ジョブの完了後にトランザクションをコミットして終了します。
- セッションをクローズします。
ジョブが終了すると、ワーカーは次のことを実行します。
- 必要に応じて、ジョブを再スケジュールします。
- ジョブ表の状態を更新して、ジョブを完了するか、再スケジュールするかを反映します。
- エントリをジョブ・ログ表に挿入します。
- 実行回数を更新し、必要に応じて、失敗の回数と再試行の回数を更新します。
- クリーン・アップします。
- 新しい仕事を探します。(ない場合、スリープします。)
CJQ0とJnnnは両方とも、スレッドまたはオペレーティング・システム・プロセスとして実行できます。