GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Oracle データベース アーキテクチャ(Job Queue Coordinator Process (CJQ0))

f:id:undercovergeek:20200803203845p:plain

CJQ0

ジョブキューコーディネータープロセス(CJQ0)は、データディクショナリから実行する必要があるジョブを選択し、ジョブキュースレーブプロセス(Jnnn)を起動してジョブを実行するバックグラウンドプロセス。
CJQ0は、Oracle Schedulerによって必要に応じて自動的に起動および停止される。
JOB_QUEUE_PROCESSES初期化パラメーターは、ジョブの実行用に作成できるプロセスの最大数を指定する。
CJQ0は、実行するジョブの数と使用可能なリソースに必要な数のジョブキュープロセスのみを開始する。

ジョブキュースレーブプロセス(Jnnn)は、ジョブコーディネーターによって割り当てられたジョブを実行する。
処理するジョブが選択されると、ジョブスレーブは次のことを行う。

 ・プログラムの引数や特権情報など、ジョブの実行に必要なすべてのメタデータを収集する
 ・ジョブの所有者としてデータベースセッションを開始し、トランザクションを開始してから、ジョブの実行を開始する
 ・ジョブが完了すると、スレーブはトランザクションをコミットして終了する
 ・セッションを閉じる

ジョブが完了すると、スレーブは次のことを行う。

 ・必要に応じてジョブを再スケジュールする
 ・ジョブテーブルの状態を更新して、ジョブが完了したか、再度実行するようにスケジュールされているかを反映する
 ・ジョブログテーブルにエントリを挿入する
 ・実行カウントを更新し、必要に応じて、失敗と再試行のカウントを更新する
 ・クリーンナップ
 ・新しい仕事を探る(ない場合は、スリープ状態になる)

CJQ0とJnnnはどちらも、スレッドまたはオペレーティングシステムプロセスとして実行できる。

スポンサーリンク