Use this task to define cacheable objects inside the cachespec.xml, found inside the Web module WEB-INF or enterprise bean META-INF directory. Enable the dynamic cache. See Enabling the dynamic cache service for more information.
You can save a global cachespec.xml in the application server properties directory, but the recommended method is to place the cache configuration file with the deployment module. The root element of the cachespec.xml file is <cache>, which contains <cache-entry> elements.
The <cache-entry> element can be nested within the <cache> element or a <cache-instance> element. The <cache-entry> elements that are nested within the <cache> element are cached in the default cache instance. Any <cache-entry> elements that are in the <cache-instance> element are cached in the instance that is specified in the name attribute on the <cache-instance> element.
Within a <cache-entry> element are parameters that allow you to complete the following tasks to enable the dynamic cache with the cachespec.xml file:
In the <app_server_root>/properties directory, locate the cachespec.sample.xml file.
To cache an object, WebSphere Application Server must know how to generate unique IDs for different invocations of that object. The <cache-id> element performs that task. Each cache entry can have multiple cache-ID rules that run in order until either a rule returns cache-ID that is not empty or no more rules remain to run. If no cache-ID generation rules produce a valid cache ID, then the object is not cached. Develop the cache IDs in one of two ways:
<cache-entry> <class>servlet</class> <name>/servlet/CommandProcessor</name> <cache-id> <idgenerator>com.mycompany.SampleIdGeneratorImpl</idgenerator> <timeout>60</timeout> </cache-id> </cache-entry>
The dependency ID is generated by concatenating the dependency ID base string with the values returned by its component elements. If a required component returns a null value, then the entire dependency ID does not generate and is not used. You can validate the dependency IDs explicitly through the dynamic cache API, or use another cache-entry <invalidation> element. Multiple dependency ID rules can exist per cache entry. All dependency ID rules run separately. See cachespec.xml file for a list of <component> elements.
The invalidation ID is generated by concatenating the invalidation ID base string with the values returned by its component element. If a required component returns a null value, then the entire invalidation ID is not generated and no invalidation occurs. Multiple invalidation rules can exist per cache-entry. All invalidation rules run separately.
When new versions of the cachespec.xml are detected, the old policies are replaced. Objects that cached through the old policy file are not automatically invalidated from the cache; they are either reused with the new policy or eliminated from the cache through its replacement algorithm.
For each of the three IDs (cache, dependency, invalidation)
generated by cache entries, a <cache-entry> can contain multiple
elements. The dynamic cache runs the <cache-id> rules in order,
and the first one that successfully generates an ID is used to cache that
output. If the object is to be cached, each one of the <dependency-id> elements
is run to build a set of dependency IDs for that cache entry. Finally, each
of the <invalidation> elements are run, building a list of IDs that
the dynamic cache invalidates, whether or not this object is cached.