Riva CRM Integration - Documentation and Knowledge Base

Controlling Concurrent Riva Synchronization Threads

Article ID: 518
Last updated: 30 Jul, 2018

Importance of Controlling the Concurrent Syncing of Users

If too few users are synced at the same time, the sync process is unduly slow.

If too many users are attempted to be synced at the same time, errors result. For example, when the Riva CRM Agent service makes too many concurrent requests against a target web application service (email or CRM), the target service reports that the remote server is unavailable or reports timeout errors.

  • Explanation: Web applications often set maximum limits for the number of concurrent sessions for a single user. This can be translated to how many users Riva can sync at the same time. Each vendor's implementation of hosted CRM and email systems sets different maximum limits.

Controlling the Concurrent Syncing of Target Users

Controlling the maximum number of users that are synced at the same time can be done at two levels:

At the Policy Level

Whether a Riva deployment requires one or more sync policies, every sync policy can be configured with its own maximum number of users that are synced at the same time. The number is set by adjusting the number of execution threads.

Execution Threads: Every target user consumes one execution thread per sync cycle. If the Execution Threads setting is set to 3 (default), three users can be synced concurrently. Riva-supported range: 1 through 100. The actual maximum value that is achievable may be restricted by the CRM and/or email system. Set this value to best match your environment.

Tip: You might like to use the thread calculator.

At the Riva Server Level

If there is only one sync policy, it is not worthwhile to set a Riva-server-level maximum number of execution threads; set the number only at the policy level.

To set the maximum number of execution threads for a Riva deployment that uses multiple sync policies:

  1. For each policy, the Riva administrator sets the number of execution threads at the policy level.

  2. Riva adds the values of the execution threads from all enabled sync policies to determine the number of concurrent users to sync, but does not display that value.

  3. The Riva administrator observes the effects of the sync with the defined total maximum limits.

  4. If communication or sync errors result from trying to sync too many users at the same time, the Riva administrator sets a maximum number of execution threads that overrides the total number of threads that was calculated at step 2.

    Note: There are two ways to set the maximum number of execution threads at the server level:

Use a dialog box

Riva 2.4.47 or higher.

  1. In the Riva Manager application, on the menu bar, select Tools, and choose Define Global Execution Thread Limit.

  2. In the Define Global Execution Thread Limit dialog box that appears, set the Global Maximum Number of Concurrent Execution Threads to the required value.

    • Riva-supported range: 10 through 100. The actual maximum value that is achievable may be restricted by the CRM and/or email system.
    • Default: 100.

Configure an App.Setting file to define the global maximum number of execution threads

Riva 2.4.2 or higher. — Note: For Riva 2.4.47 or higher, we recommend using the dialog box.

The App.Setting must be applied against the CRM Agent Service and uses the following setting key and value:

Crm.ThreadPool.MaxThreads = n, where n is the maximum number of threads. (Default: 100. Riva-supported range: 10 through 100. The actual maximum value that is achievable may be restricted by the CRM and/or email system.)

In this example for Oracle On Demand, this App.Setting would be

Crm.ThreadPool.MaxThreads = 10

Refer to How to create an App.Setting file to enable advanced options to create or modify the appropriate .config file for the following CRM Agent services:

  • For the Riva CRM Agent for Office 365, Exchange, IBM Notes, Google, or GroupWise SDK, modify the file Omni.Riva.CrmAgentEx.exe.config

  • For the Riva CRM Agent for GroupWise when connecting over a legacy connection, modify the file Omni.Riva.CrmAgent.exe.config

Applies to

  • Riva 2.4.2 or higher.


Define Global Execution Thread Limit

(Riva 2.4.47 or higher.) In the Define Global Execution Thread Limit dialog box, set Global Maximum Number of Concurrent Execution Threads to the required value.

  • Riva-supported range: 10 through 100. The actual maximum value that is achievable may be restricted by the CRM and/or email system.
  • Default: 100.

For more information:

Article ID: 518
Last updated: 30 Jul, 2018
Revision: 3
Views: 8548
Also read