The default cache mode for all scenario item descriptors is simple. This setting is ideal for a single ATG server environment, but if your site is running more than one ATG server, you must set the SQL repository cache mode to locked for the following item descriptors:

The cache mode is set to locked automatically in the Scenario module’s liveconfig configuration layer, so if you are deploying to a live site, you can simply add the liveconfig configuration layer to the environment for all your ATG servers to guarantee that the cache mode will be set correctly for these item descriptors. See the Configuring for Production chapter in the ATG Installation and Configuration Guide for information about the liveconfig configuration layer.

However, if you are working in a non-production, multiple-server environment that does not include the liveconfig configuration, you must set the cache mode manually as described below. If you do not set the cache mode to locked for these item descriptors, several scenario servers could attempt to process the same event, and serious errors will occur.

To complete this step manually, make the following changes to /atg/userprofiling/userProfile.xml:

--- localconfig/atg/userprofiling/userProfile.xml:
    <item-descriptor name="individualScenario" cache-mode="locked"/>
    <item-descriptor name="collectiveScenario" cache-mode="locked"/>
    <item-descriptor name="scenarioInfo" cache-mode="locked"/>
    <item-descriptor name="scenarioTemplateInfo" cache-mode="locked"/>
    <item-descriptor name="scenarioMigrationInfo" cache-mode="locked"/>
    <item-descriptor name="individualScenarioTransition"
    <item-descriptor name="collectiveScenarioTransition"

In addition, in order for locked mode caching to work in a multiple server environment, you must configure the following Lock Manager components, as described in the Enabling the Repository Cache Lock Managers section of the ATG Installation and Configuration Guide.

  • /atg/dynamo/service/ServerLockManager

  • /atg/dynamo/service/ClientLockManager

Be sure to set the useLockServer property of each ClientLockManager to true. (This property is set to true automatically in the liveconfig layer, but if your environment does not include liveconfig, you must set the property manually.)

In addition, verify that the lockManager property in the atg/userprofiling/ProfileAdapterRepository component is set as follows:

loading table of contents...