Configurez l'invalidation du cache dynamique afin que les prix définis par les règles de tarification soient actualisés dans les pages du magasin lorsque les professionnels modifient une règle de tarification, une équation de prix, une constante de prix ou une attribution de règle de tarification.
Pourquoi et quand exécuter cette tâche
Pour configurer ce type d'invalidation de cache, vous devez effectuer les mises à jour suivantes sur le fichier cachespec.xml pour votre magasin :
- Fusionnez les règles d'invalidation fournies par HCL Commerce dans un fichier modèle cachespec.xml. Ces règles d'invalidation génèrent des ID d'invalidation lorsque des modifications de règles de tarification sont apportées.
- Ajoutez les ID de dépendance associés à toutes les entrées de cache qui masquent les informations liées aux prix pour les règles de tarification.
La procédure suivante fournit des étapes détaillées.
Procédure
-
Examinez le modèle de fichier cachespec.xml disponible dans votre environnement de production : ce modèle de fichier contient les règles d'invalidation des règles de tarification :
- WCDE_installdir/components/management-center/samples/dynacache/invalidation/pricerule/cachespec.xml
-
Examinez le modèle de fichier cachespec.xml d'un magasin type HCL Commerce pour comprendre comment les ID de dépendance sont définis pour les entrées de cache qui masquent les informations liées aux prix :
-
Ouvrez le modèle de fichier cachespec.xml de votre magasin :
WCDE_installdir\samples\dynacache\store_name\cachespec.xml
Où
store_name est le nom de répertoire de votre magasin.
-
Pour savoir où et comment les ID de dépendance sont définis dans ce modèle de fichier, recherchez la chaîne suivante :
-
A l'aide des modèles que vous avez examinés, apportez les modifications nécessaires au fichier
cachespec.xml pour votre magasin :
-
Ouvrez le fichier cachespec.xml de votre magasin :
workspace_dir/stores/WebContent/WEB-INF/cachespec.xml
WC_eardir/Stores.war/WEB-INF/cachespec.xml
-
Fusionnez les règles d'invalidation suivantes (ce fragment de code provient du modèle cachespec.xml que vous avez examiné à l'étape 1) :
<cache-entry>
<class>command</class>
<sharing-policy>not-shared</sharing-policy>
<name>com.ibm.commerce.contract.tc.commands.ContractTCSaveCmdImpl</name>
<name>com.ibm.commerce.price.facade.server.commands.ChangePriceRuleCmdImpl</name>
<name>com.ibm.commerce.price.facade.server.commands.ChangePriceConstantCmdImpl</name>
<name>com.ibm.commerce.price.facade.server.commands.ChangePriceEquationCmdImpl</name>
<property name = "delay-invalidations">true</property>
<invalidation>
priceRule:storeId
<component id = "getPriceRuleReferencedStoreIds" type = "method" multipleIDs = "true">
<required>true</required>
</component>
</invalidation>
</cache-entry>
-
Ajoutez le code de l'ID de dépendance suivant à chaque entrée de cache qui masque les informations liées aux prix pour les règles de tarification :
<dependency-id>priceRule:storeId
<component id = "storeId" type = "parameter" multipleIDs = "true">
<required>true</required>
</component>
</dependency-id>
-
Enregistrez et fermez le fichier cachespec.xml.
-
Si vous utilisez un environnement de transfert ou un utilitaire tel que massload, vérifiez que les données mises en cache en cours de récupération ne sont pas obsolètes ou invalides en activant les déclencheurs de base de données suivants :
WCDE_installdir/schema/version/DB_type/wcs.cacheivl.trigger.sql
WC_eardir/schema/version/wcs.cacheivl.trigger.sql
Ces déclencheurs de base de données provoquent l'ajout d'ID invalidation spécialement formulés à la fin de la table de base de données
CACHEIVL, dans la colonne DATAID. Le travail de planificateur DynaCacheInvalidationCmd traite les lignes CACHEIVL et émet les invalidations en cache appropriées. Lorsque cette technique est utilisée, il y a un délai entre le moment où les modifications de base de données sont apportées et où le travail de planificateur
DynaCacheInvalidation exécute les invalidations. Pendant ce délai, les anciennes données mises en cache sont utilisées.