blob: c69e428870350c227e996b4dfb21c0e0510acdc8 [file] [log] [blame]
<?xml version="1.0"?>
<document>
<properties>
<title>Element Attribute Configuration</title>
<author email="ASmuts@apache.org">Aaron Smuts</author>
</properties>
<body>
<section name="Element Attribute Configuration">
<p>
The following document describes the various
configuration options available for cache elements.
Each element put into the cache can be configured
independently. You can define element behavior in
three ways: as a default setting, as a region setting,
or at the element level.
</p>
<subsection name="Setting the defaults">
<p>
The configuration below can be put in the cache.ccf
configuration file. It establishes the default behavior
for all regions. A region can override these defaults and
an individual element can overide these defaults and
the region settings.
</p>
<source><![CDATA[
# DEFAULT CACHE REGION
jcs.default=DC
jcs.default.cacheattributes=
org.apache.jcs.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=
org.apache.jcs.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=false
jcs.default.elementattributes.MaxLifeSeconds=700
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true
]]></source>
<p>
The default and region configuration settings have three
components. They define what auxiliaries are available,
how the cache should control the memory, and how the elements
should behave. This configuration tells all regions to use
an auxiliary called DC by default. It also establishes
several settings for memory management (see <a
href="BasicJCSConfiguration.html">Basic JCS Configuration</a>
for more information on the cacheattribute settings). In addition,
by default all regions will take these element configuration
settings.
</p>
<p>
These settings specify that elements are not eternal, i.e. they
can expire. By default elements are considered eternal.
</p>
<p>
You can define the maximum life of an item by setting the
<code>MaxLifeSeconds</code> parameter. If an item has been in
the cache for longer than the set number of seconds it will
not be retrieved on a get request. If you use the memory shrinker
the item will be actively removed from memory. Currently there is
no background disk shrinker, but the disk cache does allow for
a maximum number of keys (see <a
href="IndexedDiskAuxCache.html">Indexed Disk Cache</a>
for more information on the disk cache settings).
</p>
<p>
You can define the maximum time an item can live without being accessed
by setting the <code>IdleTime</code> parameter. This is different than
the <code>MaxMemoryIdleTimeSeconds</code> parameter, which just specifies
how long an object can be in memory before it is subjected to removal or
being spooled to a disk cache if it is available. Note: the <code>IdleTime</code>
parameter may not function properly for items retrieved from disk,
if you have a memory size of 0.
</p>
</subsection>
<p>
<code>IsSpool</code> determines whether or not the element can go to disk,
if a disk cache is configured for the region.
</p>
<p>
<code>IsRemote</code> determines whether or not the element can be sent
to a remote server, if one is configured for the region.
</p>
<p>
<code>IsLateral</code> determines whether or not the element can be laterally
distributed, if a lateral auxiliary is configured for the region.
</p>
</section>
</body>
</document>