If a task has to be deferred, for example due to an error or if synchronization is running, the process sets the slot number in the table QBMDBQueueCurrent to "-1" on its own. These tasks are re-enabled if there are no more tasks in the DBQueue. At the very latest, these deferred tasks are reinstated into the DBQueue the next time the central dispatcher runs. This means deferred tasks are re-enabled at the latest once the maximum runtime has elapsed.
|
NOTE: Deferring DBQueue tasks is recorded in the system log. |
Configuration parameter | Meaning |
---|---|
QBM\DBQueue\DefaultRuntime |
The configuration parameter species how the length of the DBQueue Processor run. The default value is 90 seconds. |
Some DBQueue Processor procedures are marked for bulk processing to reduce the total time required for processing DBQueue tasks. If a lot of entries are marked for bulk processing in the DBQueue, the DBQueue Processor switches from single to bulk processing.
There is a mechanism implemented that is used to decide whether switching to bulk processing as opposed to single processing would result in time savings. To do this, 25 single task processes are run and the processing time is recorded. All other entries for the task are processed in bulk and the minimum and maximum load time required for advantageous bulk processing is defined. A self optimizing calculation procedure updates the load times. As a result of this method, the DBQueue Processor needs to "kick in" after initial schema installation or after system changes, such as increased database memory. You can specify how long the DBQueue Processor runtime interval should be with the configuration parameter "Common\DBQueue\DefaultRuntime". The default value is 90 seconds. This corresponds to the time period that achieves the best load for the calculation procedure.
The table QBMDBQueueSlot is responsible for communication of the central dispatcher with individual slots. The maximum number of slots available is determined during DBQueue Processor initialization. One entry per slot is created in the table QBMDBQueueSlot. The table contains information about each slot and its status as well as currently running tasks.
Status | Meaning |
---|---|
0 | No activity required. Initial state (through initialization) or end state (set by process). |
1 | The process is triggered to prepared central temporary tables, for example. |
2 | Ready for operation. The process has started but the currently no tasks exist. This is the state in which tasks can be queued. |
3 | Transfer to table QBMDBQueueCurrent. The process has received tasks for processing and needs to begin. |
4 | The process has recognized the tasks and added them. |
5 | The process is handling the tasks. |
-1 | The process was prompted to quit. Stop behavior by maximum timeout or abort on process error. |
The following example show the entries in the table QBMDBQueueSlotduring processing.
Slot number | Status | Task name |
---|---|---|
001 | 0 |
Slot number | Status | Task name |
---|---|---|
001 | 1 |
Slot number | Status | Task name |
---|---|---|
001 | 2 |
Slot number | Status | Name of task |
---|---|---|
001 | 3 | OrgRoot |
Slot number | Status | Task name |
---|---|---|
001 | 4 | OrgRoot |
Slot number | Status | Name of task |
---|---|---|
001 | 2 |
Once the maximum runtime has expired, the tasks of slots in the table QBMDBQueueCurrent currently in use are still processed. No new tasks are added from the table QBMDBQueue. All slots with a slot status of "2" are set to "-1" in the table QBMDBQueueSlot. This prompts the processes to finish and stop themselves. The central dispatcher checks whether all processes have completed and have stopped.
© 2023 One Identity LLC. ALL RIGHTS RESERVED. Feedback Terms of Use Privacy