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
- 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.
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
-
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. -
Cambie la clase de implementación para que sea
PromotionArgumentPersistenceManager
: Modifique el archivo - Reinicie el servidor.