PPM Cache Overview

There are two type of caches in PPM that can be tuned by PPM Administrators:

  • Legacy cache (table components, request type search fields, list validation values, and so on)

    It is configured in the <PPM_HOME>/conf/tune.conf directory. Setting the parameters in server.conf works too, and some of the parameters can be edited from the Administration Console. You can view its cache statistics in the Server Cache Status report in Server Tools of PPM Workbench.

  • New cache (requests, request types, modules, portlets, workflows, and so on)

    It is configured in the <PPM_HOME>/conf/cache.conf directory. You can view its cache statistics in the CacheManager Statistics report in Server Tools of PPM Workbench.

Note: There is a third type of caches in PPM (the Hibernate second level cache). However, this is an internal cache that cannot be configured or tuned. Its configuration is defined in the <SERVER_HOME>\deploy\itg.war\WEB-INF\conf\ehcache.xml directory and it should not be tampered with.

Advantages of New Cache over Legacy Cache

The new cache has the following advantages over the legacy cache:

  • All cache objects are stored using Java SoftReference. As a result, if the JVM runs out of heap memory, objects in the cache will be automatically garbage collected to free up memory. This makes it possible to store large amounts of data in the cache without risking out-of-memory issues under heavy system load.

  • There are more cache configuration parameters (at least until PPM 9.31, in which new cache configuration has been simplified).

  • It is possible to flush a single object in the new cache by using the ksc_flush_cache special command (which only works with new cache), whereas only full cache flush is possible when using kRunCacheManager.sh (which works with both legacy and new cache).

  • The new cache provides configurable staleness checks, whereas such checks are hard coded in the legacy cache.

  • More data is included in the cache report (number of staleness checks, average load time, and number of flushes of different types).