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 Name | Default Value |
---|---|
com.tibco.fos.model.cacheType.cache.maxNoProductcached | 1000 |
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 Name | Default Value |
---|---|
enableOpeApisResponseCache | true |
getOfferResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoGetOfferResponseCached | 1000 |
validateOfferResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoValidateOfferResponseCached | 1000 |
getProdInfoResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoGetProdInfoResponseCached | 1000 |
getPricesResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoGetPricesResponseCached | 1000 |
getPriceInfoResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoGetPriceInfoResponseCached | 1000 |
getCategoryResponseCacheExpiryPeriod | 30 |
com.tibco.af.opes.cache.maxNoGetCategoryResponseCached | 1000 |