Develop > Presentation layer > Customize promotions > Promotion engine customization > Customization scenarios
Customize persistence management
The promotion engine's persistence management implementation consists of seven persistence managers for seven types of objects.
The seven types of objects are:
- Promotions
- Promotion groups
- Promotion policies
- Coupons
- Promotion arguments
- Promotion statistics
- Dynamic attributes
It is unlikely that the persistence management implementation will require customization. However, if required, the steps are the same as customizing either the agenda builder or the sequence builder. The same three step process applies:
Procedure
- Implement the corresponding interface.
The seven interfaces for the persistence managers include the following:
- com.ibm.commerce.marketing.promotion.PromotionPersitenceManager
- com.ibm.commerce.marketing.promotion.group.PromotionGroupPersitenceManager
- com.ibm.commerce.marketing.promotion.policy.PromotionPolicyPersitenceManager
- com.ibm.commerce.marketing.promotion.coupon.CouponPersitenceManager
- com.ibm.commerce.marketing.promotion.stats.StatsPersitenceManager
- com.ibm.commerce.marketing.promotion.runtime.PromotionArgumentPersitenceManager
Since all of the interfaces are subclasses of XMLizable, part of implementing this interface includes defining the toXML and fromXML methods as well as designing the serialized XML form of these persistence managers.
- Modify the promotion engine configuration to register the change.
Locate the PersistenceManagerRegistry element:
<PersistenceManagerRegistry impl= "com.ibm.commerce.marketing.promotion.persistence.PersistenceManagerRegistry"> <PromotionPersistenceManager impl= "com.ibm.commerce.marketing.promotion.PromotionSessionBeanPersistenceManager"> <InitialCacheSize>1024</InitialCacheSize> <MaxCacheSize>8192</MaxCacheSize> </PromotionPersistenceManager> <PromotionPolicyPersistenceManager impl= "com.ibm.commerce.marketing.promotion.policy.PromotionPolicySessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </PromotionPolicyPersistenceManager> <PromotionGroupPersistenceManager impl= "com.ibm.commerce.marketing.promotion.group.PromotionGroupSessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </PromotionGroupPersistenceManager> <DynamicAttributePersistenceManager impl= "com.ibm.commerce.marketing.promotion.dynattr.DynamicAttributeSessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </DynamicAttributePersistenceManager> <PromotionArgumentPersistenceManager impl= "com.ibm.commerce.marketing.promotion.runtime.PromotionArgumentSessionBeanPersistenceManager"> <CouponPersistenceManager impl= "com.ibm.commerce.marketing.promotion.coupon.CouponSessionBeanPersistenceManager"> <StatsPersistenceManager impl= "com.ibm.commerce.marketing.promotion.stats.StatsSessionBeanPersistenceManager> </PersistenceManagerRegistry>
Change the XML element that corresponds to your changed persistence manager.
- Restart WebSphere Commerce.
You must restart WebSphere Commerce for the changes to take effect.
Related reference