Direct link to fix
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