<?xml version="1.0"?> | |
<document> | |
<properties> | |
<title>Cache Region Configuration</title> | |
<author email="ASmuts@apache.org">Aaron Smuts</author> | |
</properties> | |
<body> | |
<section name="Cache Region Configuration"> | |
<p> | |
The following properties apply to any cache region. They can be specified as | |
default values and specified on a region by region basis. There are three types | |
of settings: auxiliary, cache, and element. The cache settings define the memory management for the region. | |
The element settings define default element behavior within the region. | |
</p> | |
<subsection name="Region (Auxiliary) Properties"> | |
<table> | |
<tr> | |
<th>Property</th> | |
<th>Description</th> | |
<th>Required</th> | |
<th>Default Value</th> | |
</tr> | |
<tr> | |
<td></td> | |
<td> | |
You can specify the list of auxiliaries that regions can use. This has no attribute name. | |
The list can be empty, otherwise it should be comma delimited. | |
</td> | |
<td>Y</td> | |
<td>n/a</td> | |
</tr> | |
</table> | |
</subsection> | |
<subsection name="Region (Cache) Properties"> | |
<table> | |
<tr> | |
<th>Property</th> | |
<th>Description</th> | |
<th>Required</th> | |
<th>Default Value</th> | |
</tr> | |
<tr> | |
<td>MaxObjects</td> | |
<td> | |
The maximum number of items allowed in memory. Eviction of elements | |
in excess of this number is determined by the memory cache. By default | |
JCS uses the LRU memory cache. | |
</td> | |
<td>Y</td> | |
<td>n/a</td> | |
</tr> | |
<tr> | |
<td>MemoryCacheName</td> | |
<td> | |
This property allows you to specify what memory manager you would like to use. | |
You can create your own memory manager by implementing the org.apache.jcs.engine.memory.MemoryCache interface. | |
Alternatively, you can extend the org.apache.jcs.engine.memory.AbstractMemoryCache class. Several different | |
memory caches are available: two LRU implementations, an LFU, and an adaptive replacement algorithm. | |
</td> | |
<td>N</td> | |
<td>org.apache.jcs.engine.memory.lru.LRUMemoryCache</td> | |
</tr> | |
<tr> | |
<td>UseMemoryShrinker</td> | |
<td> | |
By default, the memory shrinker is shared by all regions that use the | |
LRU memory cache. The memory shrinker iterates through the items in | |
memory, looking for items that have expired or that have exceeded their max | |
memory idle time. | |
</td> | |
<td>N</td> | |
<td>false</td> | |
</tr> | |
<tr> | |
<td>MaxMemoryIdleTimeSeconds</td> | |
<td> | |
This is only used if you are using the memory shrinker. If | |
this value is set above -1, then if an item has not been accessed | |
in this number of seconds, it will be spooled to disk if | |
the disk is available. You can register an event handler on this | |
event. | |
</td> | |
<td>N</td> | |
<td>-1</td> | |
</tr> | |
<tr> | |
<td>ShrinkerIntervalSeconds</td> | |
<td> | |
This specifies how often the shrinker should run, if it has | |
been activated. If you set UseMemoryShrinker to false, then this | |
setting has no effect. | |
</td> | |
<td>N</td> | |
<td>60</td> | |
</tr> | |
</table> | |
</subsection> | |
<subsection name="Region (Element) Properties"> | |
<table> | |
<tr> | |
<th>Property</th> | |
<th>Description</th> | |
<th>Required</th> | |
<th>Default Value</th> | |
</tr> | |
<tr> | |
<td>IsEternal</td> | |
<td> | |
If an element is specified as eternal, then it will never be subject to | |
removal for exceeding its max life. | |
</td> | |
<td>N</td> | |
<td>true</td> | |
</tr> | |
<tr> | |
<td>MaxLifeSeconds</td> | |
<td> | |
If you specify that elements within a region are not eternal, then | |
you can set the max life seconds. If this is exceeded the elmenets will | |
be removed passively when a client tries to retrieve them. If you | |
are using a memory shrinker, then the items can be removed actively. | |
</td> | |
<td>N</td> | |
<td>-1</td> | |
</tr> | |
<tr> | |
<td>IsSpool</td> | |
<td> | |
By default, can elements in this region be sent to a disk cache | |
if one is available. | |
</td> | |
<td>N</td> | |
<td>true</td> | |
</tr> | |
<tr> | |
<td>IsRemote</td> | |
<td> | |
By default, can elements in this region be sent to a lateral cache | |
if one is available. | |
</td> | |
<td>N</td> | |
<td>true</td> | |
</tr> | |
<tr> | |
<td>IsLateral</td> | |
<td> | |
By default, can elements in this region be sent to a remote cache | |
if one is available. | |
</td> | |
<td>N</td> | |
<td>true</td> | |
</tr> | |
</table> | |
</subsection> | |
<subsection name="Example Configuration"> | |
<source><![CDATA[ | |
jcs.default= | |
jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes | |
jcs.default.cacheattributes.MaxObjects=200001 | |
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.IsSpool=true | |
jcs.default.elementattributes.IsRemote=true | |
jcs.default.elementattributes.IsLateral=true | |
# optional region "testCache1" specific configuration settings | |
jcs.region.testCache1= | |
jcs.region.testCache1.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes | |
jcs.region.testCache1.cacheattributes.MaxObjects=123456 | |
jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache | |
jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true | |
jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=30 | |
jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=300 | |
jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=100 | |
jcs.region.testCache1.elementattributes=org.apache.jcs.engine.ElementAttributes | |
jcs.region.testCache1.elementattributes.IsEternal=false | |
jcs.region.testCache1.elementattributes.MaxLifeSeconds=60000 | |
jcs.region.testCache1.elementattributes.IsSpool=true | |
jcs.region.testCache1.elementattributes.IsLateral=true | |
jcs.region.testCache1.elementattributes.IsRemote=true | |
]]></source> | |
</subsection> | |
</section> | |
</body> | |
</document> |