WebSphere Commerce Version 7.0.0.6

Enabling interim fix JR51650

Interim fix JR51650 enhances the marketing framework to issue invalidations for e-Marketing Spot names when the e-Marketing Spot, a related activity, or a related promotion changes.

If cachespec entries were set up for e-Marketing Spot REST requests, then update the cachespec.xml file to ensure that invalidations occur at the proper times.

Before you begin

Install the cumulative interim fix for Fix Pack 6, JR53048.fp.

Procedure

  1. In the REST WAR cachespec.xml file, update the cache id entry associated with /wcs/resources/store/{storeId}/espot/{espotIdentifier} to include the <metadatagenerator> and add the emsName <dependency-id> to the <name>org.apache.wink.server.internal.servlet.RestServlet.class</name> cache entry.
    For example
    <!--/wcs/resources/store/{storeId}/espot/{espotIdentifier} -->      
    <cache-id>         
    	<property name="ignore-get-post">true</property>         
    	<component id="urlPath" type="pathinfo">           
    		<required>true</required>        
    	</component>         
    	<component id="method" type="requestType">           
    		<required>true</required>           
    		<value>GET</value>        
    	</component>         
    	<component id="storeId" type="attribute">           
    		<required>true</required>        
    	</component>         
    	<component id="catalogId" type="attribute">           
    		<required>true</required>        
    	</component>         
    	<component id="espotId" type="attribute">           
    		<required>true</required>        
    	</component>         
    	<component id="urlType" type="attribute">           
    		<required>true</required>           
    		<value>espot</value>        
    	</component>         
    	<component id="previewToken" type="attribute">           
    		<required>false</required>         
    	</component>
    	<component id="responseFormat" type="parameter">           
    		<required>false</required>        
    	</component>         
    	<component id="langId" type="parameter">           
    		<required>false</required>        
    	</component>         
    	<component id="currency" type="parameter">           
    		<required>false</required>        
    	</component>         
    	<component id="locale" type="parameter">           
    		<required>false</required>        
    	</component>        
    	<metadatagenerator>com.ibm.commerce.marketing.cache.RESTEMarketingSpotMetaDataGenerator</metadatagenerator>     
    </cache-id>     
    <dependency-id>emsName         
    	<component id="espotId" type="attribute">           
    		<required>true</required>        
    	</component>       
    </dependency-id>      
          
  2. If REST caching in enabled in the authoring environment, then in the Stores WAR cachespec.xml file, add or modify the following invalidation rules. First check if there is already a cache entry for the command names below. If the command cache entry does not already exist, then add the entire <cache-entry> invalidation rule. If the command cache entry already exists, then add the <invalidation> invalidation rules to the existing cache entry.
    <cache-entry> 
    	<class>command</class>
    	<name>com.ibm.commerce.marketing.facade.server.commands.ProcessMarketingSpotCmdImpl</name>
    	<name>com.ibm.commerce.marketing.facade.server.commands.ChangeMarketingSpotCmdImpl</name>
    	<property name="delay-invalidations">true</property>
    	<invalidation>emsName  <component id="getUniqueName" type="method" multipleIDs="true">  
    		<required>true</required> 
    		</component> 
    	</invalidation>
    	<invalidation>emsId  <component id="getUniqueID" type="method" multipleIDs="true"> 
    		<required>true</required>
    		</component>
    	</invalidation>
    </cache-entry>  
    <cache-entry>
    	<class>command</class>
    	<name>com.ibm.commerce.marketing.facade.server.commands.ProcessMarketingContentCmdImpl</name>
    	<name>com.ibm.commerce.marketing.facade.server.commands.ChangeMarketingContentCmdImpl</name>
    	<property name="delay-invalidations">true</property>
    	<invalidation>emsName  
    		<component id="getEMarketingSpotNamesForCacheInvalidations" type="method" multipleIDs="true">  
    			<required>true</required>  	
    		</component>
    	</invalidation>
    </cache-entry>  
    <cache-entry>
    	<class>command</class>
    	<sharing-policy>not-shared</sharing-policy>
    	<name>com.ibm.commerce.attachment.commands.UpdateAttachmentTargetCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.AddAttachmentAssetCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.DeleteAttachmentTargetCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.AttachmentAddCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.AttachmentUpdateCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.UpdateAttachmentAssetCmdImpl</name>
    	<name>com.ibm.commerce.attachment.commands.DeleteAttachmentAssetCmdImpl</name>
           <invalidation>emsName 
    		<component id="getEMarketingSpotNamesForCacheInvalidations" type="method"
    			multipleIDs="true">  
    			<required>true</required>  
    		</component>
    	</invalidation>
    </cache-entry>