Configuración de registros de base de datos PromotionArgument para reducir conflictos de bloqueo

Puede configurar el sitio para utilizar registros PromotionArgument desde varias tablas de base de datos para reducir problemas de bloqueo de tabla de base de datos y mejorar el rendimiento general del escaparate.

Antes de empezar

Asegúrese de que existen las condiciones siguientes, de lo contrario no realice esta tarea:
  • No existe ningún código personalizado que se base en los registros de la tabla de base de datos PX_PROMOARG.
  • El ajuste de promoción VoucherAdjustment no se utiliza. Este ajuste ofrece un cupón a un cliente cuando se aplica una promoción y se somete un pedido. De forma predeterminada este ajuste no se utiliza. Para que el sitio utilice este ajuste, se requiere personalización.

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

Cuando se evalúa una promoción, los resultados de la evaluación, denominados PromotionArguments, se mantienen en la tabla de la base de datos de PX_PROMOARG. Estos registros se utilizan siempre que se formaliza un pedido para llevar a cabo las acciones siguientes:
  • Actualizar las estadísticas de uso de promoción en la tabla de base de datos PX_USAGE.
  • Marcar códigos y cupones de promoción canjeados.
  • Liberar códigos y cupones de promoción no utilizados.
  • Eliminar registros de opciones de bonificación de promoción obsoletos.
En sitios con un gran volumen de tráfico, se puede producir un bloqueo en la tabla PX_PROMOARG. Si este bloqueo se produce cuando los compradores recorren el proceso de pasar por caja, se puede producir una degradación del rendimiento. Si no existe ninguna personalización que utilice los datos de la tabla PX_PROMOARG, puede configurar el motor de promoción para que los registros de PX_PROMOARG no permanezcan en la base de datos. Si completa esta configuración, cuando se formaliza un pedido las acciones PromotionArgument se realizan examinando los registros de las tablas ORDADJUST, CLCDPROMO, PX_CDUSAGE, PX_CDPROMO, PX_COUPON, PX_PROMOTION en lugar de la tabla PX_PROMOARG. Esta configuración puede dar como resultado una mejora del rendimiento general del escaparate.

Procedimiento

  1. Abra una conexión con la base de datos y ejecute la sentencia de inserción SQL siguiente:
    INSERT INTO CMDREG (STOREENT_ID, INTERFACENAME, CLASSNAME) 
    VALUES (0,'com.ibm.commerce.order.calculation.FinalizeDiscountCalculationUsageCmd', 
    'com.ibm.commerce.order.calculation.FinalizeDiscountCalculationUsageNoPromoargCmdImpl'); 
    Nota: La sentencia SQL se separa en distintas líneas para facilitar su visualización. Es posible que necesite formatear la sentencia SQL en una sola línea para que se ejecute satisfactoriamente.
  2. Cambie la clase de implementación para que sea PromotionArgumentPersistenceManager: Modifique el archivo
    1. Vaya al directorio de workspace_dir/WC/xml/PromotionEngineConfiguration.
    2. Abra el WCSPromotionEngineConfig.xml para editarlo.
    3. Localice la clase de implementación para PromotionArgumentPersistenceManager. Cambie la clase de implementación para que sea:
      com.ibm.commerce.marketing.promotion.runtime.PromotionArgumentNoPromoargSessionBeanPersistenceManager
      Asegúrese de la actualización a la clase de implementación PromotionArgumentPersistenceManager se parezca a lo siguiente:
      <PromotionArgumentPersistenceManager 
          impl="com.ibm.commerce.marketing.promotion.runtime.PromotionArgumentNoPromoargSessionBeanPersistenceManager" />
  3. Reinicie el servidor.