IBM Support

JR46900: CMVC 228847 - Reduce the number of ORDITPRMOCD queries for large shopping carts

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Promotion evaluation issues a query to the ORDITPRMOCD table for
    each order item in the shopcart.
    

Local fix

Problem summary

  • USERS AFFECTED:
     WebSphere Commerce version 7 customers who use the Promotion
    engine to evaluate promotions.
    
     PROBLEM ABSTRACT:
     Reduce the number of ORDITPRMOCD queries for large shopping
    carts
    
     BUSINESS IMPACT:
     Issuing a query for each order item in the shopcart can
    contribute to slower response times, especially when the number
    of items in the shopcart is large.
    
     RECOMMENDATION:
    

Problem conclusion

  • Promotion evaluation logic has been modified to issue fewer
    queries to the ORDITPROMOCD table.
    
     This new behavior is configured by default with the
    configuration shown below.  It is possible to further configure
    this new behavior, by placing the following line within the
    InstanceProperties tag in the wc-server.xml instance
    configuration file and modifying the default values shown below:
    
     <com.ibm.commerce.marketing.promotion.integration.dependency.WC
    SOrderFactory
     preFetchMaxSize="128" preFetchMultiples="1 2 4 8 16 32 64 128"
    roundUpToMultiple="true" />
    
     preFetchMaxSize - specifies the maximum number of orderitem ids
    to include in a single query.  This number cannot exceed 1000.
    
     preFetchMultiples - specifies that the number of orderitem ids
    that can appear in a query must be a multiple of one of the
    specified numbers.  A larger multiple will be used when
    possible.  To specify that a single query with all the orderitem
    ids should be used, specify preFetchMaxSize="1000" and
    preFetchMultiples="1".  To revert to the previous behavior of a
    single query per orderitem id, specify preFetchMultiples="1001".
    
     roundUpToMultiple - a value of "true" specifies that when the
    number of orderitem ids falls between two of the specified
    multiples, the higher multiple will be used, and the number of
    orderitem ids used in the query will be rounded up to the
    nearest multiple of that number, as long as the rounded number
    does not exceed the value for preFetchMaxSize.  When the rounded
    number exceeds the actual number of orderitem ids, duplicate
    orderitem ids are added to the query.  A value of "false"
    specifies that the lower multiple will be used to round the
    number of orderitem ids down to a multiple of that number.  When
    the rounded number is lower than the actual number of orderitem
    ids, more queries are executed, with the number of orderitem ids
    for each query determined in the same manner, until all
    orderitem ids have been processed.
    
     The preFetchMultiples default value is intended to reduce both
    the number of queries executed as well as the number of unique
    queries used, to help avoid placing too many unique prepared
    statements in the prepared statement cache, which can degrade
    performance.  For example, while a shopcart with 8 items would
    execute a single query,  when roundUpToMultiple is "true",  a
    shopcart with 9 items would execute a single query with 16
    orderitem ids, seven of which are duplicates.  When
    roundUpToMultiple is "false", a shopcart with 15 items would
    execute 4 queries, with 8, 4, 2, and 1 orderitem ids
    respectively.
    
     -------------------------------------------------------------
     The latest available maintenance information can be obtained
    from the Recommended Fixes for WebSphere Commerce technote:
     http://www.ibm.com/support/docview.wss?rs=3046&uid=swg21261296
    

Temporary fix

Comments

APAR Information

  • APAR number

    JR46900

  • Reported component name

    WC BUS EDITION

  • Reported component ID

    5724I3800

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-06-10

  • Closed date

    2013-11-04

  • Last modified date

    2013-11-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WC BUS EDITION

  • Fixed component ID

    5724I3800

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYSYL","label":"WebSphere Commerce Enterprise"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
04 November 2013