Chat now with support
Chat with Support

Identity Manager 8.1 - Configuration Guide

About this guide One Identity Manager software architecture Customizing the One Identity Manager default configuration Adjusting the One Identity Manager base configuration One Identity Manager schema basics Editing the user interface
Object definitions for the user interface User interface navigation Forms for the user interface Statistics in One Identity Manager Extending the Launchpad Task definitions for the user interface Applications for configuring the user interface Icons and images for configuring the user interface Using predefined database queries
Localization in One Identity Manager Process orchestration in One Identity Manager
Setting up Job servers in Designer Configuring the One Identity Manager Service Handling processes in One Identity Manager
Tracking changes with process monitoring Conditional compilation using preprocessor conditions Scripts in One Identity Manager Reports in One Identity Manager Adding custom tables or columns to the One Identity Manager schema Web service integration SOAP Web Service One Identity Manager as SPML provisioning service provider Processing DBQueue tasks Appendix: Configuration files of the One Identity Manager Service

Initializing the DBQueue Processor

IMPORTANT: Do no change or delete predefined database schedules as it may lead to unexpected errors.

DBQueue Processor initialization takes place once during schema installation. The following database schedules are generated during the initialization phase:

  • QBM_PWatchDog on <database>

    This database schedule assumes several functions in the 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 database schedule QBM_PWatchDog on <database>.

  • 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 database schedule QBM_PDBQueueProcess<SlotNumber> on <database> is set up for each slot. Each database schedule is set up with a process which 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 the processed DBQueue tasks. The database schedule does not have an active schedule, but is started through the database schedule QBM_PWatchDog on <database>.

Related Topics

Reinitialization of DBQueue Processor

IMPORTANT: Select a user that you use for migrating the database to execute the SQL queries.

  • You must execute the procedure QBM_PDBQueuePrepare once manually when the server hardware has been extended and when custom DBQueue Processor tasks have been created.

  • You must execute the procedures QBM_PDBQueuePrepare and QBM_PWatchDogPrepare 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

Controlling processing of DBQueue Processor tasks

The database schedule for the central dispatcher is started with the database schedule QBM_PWatchDog on <database> . 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

NOTE: The number of available slots can still be influenced by the QBM | DBQueue | CountSlotsMax configuration parameter. If the number of available slots, according to calculation, is more than the value in the configuration parameter, the configuration parameter value is taken. For more information, see Configuring the DBQueue Processor for test and development environments.

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 43: Controlling Processing

Processing DBQueue Processor tasks

The central dispatcher finds entries in the DBQueue (table DialogDBQueue) and moves the tasks into the table QBMDBQueueCurrent with the assignment tasks per slot.

Example of Entries in the Tables DialogDBQueue and QBMDBQueueCurrent
Table 213: Entries in the table DialogDBQueue (extract)
Task name Object
OrgRoot A
OrgRoot B
ADSAccountInADSGroup X
ADSAccountInADSGroup Y
ADSAccountInADSGroup Z
Table 214: Entries in the table QBMDBQueueCurrent (extract)
Slot number Task name Object
001 OrgRoot A
001 OrgRoot B
002 ADSAccountInADSGroup X
002 ADSAccountInADSGroup Y
002 ADSAccountInADSGroup Z

Each process processes tasks queued for its own slot in the table QBMDBQueueCurrent. Subsequent tasks resulting from processing are queued in the table DialogDBQueue.

If a process has processed its tasks and no other tasks are pending, the slot number in the QBMDBQueueCurrent table is set to 0 by the process itself. The entry initially remains in the table QBMDBQueueCurrent but is no longer taken into account (because slot 0 is not active).

The database schedule QBM_PDBQueueProcess_Del on <database>deletes all entries with slot number 0 from the QBMDBQueueCurrent table at regular intervals.

Table 215: Meaning of Slot Numbers in the Table QBMDBQueueCurrent
Slot number Meaning
001 - n Number of slot to be processed by the task.
0 State after the task is completed correctly.
-1

An error occurred during task processing or processing was deferred, for example, because synchronization is running. The central dispatcher re-enables the task.

-2

An error occurred during task processing or processing was deferred, for example, because of blocking. The central dispatcher re-enables the task.

-3

An error occurred during task processing or processing was deferred, for example, because there are still entries in the Job queue. The central dispatcher re-enables the task.

Related Topics
Related Documents