Clearing Promotion from the Cache

Note: This topic applies to customers on Siebel 26.5 and above.

Once a product administrator has completed a promotion definition and releases the promotion, object managers can use the bundle promotion. Once an object manager requests the promotion definition, it's retrieved from the database and stored in both memory and the file system to enhance performance. If any changes are needed to the promotion definition, the product administrator can make the changes. To get the new changes, the product administrators needs to clear or refresh the cache.

Clear the Cache for a Specific Promotion

To clear the cache for an individual promotion:
  1. Navigate to Administration - Product - Product Promotions.
  2. Search for the promotion.
  3. In the child More Info applet, select Clear Cache from menu.

Full Cache Resynchronization (Recommended)

As a best practice, it's recommended to periodically force a full resynchronization of the Siebel Promotion cache.

Caution: This process invalidates all bundle promotions.

Two dedicated tables, S_VOD_CASHESYNC and S_VOD_CACHEREQ, are used to manage the synchronization process and are queried on a frequent basis. These tables hold temporary data that supports cache synchronization. Over time, this data can accumulate and lead to performance degradation, which typically manifests as increasingly slow queries.

To trigger a full resynchronization:

  1. Go to Administration - Product - Product Promotions.
  2. Search for the promotion.
  3. Navigate to the Versions tab, and select Refresh Cache in the Versions applet.

How Cache Invalidation Works: Both Clear Cache and Refresh Cache invalidate the existing cache for the relevant bundle promotion(s). Once either action is performed, object managers must query the database to retrieve the updated definition. The promotion broker then fetches the latest definition, reconstructs the data structure, stores it in memory, and writes a new version to the file cache.

Tune the Bundle Promotion Cache

Just like the product configurator cache, the Siebel bundle promotion cache can be tuned using the parameters shown in this table:

Parameter Alias Parameter Name Data Type Default Value Description
eProdNumOfCachedPromotions Number of Promotion Definitions Cached in Memory Integer 100 Number of Promotion Definitions kept in memory at any given time.
ePromotionSnapshotFlg Promotion Cache - Reuse the Snapshot Key Cache for PromotionBroker Boolean TRUE Set to TRUE to enable snapshot mode for PromotionBroker so that Snapshot Key Cache (SKC) can be re-used across user sessions within the same OM. It is strongly recommended that you do not change this parameter.

Troubleshoot Promotion Cache

Enable Logging

To enable logging, navigate to Administration - Server Configuration and set the log level for the component event with the alias GenericLog to 5.

When reviewing the component log file, search for the keywords CSSPromotionRuleBroker and CSSPromotionRulesLoader.

Bundle Promotion Profiler

Siebel Promotion Profiler is a specialized diagnostic tool used primarily by developers and performance tuners to peek under the hood of the promotion broker.

If you're dealing with a complex promotion that's taking forever to load promotions, the profiler is your best friend. It helps you identify exactly which part of your logic – be it building promotion structure, get promotion definition, building aggregate rules, or building component or aggregate pricing rules, and so on – is taking more processing time.

Enabling Profiler

Set the operating system environment variable VOD_PROFILER_ON to TRUE. This is the same environment variable used with Siebel Configurator, and it controls whether statistical data is collected on instrumented functions. Accepted values are TRUE or FALSE.

Note: If a remote Siebel Configurator is in use, this variable must be set on the operating systems of both the Application Object Manager and the remote Siebel Configurator.

Generating a Profile

Once VOD_PROFILER_ON is set to TRUE, invoke the GenerateProfile method of the ISS Promotion CP Admin Service business service using either the REST API or the Business Service Simulator. No input arguments are required.

The profiler will generate a Promotion_Cache_Profile_*.txt file in the log folder. Below is the sample output of profile:

PromotionBroker Statistics: Started at: 12/12/2025 1: 4:22 (GMT) As of: 12/12/2025 1: 6:52 (GMT) Max Number of Cached Models = 100 [obj] Object Type: ISS_PROM_DEF Number of Cached Objects = 5 [obj] Snapshot Map Size = 5 [obj] Total Instrumentation Time = 149.753821 [s] Statistic Table Event Name Number of calls Average [s] Deviation Minimum [s] Maximum [s] Total [s] CSSPromotionRulesLoader::BuildPromotionStructure 5 0.072255 0.124014 0.004093 0.290191 0.361273 CSSPromotionRulesLoader::GetPromotionDef 5 0.322866 0.312433 0.163018 0.880481 1.614330 CSSPromotionRulesLoader::BuildAggregateRules 5 0.000007 0.000001 0.000006 0.000010 0.000037 CSSVerObjDefBroker::RefreshUserSnapshot 10 0.000019 0.000004 0.000014 0.000026 0.000194 CSSVerObjDefBroker::SetSnapshotSession 5 0.067277 0.021531 0.049817 0.103913 0.336384 CSSPromotionRuleBroker::GetPromoDef 5 0.255417 0.291942 0.106983 0.776395 1.277087 CSSPromotionRulesLoader::BuildComponentRules 5 0.010801 0.024035 0.000049 0.053796 0.054003 CSSVerObjDefBroker::SynchronizeSharedSnapshot 5 0.067189 0.021471 0.049763 0.103715 0.335944 CSSPromotionRuleBroker::LoadPromotionDef: Take existing file cache 5 0.076152 0.123760 0.007889 0.293496 0.380762 CSSPromotionRulesLoader::BuildCompAggPricingRules 5 0.038115 0.084625 0.000049 0.189496 0.190573 

Reading the Profile Output

The generated file contains these key entries:

Entry Description
Max Number of Cached Models The value configured for the OM parameter eProdNumOfCachedPromotions. Default is 100.
Number of Cached Objects The current number of promotion objects held in cache.
CSSPromotionRulesLoader::GetPromotionDef Runtime statistics for UI-based operations.
CSSPromotionRulesLoader::GetPromotionDef API Runtime statistics for API-based (for example, Postman) operations.
All other entries Runtime statistics for individual node-level operations.

Profiling Internal Behavior

Each time the GenerateProfile method is invoked, any previously collected profiling data is cleared. The system then begins collecting fresh statistics for the interval between that invocation and the next.

Caution: While the profiler is powerful, it adds its own overhead. Never leave it running in a production environment for long time, as the logging process itself can slow down the system significantly.