지금 지원 담당자와 채팅
지원 담당자와 채팅

Identity Manager 9.3 - 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 The full-text search in One Identity Manager 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 using date values Tips for using 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 Displaying messages in the user interface Referencing packages and files in scripts 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 Committing and compiling script changes 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 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
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 Processor tasks Structure of the Jobservice.cfg configuration file

Processing sequence for 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

The central dispatcher checks whether the slots are operational. The slot status can be queried in the QBMDBQueueSlot database view.

  • Slot status 3: Transferring tasks to the QBMDBQueueCurrent table.

  • Slot status 5: Processing tasks.

Once tasks are added to the DBQueue, the central dispatcher distributes them over the slots and processing task starts. If permitted, the tasks are distributed across multiple slots in parallel. This ensures that not all available slots are occupied by one and the same task type.

The central dispatcher determines the DBQueue entries (DialogDBQueue table) and moves the tasks to the QBMDBQueueCurrent table with the assignment task per slot.

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

OrgRoot

A

OrgRoot

B

ADSAccountInADSGroup

X

ADSAccountInADSGroup

Y

ADSAccountInADSGroup

Z

Table 165: 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

The central dispatcher starts processing the tasks. Subsequent tasks resulting from processing are queued in the DialogDBQueue table.

If the tasks on a slot have been processed and no further tasks are pending, the slot number in the QBMDBQueueCurrent table is set to 0. 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.

If there are no more tasks in the DBQueue, the central dispatcher goes into a wait state.

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.

Deferring DBQueue Processor tasks

Deferred DBQueue Processor tasks are re-enabled by the central dispatcher. Task deferrals are logged to the system journal.

Table 166: Meaning of slot numbers in the QBMDBQueueCurrent table when deferring tasks
Slot number Meaning

-1

Synchronization is running for the object target system.

-2

A database block could not be reset within the given time period.

-3

There are still entries in the Job queue for the object to calculate.

-4

There are still tasks in the DBQueue for the object to calculate, which are a necessary prerequisite.

-5

The external condition is not yet fulfilled.

-6

The object to calculate is marked as pending.

-11

When the slot was filled, the object was still present from a previous processing run.

-12 The object was still found in the slot after processing.
-23 A deadlock occurred during processing.

-24

An runtime error occurred during processing.

-25

Delta calculation overloaded.

-26

Internal error handling.

-500

Internal error handling.

Using the DBQueue buffer

To prevent blockages by lengthy actions when processing DBQueue tasks, such as 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 synchronization did not end correctly for example, the remaining entries in the QBMDBQueuePond table are moved to the .DialogDBQueue table. The time period is set in the QBM | DBQueue | BufferTimeout configuration parameter. The default value is 120 minutes. The transfer is carried out by the daily maintenance tasks.

Related topics

Structure of the Jobservice.cfg configuration file

One Identity Manager Service is configured using a Jobservice.cfg configuration file. The configuration file has to be in the same directory as the viNetworkService.exe.

The file Jobservice.cfg is an XML configuration file in One Identity Manager’s own simplified format. The advantage of this file is that run-time loading is supported. There is a configuration section in the file for each of the different modules in the One Identity Manager Service.

NOTE: Entries are case-sensitive. Both the sections and the names of the values must be written in lower case.

The root in the XML file is always called configuration. Each configuration file module and its values are defined in a category section respectively. At the moment the program only supports the System.Configuration.NameValueSectionHandler section type.

<configuration>

<category name="serviceconfiguration">

<value name="jobprovider">VI.JobService.MSSqlJobProvider,jobservice</value>

<value name="HttpPort">1180</value>

<value name="logwriter">VI.JobService.FileLogWriter,jobservice</value>

</category>

</configuration>

Example: Simple One Identity Manager Service configuration

Simple configuration with:

  • Direct connection to a SQL Server

  • Only one Job destination (JobProcessor)

<configuration>

<category name="serviceconfiguration">

<value name="jobprovider">VI.JobService.MSSqlJobProvider,jobservice</value>

<value name="logwriter">VI.JobService.FileLogWriter,jobservice</value>

</category>

<category name="sqlprovider">

<value name="connectstring">User ID=sa;initial Catalog=<Database>;Data Source=<SQL-Server>;Password=<Password></value>

</category>

<category name="filelogwriter">

<value name="loglifetime">0.01:00:00</value>

<value name="logseverity">Info</value>

</category>

<category name="dispatcher" />

<category name="jobdestinations">

<value name="queuex">VI.JobService.JobServiceDestination,jobservice</value>

</category>

<category name="queuex">

<value name="queue">\%COMPUTERNAME%</value>

</category>

</configuration>

관련 문서

The document was helpful.

평가 결과 선택

I easily found the information I needed.

평가 결과 선택