Retrieving Entities from In-Memory Cache

If no caching engine is provided, the Infinity Process Platform engine retrieves entities per request using a transaction bound memory cache. Some entities are not expected to be changed very often, but are frequently retrieved. If a caching engine is provided, and the caching switch property is not set to false, these entities are stored and retrieved in cross transaction caches. These include the following entities:

Disabling the Caching Mechanism

To turn off the use of caches, even if a caching engine is detected, add the property Infinity.Engine.Caching to your server-side carnot.properties file and set it to false.

Infinity.Engine.Caching = false

Requirements

The cache engine is not part of the Infinity Process Platform distribution, you have to install your own caching engine. The following caching engines are currently supported by Infinity Process Platform:

Configuration

The configuration required to connect to the client cache engine is to add the corresponding adapter to the Infinity Process Platform engine classpath, either in your carnot.ear file or in the global application server classpath.

The actual configuration of the cache engine should be performed according to the documentation of the respective caching engines installed in your environment.

Note
Please note that the provider should be transaction aware.

Usage of Caches in Infinity Process Platform

In case an installed cache engine is present in the client environment, Infinity Process Platform detects it and uses it. If no cache engine is found or the installed cache engine is not supported, only the transaction bound memory cache is used.

In case a cache engine is found, the modification pattern of the cacheable entities is changed, in that all changes will be made not on the object retrieved from the cache, but on a different object, either freshly retrieved from the database or cloned from the cached object. This new object will replace the old one in the cache.

The retrieval of cacheable entities is directed to the respective caches whenever possible.

Using Hazelcast with IPP

Per default, Infinity Process Platform uses Hazelcast as in-memory cache. Hazelcast is a clustering and scalable data distribution platform. For the second level caching functionality Infinity Process Platform leverages Hazelcast's distributed Map capabilities. For details on Hazelcast refer to http://www.hazelcast.com/product.jsp.

Refer to the Application Server Setup section of the Deployment Guide for details on the configuration for specific application server as well as for spring environments.