IBM Support

JR43804: CMVC 223884 - TO HAVE THE CACHE ENTRIES IMPLEMENT SIZABLE

Direct link to fix

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • WebSphere Application Server DynaCache provides the capability
    to limit the size in megabytes of each cache instance.
    This feature is available by implementing the
    com.ibm.websphere.cache.Sizeable Java interface.
    Cache entries used by WebSphere Commerce do not implement this
    interface.
    The result is that this capability cannot be used, and the Cache
    Monitor application shows the size of each cache entry as -1
    (disabled).
    

Local fix

Problem summary

  • USERS AFFECTED:
    Any user wishing to use the memoryCacheSizeInMB in
    cacheinstances.properties for data cache
    
    PROBLEM ABSTRACT:
    WebSphere Commerce does not give the option to limit memory
    cache size
    
    BUSINESS IMPACT:
    Currently, without this feature, customers can limit the size of
    each cache instance by the maximum number of cache entries that
    can be contained in memory, and by the maximum size of the disk
    cache in gigabytes, but they cannot limit the memory footprint
    by specifying a maximum number of mega-bytes.
    To properly plan and configure each cache instance to avoid
    excessive memory footprint, they must run simulation tests,
    obtain heapdumps, and estimate the correct maximum size in terms
    of number of entries based on the observed memory footprints.
    
    RECOMMENDATION:
    

Problem conclusion

  • This iFix implements the com.ibm.websphere.cache.Sizeable
    interface for most cache entries used by WebSphere Commerce.  In
    particular, it does so for cache entries in the following
    DistributedMap object caches:
    
    services/cache/DM_Cache (Marketing cache)
    services/cache/DM_UserCache (Marketing user behavior cache)
    dmap/IVCache (External Inventory availability cache)
    dmap/PriceCache (External Price cache)
    services/cache/WC*DistributedMapCache (all the "data cache"
    object cache instances)
    
    It also implements the Sizeable interface for most cacheable
    commands used by WebSphere Commerce "out of the box".
    
    This iFix does not implement the Sizeable interface for the
    Price Rule cache, nor does it do so for Sales Center cacheable
    commands.
    
    For backward compatibility, this capability is not enabled "out
    of the box" and must be explicitly configured in the
    CrossTransactionCache tag of the InstanceProperties tag in the
    wc-server.xml instance configuration file.  A new "sizeable"
    property is defined for the CrossTransactionCache tag:  specify
    sizeable="true" to enable this capability.
    
    A cache entry that implements the Sizeable interface provides an
    estimate of its memory footprint to DynaCache, allowing
    DynaCache to control the overall memory footprint of each cache
    instance.  Test results have shown that the accuracy of the
    estimate can vary.  Observed estimates for the above object
    caches were generally slightly higher than their actual memory
    footprint.
    
    Note:  DynaCache will disable this capability for a cache
    instance if it detects that a cache entry that does not
    implement the Sizeable interface (for example custom cacheable
    commands in the baseCache) is placed into a cache instance.
    When this happens, a message like the following is placed in the
    SystemOut.log:
    DYNA1067E: The cache size in MB feature is disabled because the
    cached object is not sizeable.
    
    Note:  While DynaCache automatically implements the Sizeable
    interface for servlet (JSP) cache entries, test results have
    shown that the sizes calculated for these entries can be
    significantly underestimated.  For example, in some tests the
    actual memory footprint of the baseCache servlet cache was
    observed to be significantly larger than the calculated memory
    footprint reported by the cachemonitor application.  For these
    reasons, it is generally not advised to specify the memory size
    in MB for servlet cache instances.
    
    Note:  The normal cache maximum size setting is also used to
    limit the number of cache entries kept in memory.  You should
    continue to specify a reasonable maximum size setting for each
    cache instance, to control the memory footprint and prevent
    potential out of memory conditions.
    -------------------------------------------------------------
    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

    JR43804

  • Reported component name

    WC BUS DEV ED W

  • Reported component ID

    5724I3900

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function

  • Submitted date

    2012-08-17

  • Closed date

    2013-02-05

  • Last modified date

    2013-02-05

  • 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 DEV ED W

  • Fixed component ID

    5724I3900

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU055","label":"Cognitive Applications"},"Product":{"code":"SSYT2H","label":"WebSphere Commerce Developer Enterprise"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Line of Business":{"code":"LOB31","label":"WCE Watson Marketing and Commerce"}}]

Document Information

Modified date:
07 December 2021