Tuning Parameters

Use the following tuning parameters to improve the performance of TIBCO Offer and Price Engine.

Global Cache

In the JVM memory cache, the models required for the start action are retained. The rest of the models are fetched from a relational database or Redis.

In TIBCO Offer and Price Engine, for each model, such as rule model, category model, a dedicated cache is provided. Global cache has an expiry period, and initially, it is empty. The following properties are associated with each global cache:

  • Number of models to be cached
  • Global cache expiry period (Default: 30 seconds)
  • Default value setting (true/false)

Improve the performance of the engine by loading the required products in memory.

To load all the products in memory, the following flag starting with enabled must be set to true (it's disabled by default) in ConfigValues_OPE.xml under <Category description="Catalog Store Configuration for OPES" name="Catalog Store Configuration for OPES" visibility="Basic"> category. Also, you need to set the number of models you want to store in the cache and cache expiry period property accordingly.

Property NameDefault Value
com.tibco.fos.model.cacheType.cache.maxNoProductcached1000
enableProductModelGlobalCache false
productCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoPriceCached 1000
enablePriceModelGlobalCache false
priceCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoDiscountCached 1000
enableDiscountModelGlobalCache false
discountCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoRuleCached 1000
enableRuleModelGlobalCache false
ruleCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoCategoryCached 1000
enableCategoryModelGlobalCache false
categoryCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoOfferIdsCached 1000
enableOfferIdsModelGlobalCache false
offerIdsCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoFilterCached 1000
enableFilterProductGlobalCache false
filterProductCacheExpiryPeriod 30
com.tibco.af.opes.cacheType.cache.maxNoSegmentCached 1000
enableSegmentProductGlobalCache false
segmentProductCacheExpiryPeriod 30
com.tibco.fos.model.cacheType.cache.maxNoTopLevelProductsCached 1000
enableTopLevelProductsGlobalCache false
topLevelProductsCacheExpiryPeriod 30

Response Caching

To cache the response, the hash for each request is calculated. Any type of unique element (for example, the businesstransactionid) that you add, is treated as a new request by the OPE engine. Therefore, if you want to use response caching, you must eliminate using all the unique elements in the requests.

Improve the performance of the engine by loading the required responses in memory.

To use Response Caching, the following flag starting with enabled must be set to true (it's disabled by default) in ConfigValues_OPE.xml under <Category description="Api Response Cache Configuration for OPES" name="Api Response Cache Configuration for OPES" visibility="Basic"> category. Also, set the number of responses for a particular API and expiry period of the cache property accordingly.

Property NameDefault Value
enableOpeApisResponseCachetrue
getOfferResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoGetOfferResponseCached1000
validateOfferResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoValidateOfferResponseCached1000
getProdInfoResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoGetProdInfoResponseCached1000
getPricesResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoGetPricesResponseCached1000
getPriceInfoResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoGetPriceInfoResponseCached1000
getCategoryResponseCacheExpiryPeriod30
com.tibco.af.opes.cache.maxNoGetCategoryResponseCached1000