+

Search Tips   |   Advanced Search

Cache Manager Service

The portal Cache Manager Service is responsible for managing the different caches used in WebSphere Portal.

In the WAS console, the portal Cache Manager Service is listed as WP CacheManagerService. The portal provides two different types of caches: shared and non-shared:

Shared caches Cluster aware. Deleting an element from the cache on one cluster node results in deleting that element from the corresponding cache instances on all other nodes. Frequently changing data is kept consistent over the whole cluster installation.
Non-shared caches Used for data where cluster awareness is of no concern. This avoids unnecessary network communication overhead.

Plan well ahead and apply special care when modifying these properties. There are two levels of properties:

Properties Description
cacheglobal Default setting used for all caches unless explicitly overridden by the corresponding cache instance property.
cacheinstance.cacheidentifier Used to override a global setting, for example the size of the cache, for a specific instance of a cache.

Changing some or all of these properties can dramatically improve or impair portal performance. IBM recommends not changing the shared setting for any cache unless the consequences are absolutely understood and agreed. To determine the optimal values for the size, lifetime, admit-threshold and replacement properties, monitor the cache properties during the staging phase of the portal installation. Use the Tivoli Performance viewer (WebSphere Application Server PMI client) to find the optimal settings for our environment.

Cache Manager Service for both shared and non-shared caches:

    cacheglobal.enabled = [ true | false ]
    cacheinstance.cacheidentifier.enabled = [ true | false ]
    Control whether caching is enabled or not. Use this property with care !

    cacheglobal.size = number
    cacheinstance.cacheidentifier.size = number
    Define the number of elements that can be put into the cache before eviction takes place. The eviction uses a "near LRU" algorithm.

    cacheglobal.shared = [ true | false ]
    cacheinstance.cacheidentifier.shared = [ true | false ]
    Whether a cluster-aware cache is to be used or not.

    cacheglobal.lifetime = number
    cacheinstance.cacheidentifier.lifetime = number
    Lifetime of elements in the cache in seconds. When the specified lifetime is up, elements are not discarded from the cache immediately. They are evicted when the next element is inserted. Specifying -1 means an infinite lifetime. In this case no timeout is applied and the cache entry is never evicted.

    randomizePercent = number
    cacheinstance.cacheidentifier.randomizePercent= number

    Randomize cache entry lifetimes to some extent. If all entries in a cache have the same lifetime, this can result in high loads on the database when reloading entries, as large amounts of entries are evicted at the same time.

    Specify the value for this property as a numeric value given in percent. For example, a value of 25 means that all cache entry lifetimes are up to 25% more or less than the default lifetime (given by the lifetime parameter). No cache entry will have a lifetime less than 50% of the default value, no matter how large specified the value for this property. By default no value is specified. In this case lifetimes are not randomized, and all cache entries have the default lifetime.

    If we set the default lifetime property to infinite by the value -1 , the lifetime randomization setting is not applied, even if specified a value for the randomizePercent property.

    We can view the actual randomized lifetime of a cache entry by enabling tracing for class com.ibm.wps.services.cache.AbstractCache.

Cache Manager Service for for non-shared caches.

Setting them for shared caches does no harm, they will be ignored.

    cacheglobal.replacement= [aggressive | moderate | conservative]
    cacheinstance.cacheidentifier.replacement= [aggressive | moderate | conservative]
    Controls the eviction algorithm behavior.

    cacheglobal.admin-threshold = number
    cacheinstance.cacheidentifier.admin-threshold = number
    Admittance threshold. Use this to keep unwanted entries from the cache. An entry is cached only if it is put into the cache as often as specified by the value for this property. If we want each entry to be cached, set this to zero ( 0 ).

The cache identifiers...

    com.ibm.wps.pe.deployedresources
    Cache servlet configuration information and the database representation of all web modules stored in the database.

    com.ibm.wps.pe.portletregistry
    Cache the database representation of all portlets stored in the database.

    com.ibm.wps.pe.portletdefinition
    Cache the database representation of all portlet applications stored in the database.

Cache for social rendering and the IBM Digital Data Connector (DDC)

    com.ibm.workplace.wcm.pzn.plr.BeanListCache
    Cache bean list Java objects returned by DDC plug-ins. The plug-ins control cache key generation for individual entries, and determine whether the bean lists are automatically removed from the cache during user login. By default, this cache is enabled.

    com.ibm.workplace.wcm.pzn.plr.xml.DocumentCache
    The document cache is used by the generic XML DDC plug-in for caching the Document Object Model (DOM) objects for individual source URIs. This cache specifically the DOMs for associated item attributes. If an individual associated item attribute is flagged as shared in the list-rendering profile, the cache entries are shared between different users. Such shared documents do not get invalidated on user login. Documents that are loaded through non-shared associated item attributes are cached separately per user. These cache entries are automatically invalidated during login. By default, this cache is enabled.

    com.ibm.workplace.wcm.pzn.plr.ListRenderingCache
    The list-rendering cache caches the markup that a specific appearance component generates for a specific bean list instance. If we enable this cache, updates in the appearance component might not become visible immediately, as updates to the corresponding Web Content Manager design components do not invalidate this cache. In general, the entries in this cache are invalidated together with the corresponding bean list objects in the bean list cache listed earlier in this topic. As a result, it is good practise to disable this cache on authoring systems and enable it on delivery systems.

    To use this cache, use the ListRenderingCache rendering plug-in to instrument the WCM design components involved in the markup generation for this cache. For more information, read Use the list-rendering cache.


Parent Portal service configuration

Related reference:

Digital Data Connector cache tuning