@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
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.
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.”