Configuración de la invalidación de memoria caché dinámica para precios generados por reglas de precios

Configure la invalidación de memoria caché dinámica para que los precios establecidos por reglas de precios se renueven en las páginas de la tienda cuando los usuarios de negocio cambien una regla de precio, una ecuación de precio, una constante de precio o una asignación de regla de precio.

Por qué y cuándo se efectúa esta tarea

Para configurar este tipo de invalidación, debe realizar las siguientes actualizaciones en el archivo cachespec.xml de la tienda:
  • Combine las reglas de invalidación que proporciona HCL Commerce en un cachespec.xml de ejemplo. Estas reglas de invalidación generan ID de invalidación cuando se producen cambios relacionados con reglas de precios.
  • Añada los ID de dependencia relacionados a las entradas de memoria caché que copien en caché información relacionada con precios de las reglas de precios.

El siguiente procedimiento proporciona pasos detallados.

Procedimiento

  1. Revise el archivo cachespec.xml de ejemplo que está disponible dentro del entorno de producción. Este archivo de ejemplo contiene las reglas de invalidación para reglas de precio:
    • WCDE_installdir/components/management-center/samples/dynacache/invalidation/pricerule/cachespec.xml
  2. Revise un archivo cachespec.xml de ejemplo para una tienda de inicio de HCL Commerce a fin de ver cómo se definen las identificaciones de dependencia para las entradas de la memoria caché que almacenan información relacionada con los precios:
    1. Abra el ejemplo cachespec.xml para la tienda:
      • HCL Commerce DeveloperWCDE_installdir\samples\dynacache\store_name\cachespec.xml
      Donde store_name es el nombre del directorio de tienda.
    2. Para ver dónde y cuándo se han definido los ID de dependencia en este archivo de ejemplo, busque:
      priceRule:storeId
  3. Utilice como referencia los ejemplos que ha revisado y haga los cambios necesarios en el archivo cachespec.xml para la tienda:
    1. Abra el archivo cachespec.xml para la tienda:
      • HCL Commerce Developerworkspace_dir/stores/WebContent/WEB-INF/cachespec.xml
      • HCL Commerce EnterpriseWC_eardir/Stores.war/WEB-INF/cachespec.xml
    2. Combine las siguientes reglas de invalidación (este fragmento de código procede del ejemplo cachespec.xml que ha revisado en el paso 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>
    3. Añada el siguiente código de ID de dependencia a cada entrada de memoria caché que copia en caché información relacionada con precios de las reglas de precios:
      <dependency-id>priceRule:storeId
          <component id = "storeId" type = "parameter" multipleIDs = "true">
              <required>true</required>
          </component>
      </dependency-id>
    4. Guarde y cierre el archivo.cachespec.xml
  4. Si utiliza un entorno de transición, o un programa de utilidad como massload, asegúrese de que los datos almacenados en memoria caché que se recuperan no sean obsoletos o no válidos habilitando los siguientes desencadenantes de bases de datos:
    • HCL Commerce DeveloperWCDE_installdir/schema/version/DB_type/wcs.cacheivl.trigger.sql
    • HCL Commerce EnterpriseWC_eardir/schema/version/wcs.cacheivl.trigger.sql
    Estos desencadenantes de base de datos hacen que los ID de invalidación formulados especialmente se añadan a la tabla de base de datos CACHEIVL, en la columna DATAID. El trabajo del planificador DynaCacheInvalidationCmd procesa las filas CACHEIVL y emite las invalidaciones adecuadas de la memoria caché. Cuando se utiliza esta técnica, hay un retardo entre el momento en que se realizan los cambios de base de datos y el momento en que el trabajo de planificador DynaCacheInvalidation realiza las invalidaciones. Durante dicho periodo de tiempo, se utilizan los datos antiguos almacenados en memoria caché.