Chat now with support
Chat with Support

Identity Manager 9.1 - Configuration Guide

About this guide One Identity Manager software architecture Customizing the One Identity Manager default configuration Customizing 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
Mapping processes in One Identity Manager Setting up Job servers
The One Identity Manager Service functionality Tracking changes with process monitoring Conditional compilation using preprocessor conditions Scripts in One Identity Manager
Visual Basic .NET scripts usage Notes on message output Notes on using date values Tips for using Windows PowerShell scripts Using dollar ($) notation Using base objects Calling functions Pre-scripts for use in processes and process steps Using session services Using #LD-notation Script library Support for processing scripts in the Script Editor Creating and editing scripts in the Script Editor Copying scripts in the Script Editor Testing scripts in the Script Editor Testing script compilation in the Script Editor Overriding scripts Permissions for running scripts Editing and testing script code with the System Debugger Extended debugging in the Object Browser
One Identity Manager query language Reports in One Identity Manager Adding custom tables or columns to the One Identity Manager schema Web service integration One Identity Manager as SCIM 2.0 service provider Processing DBQueue tasks One Identity Manager Service configuration files

Processing DBQueue Processor tasks by the Database Agent Service

To process internal tasks by the Database Agent Service, ensure that the Database Agent Service is installed and configured. The Database Agent Service is deployed through the One Identity Manager Service plugin. Alternatively, the Database Agent Service can be run from the DatabaseAgentServiceCmd.exe command line program. The plugin should be configured on the Job server that performs the Update server server function. An administrative user must be used for the database connection in the Job provider.

The Database Agent Service carries out the following tasks:

  • Controls processing and distribution of the DBQueue tasks to the individual slots (central dispatcher))

  • Checks and starts scheduled tasks

  • Removes already processed DBQueue tasks

  • Starts maintenance work

  • Populates and updates the Job queue overview

  • Archives or deletes handled processes from the Job queue

  • Archives or deletes process handling logs

NOTE: If the Database Agent Service is not working, a message is displayed in the status bar in all the administration tools. To see this message, users must have at least the configuration user access level.

Related topics

Controlling processing of DBQueue Processor tasks

The central dispatcher assumes control of processing and distributes DBQueue tasks to individual slots.

First, it determines the number of currently available slots available for use. 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 used. For more information, see DBQueue Processor configuration for test, development, or productive environments.

The central dispatcher starts the currently available slots just once. or each slot, a process is set up that runs 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. On completion, the slots are stopped. For more information, see How the central dispatcher communicates with individual slots.

Processing DBQueue Processor tasks

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

Example of entries in the DialogDBQueue and QBMDBQueueCurrent tables
Table 187: Entries in the DialogDBQueue (extract) table
Task name Object

OrgRoot

A

OrgRoot

B

ADSAccountInADSGroup

X

ADSAccountInADSGroup

Y

ADSAccountInADSGroup

Z

Table 188: Entries in the QBMDBQueueCurrent (extract) table
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 QBMDBQueueCurrent table. Subsequent tasks resulting from processing are queued in the DialogDBQueue table.

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 QBMDBQueueCurrent table but is no longer taken into account (because slot 0 is not active).

All entries with the slot number 0 are deleted from the QBMDBQueueCurrent table at regular intervals.

Table 189: Meaning of slot numbers in the QBMDBQueueCurrent table
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.

NOTE: Deferring DBQueue tasks is recorded in the system journal.

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

Using the DBQueue buffer

To prevent blockages when processing DBQueue tasks by lengthy actions, for example, synchronization, a DBQueue buffer (QBMDBQueuePond table) is used. Synchronization initially writes DBQueue Processor tasks to the QBMDBQueuePond table. After synchronization is complete, the task are moved from the QBMDBQueuePond table to the DialogDBQueue table.

If a lengthy task does not queue anymore entries in the DBQueue tasks because, for example, synchronization did not end correctly, the remaining entries in the QBMDBQueuePond table are moved to the .DialogDBQueue table. The time period for this is defined in the QBM | DBQueue | BufferTimeout configuration parameter (default: 120 minutes). The transfer is carried out by the daily maintenance tasks.

How the central dispatcher communicates with individual slots

The QBMDBQueueSlot table is responsible for communication of the central dispatcher with individual slots. The maximum number of slots available is determined during initializing of the DBQueue Processor. One entry per slot is created in the QBMDBQueueSlot table. The table contains information about each slot and its status as well as currently running tasks.

Table 190: Meaning of status in the QBMDBQueueSlot table
Status Meaning

0

No activity required. Initial state (set by initializing) 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 the QBMDBQueueCurrent table. 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 if the process timed out or errors occurred.

Stop behavior by maximum timeout

Once the maximum runtime has expired, the tasks of slots in the QBMDBQueueCurrent table currently in use are still processed. No new tasks are added from the QBMDBQueue table. In the QBMDBQueueSlot table, all slots with a slot status 2 are set to the -1 status. This prompts the processes to finish and stop themselves. The central dispatcher checks whether all processes have completed.

Related topics
Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating