Question

job_queue_processes, CDB vs PDB

  • 9 November 2022
  • 3 replies
  • 267 views

Userlevel 2
Badge +5
  • Do Gooder (Employee)
  • 12 replies

Do you know about any limitations with regards to job_queue_processes in CDB.

I read, when it is 0 (zero), then jobs execution will be stopped in CDB and PDBs. Non zero value in CDB will allow job execution in CDB and PDBs, unless a given PDB itself is not set to 0, so that PDB will not run any jobs.

But, why do we have this arbitrary number 10 for job_queue_processes in CDB, when using IFS database creation template? Can I make it less and how much less?


3 replies

Userlevel 7
Badge +18

@Alex 

I found to our detriment if job_queue_processes=0 in the CDB it can impair the deployment of the database objects at the _enable_rowkey CUSTOMER_ORDER_LINE_TAB stage, once you change this value to a non-zero value at the CDB level the _enable_rowkey (deployment of database objects) will continue.  

 

My colleague found the following post 

which resolved our issue.

 

Thanks

 

John

Userlevel 7
Badge +18

MOS 2118028.1 tries to explain this, but they only cover the zero case: If it's zero in the CDB, then the scheduler is disabled in all PDBs, but if it's zero in the PDB, it's only disabled in that one particular PDB.

 

It looks like the CDB value works as a ceiling. If that’s true, I think we should set the CDB value astronomically high, like the Oracle default value of 4000, then fine tune the PDB value. If anyone disagrees, I would like an in-depth explanation for why.

 

I may come back here with more details if I get a chance to test this more fully.

Userlevel 7
Badge +18

From the Oracle Database 21 documentation:

https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/JOB_QUEUE_PROCESSES.html

 

  • “In a CDB root:

    Set JOB_QUEUE_PROCESSES to the maximum number of job slaves that can be used simultaneously in the entire CDB. Oracle recommends that you set the value of this parameter to at least twice the number of open containers in the CDB, otherwise, there might be severe starvation between PDBs trying to run multiple jobs. If JOB_QUEUE_PROCESSES is set to 0 in a CDB root, then DBMS_JOB and Oracle Scheduler jobs cannot run in the CDB root or in any PDB, regardless of the JOB_QUEUE_PROCESSES setting at the PDB level.

  • “In a PDB:

    Set JOB_QUEUE_PROCESSES to the maximum number of job slaves that can be used simultaneously in the PDB. The actual number depends on the resources assigned by Resource Manager and the demand in other containers. When multiple PDBs request jobs, Oracle Scheduler attempts to give all PDBs a fair share of the processes. Oracle recommends that you set the value of this parameter to at least 2 in a PDB. However, if you do not want to run DBMS_JOB and Oracle Scheduler jobs in a PDB, then set JOB_QUEUE_PROCESSES to 0 in the PDB.”

Reply