IMPORTANT: Do no change or delete predefined database schedules as it may lead to unexpected errors.
Initializing the DBQueue Processor takes place once during schema installation. The following database schedules are generated during the initialization phase:
-
QBM_PWatchDog on <database>
This database schedule takes over several functions in One Identity Manager.
-
It checks whether DBQueue Processor's central dispatcher is active and restarts it.
-
It starts a database schedule to remove complete processes from the DBQueue.
-
It controls validation and starting of schedules.
-
It checks at regular intervals, whether database single-user mode is still required and resets the setting if necessary.
This database schedule has an active schedule with a 1 minute interval.
-
QBM_PDBQueueProcess_Main on <database>
This database schedule is the DBQueue Processor's central dispatcher. The central dispatcher assumes control of processing and distributes DBQueue tasks to individual slots. Each time the central dispatcher is executed, the number of currently available slots required for the current run is found. The central dispatcher starts database schedules for the currently available slots just once.
Only one database schedule at most is started for the central dispatcher. The central dispatcher's database schedule does not have an active schedule, but is started by the QBM_PWatchDog on <database> database schedule.
-
QBM_PDBQueueProcess<SlotNumber> on <database>
The maximum number of available slots is determined during the DBQueue Processor initialization phase. The maximum number of slots depends on the number of processors on the database server. An associated QBM_PDBQueueProcess<SlotNumber> on <database> database schedule is set up for each slot. Each database schedule is set up with a process that executes the DBQueue tasks for exactly this slot. The database schedules associated to each slot do not have any active schedules. They are started by the central dispatcher.
-
QBM_PDBQueueProcess_Del on <database>
This database schedule removes processed DBQueue tasks. The database schedule does not have an active schedule, but is started through the QBM_PWatchDog on <database> database schedule.
-
QBM_PDBQueueProcess_Mnt on <database>
This database schedule processes maintenance tasks. The maintenance tasks pass your tasks on to the database schedule instead of running them themselves. This means that nothing changes on the scheduling of maintenance tasks. The database schedule does not have an active schedule, but is started through the QBM_PWatchDog on <database> database schedule.
Related topics
If errors occur during initialization of the DBQueue Processor, messages are written to the application log. You can use the results display in the Microsoft Management Console, for example, to view the application log.
Use the QBM | DBServerAgent | CreateNotification configuration parameter to configure in which cases error messages are written to the application log. In the Designer, you can modify the configuration parameter as required.
Permitted values are:
-
0: No logging.
-
1: Only success messages are logged.
-
2: Only error messages are logged.
-
3: All messages are logged.
IMPORTANT: Select a user that you use for migrating the database to execute the SQL queries.
-
You must execute the QBM_PDBQueuePrepare procedure once manually when the server hardware has been extended and when custom DBQueue Processor tasks have been created.
-
You must execute the QBM_PDBQueuePrepare and QBM_PWatchDogPrepare procedures once when you set up a reference database for test and development.
Use a suitable program for executing SQL queries to run the following procedures in the reference database just once.
exec QBM_PWatchDogPrepare
exec QBM_PDBQueuePrepare 0,1
The database schedule for the central dispatcher is started with the QBM_PWatchDog on <database> database schedule. The central dispatcher assumes control of processing and distributes DBQueue tasks to individual slots.
Each time the central dispatcher is executed, the number of currently available slots required for the current run is found first. The more load there is on the database, the less slots there are to use. However, at least five slots are used.
The number of currently available slots results from:
The number of currently available slots = maximum number of available slots - sum of all own database processes - sum of processes of other databases on the server
The central dispatcher starts database schedules for the currently available slots just once. Each database schedule is set up with a process, which executes tasks for exactly this slot.
Once tasks in the DBQueue are entered, the central dispatcher is notified. The central dispatcher distributes tasks to individual slots and notifies the slot processes that there are tasks are waiting to be processed. Each process processes the tasks queued for its slot. Once the task is complete, each process sends a message to the central dispatcher and waits for new tasks.
The central dispatcher checks at defined intervals whether the slots are still active and distributes new tasks to them. If there are no more tasks in the DBQueue, the central dispatcher goes into a wait state and waits for new task notifications.
Tasks on slots currently in use are still processed when the timeout expires. Then the slot database schedules are stopped and the central dispatches exits. For more information, see How the central dispatcher communicates with individual slots.
Figure 39: Controlling processing