asmuts 02/01/19 19:35:42
Added: docs/jcs JCSandJCACHE.html JavaCachingSystem.html
ConfiguringtheLocalCache.html
Log:
Adding some old documentation. It's better than nothing. Will supplement and
replace when we develop a doc format.
I will create docs for each of the main auxiliary caches.
The jcs vs. osc4j needs to be updated.
Revision Changes Path
1.1 jakarta-turbine-stratum/docs/jcs/JCSandJCACHE.html
Index: JCSandJCACHE.html
===================================================================
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./JCSandJCACHE_files/filelist.xml">
<title>JCS and JCACHE (JSR-107)</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Admin</o:Author>
<o:LastAuthor>Admin</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>1</o:TotalTime>
<o:Created>2001-07-24T00:49:00Z</o:Created>
<o:LastSaved>2001-07-24T00:49:00Z</o:LastSaved>
<o:Pages>2</o:Pages>
<o:Words>652</o:Words>
<o:Characters>3718</o:Characters>
<o:Company>Dell Computer Corporation</o:Company>
<o:Lines>30</o:Lines>
<o:Paragraphs>7</o:Paragraphs>
<o:CharactersWithSpaces>4565</o:CharactersWithSpaces>
<o:Version>9.3821</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<p class=MsoNormal align=center style='text-align:center'><b>JCS and JCACHE
(JSR-107)<o:p></o:p></b></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The JCS is an attempt to build a system close to JCACHE ,
JSR-107 (http://jcp.org/jsr/detail/107.jsp ), a description of the caching
system used in Oracle9i.<span style="mso-spacerun: yes">� </span>JCS grew out
of my work over the past two years to build an enterprise level caching
system.<span style="mso-spacerun: yes">� </span>Though it is replete with good
ideas, there are some aspects of the JCACHE architecture that could lead to
inefficiency (ex, the lateral distribution and net searches) and a few
programming preferences that I found cumbersome (ex, the use of exceptions to
report the common place).<span style="mso-spacerun: yes">� </span>Subsequently
there are a few differences between the two systems.<span style="mso-spacerun:
yes">� </span>In some cases I have moved my original system closer to the
JCACHE model where it presented a better idea.<span style="mso-spacerun: yes">�
</span>Briefly:</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>1.<span style='mso-tab-count:1'>�������� </span><b>element
vs. region attributes</b></p>
<p class=MsoNormal>My original cache was regionally defined.<span
style="mso-spacerun: yes">�� </span>Each entry required a very minimal wrapper.
The osc4j specification is an element driven model where each element is fully
configurable.<span style="mso-spacerun: yes">� </span>This could lead to a
slight performance penalty, but it is a richer model, where elements can
inherit or have their own attributes.<span style="mso-spacerun: yes">�
</span>So, I converted the entire system into element centered framework.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>2.<span style='mso-tab-count:1'>�������� </span><b>lateral
broadcast vs. remote consistency</b></p>
<p class=MsoNormal>The oracle model is a laterally distributed framework with
no centralized control.<span style="mso-spacerun: yes">� </span>The JCS model
has the option for lateral broadcast (which will need to be made more efficient
) and a remote store that coordinates consistency. In the JCS Local caches send
data to the remote store which then notifies other local caches of changes to
"regions" ( caches ) that are registered.<span style="mso-spacerun:
yes">� </span>In JCACHE's lateral model<span style="mso-spacerun: yes">�
</span>an update is never broadcast from the remote, rather updates come via
the lateral caches.<span style="mso-spacerun: yes">� </span>If you broadcast
changes to all servers then every server must be ready for every user. <span
style="mso-spacerun: yes">�</span>The usage patterns of a user on one box can
affect the whole.<span style="mso-spacerun: yes">� </span>Also, the lateral
model can make it difficult to synchronize combinations of updates and
invalidations.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>With a remote store the local caches are primed to take on
similar patterns by talking to the remote store, but aren't flooded with the
elements from another machine.<span style="mso-spacerun: yes">� </span>This
significantly cuts down on traffic.<span style="mso-spacerun: yes">���
</span>This way each local cache is a relatively separate realm with remotely
configurable regions that stay in synch without overriding the user habits of
any machine.<span style="mso-spacerun: yes">� </span>It also allows for an
efficient mechanism of retrieval, where searching for an element involves, at
maximum, only as many steps as there are remote servers in the cluster.<span
style="mso-spacerun: yes">� </span>In the lateral model a failed net search
could take an extremely long time to complete, making it necessary for the
programmer to decide how long of a wait is acceptable.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>Though this is by and large a poor model, the JCS will
include the ability to perform full lateral searches.<span style="mso-spacerun:
yes">� </span>A more important feature is remote failover and remote server
clustering.<span style="mso-spacerun: yes">� </span>With clustering any
concerns about the remote server being a single point of failure vanish and the
remote server model is significantly more robust.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>3.<span style='mso-tab-count:1'>�������� </span><b>put vs.
replace</b></p>
<p class=MsoNormal>The difference between put and replace is not present in the
JCS by default.<span style="mso-spacerun: yes">� </span>The overhead associated
with this distinction is tremendous.<span style="mso-spacerun: yes">�
</span>However, there will be an alternate "safe-put" method to deal with
special caches.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>4.<span style='mso-tab-count:1'>�������� </span><b>nulls vs.
errors<o:p></o:p></b></p>
<p class=MsoNormal>I started to support "ObjectNotFoudExceptions" for
failed gets but the overhead and cumbersome coding needed to surround a simple
get method is ridiculous.<span style="mso-spacerun: yes">� </span>Instead the
JCS return null.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>5.<span style='mso-tab-count:1'>�������� </span><b>cache
loaders<o:p></o:p></b></p>
<p class=MsoNormal>I'm not supporting cache loaders at this time.<span
style="mso-spacerun: yes">� </span>They seem unnecessary, but may be useful in
a smart portal.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>6.<span style='mso-tab-count:1'>�������� </span><b>groups
vs. hierarchy</b></p>
<p class=MsoNormal>The JCS provides feature rich grouping mechanism, where
groups of elements can be invalidated and whose attributes can be listed.<span
style="mso-spacerun: yes">� </span>The grouping feature is much like the
session API.<span style="mso-spacerun: yes">� </span>In addition, the JCS
provides a mechanism for hierarchical removal without the overhead of keeping
track of all the elements of a group across machines.<span style="mso-spacerun:
yes">� </span>Element keys with ":"separators (a value that will be
fully configurable) can be arranged in a hierarchy.<span style="mso-spacerun:
yes">� </span>A remove command ending in a ":" will issue a removal
of all child elements.<span style="mso-spacerun: yes">� </span>I can associate
search and menu drop down lists for a particular company in a multi-company
system by starting each key in disparate caches with the company id followed by
":" and then the normal key.<span style="mso-spacerun: yes">�
</span>Invalidating this data when a change is made to data affecting something
falling under that company can be removed by simply calling
cacheAccess.remove(comp_id + ":").</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
</div>
</body>
</html>
1.1 jakarta-turbine-stratum/docs/jcs/JavaCachingSystem.html
Index: JavaCachingSystem.html
===================================================================
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./Java%20Caching%20System_files/filelist.xml">
<title>Java Caching System (JCS)</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>asmuts</o:Author>
<o:LastAuthor>asmuts</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:TotalTime>25</o:TotalTime>
<o:Created>2001-07-20T21:00:00Z</o:Created>
<o:LastSaved>2001-07-20T21:25:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Company>The Realm</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:Version>9.3821</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:1926037856;
mso-list-type:hybrid;
mso-list-template-ids:-961644978 67698689 67698691 67698693 67698689 67698691
67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<p class=MsoTitle>Java Caching System (JCS)</p>
<p class=MsoTitle><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoTitle align=left style='text-align:left'><span style='mso-tab-count:
1'>����������� </span><span style='font-weight:normal'>JCS is a distributed
caching system written in java for server-side java applications.<span
style="mso-spacerun: yes">� </span>It is intended to speed up dynamic web
applications by providing a means to manage cached data of various dynamic
natures.<span style="mso-spacerun: yes">� </span>Like any caching system, the
JCS is most useful for high read, low put applications.<span
style="mso-spacerun: yes">� </span>Dynamic content and reporting systems can
benefit most.<span style="mso-spacerun: yes">� </span>However, any site that
repeatedly constructs pages, dropdowns, or common search results form a
database that is updated at intervals (rather than across categories
continuously) can improve performance and scalability by implementing
caching.<span style="mso-spacerun: yes">� </span>Latency times drop sharply and
bottlenecks move away from the database in an effectively cached system.<span
style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'><span style='mso-tab-count:1'>����������� </span>The JCS goes beyond
simply caching objects in memory.<span style="mso-spacerun: yes">� </span>It
provides several important features, necessary for any Enterprise level caching
system:<o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Memory
management<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Disk overflow (and
defragmentation)<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Element
grouping<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Quick nested
categorical removal<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Data
expiration<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Extensible
framework<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Fully configurable
runtime parameters<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Remote
synchronization<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Remote store
recovery<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Non-blocking �zombie�
(balking fa�ade) pattern<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Optional lateral
distribution of elements via (HTTP, TCP, or UDP)<o:p></o:p></span></p>
<p class=MsoTitle align=left style='margin-left:.5in;text-align:left;
text-indent:-.25in;mso-list:l0 level1 lfo1;tab-stops:list .5in'><![if
!supportLists]><span
style='font-family:Symbol;font-weight:normal'>�<span style='font:7.0pt "Times New
Roman"'>
</span></span><![endif]><span style='font-weight:normal'>Remote server
clustering and failover (almost complete)<o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'>These features provide a framework with no point of failure, allowing
for full session failover including session data across up to 256
servers.<o:p></o:p></span></p>
<p class=MsoTitle align=left style='text-align:left'><span style='font-weight:
normal'><span style="mso-spacerun: yes">�</span><o:p></o:p></span></p>
</div>
</body>
</html>
1.1 jakarta-turbine-stratum/docs/jcs/ConfiguringtheLocalCache.html
Index: ConfiguringtheLocalCache.html
===================================================================
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./ConfiguringtheLocalCache_files/filelist.xml">
<title>Configuring the Cache</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Admin</o:Author>
<o:LastAuthor>Admin</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>764</o:TotalTime>
<o:Created>2001-07-22T15:02:00Z</o:Created>
<o:LastSaved>2001-07-22T15:02:00Z</o:LastSaved>
<o:Pages>2</o:Pages>
<o:Words>646</o:Words>
<o:Characters>3685</o:Characters>
<o:Company>Dell Computer Corporation</o:Company>
<o:Lines>30</o:Lines>
<o:Paragraphs>7</o:Paragraphs>
<o:CharactersWithSpaces>4525</o:CharactersWithSpaces>
<o:Version>9.3821</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin:0in;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US style='tab-interval:.5in'>
<div class=Section1>
<p class=MsoTitle>Configuring the Local Cache</p>
<p class=MsoNormal align=center style='text-align:center'><b><![if
!supportEmptyParas]> <![endif]><o:p></o:p></b></p>
<p class=MsoSubtitle>Where is the configuration information?</p>
<p class=MsoNormal>Configuration of local caches involves editing the cache
configuration file, named �cache.ccf.�<span style="mso-spacerun: yes">�
</span>The classpath should include the directory where this file is located or
the file should be placed at the root of the classpath, since it is discovered
automatically.<span style="mso-spacerun: yes">� </span></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><b>What is in the cache.ccf file?<o:p></o:p></b></p>
<p class=MsoNormal>The cache.ccf file contains default configuration
information for cache regions and specific configuration information for
regions that you predefine.<span style="mso-spacerun: yes">� </span>Regions not
using default behaviors should generally be configured via the cache.ccf
file.<span style="mso-spacerun: yes">� </span>If you can put configuration
information in a class, you can edit a props file just as easily.<span
style="mso-spacerun: yes">� </span>This makes modification of the regional
setting more efficient and allows for startup error checking.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>There are three main sections of the cache.ccf file: (1) the
default and system settings; (2) the region specific settings, and (3) the
auxiliary cache definitions.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><b>How do I set up default values for regions?<o:p></o:p></b></p>
<p class=MsoNormal>You can establish default values that any non-preconfigured
region will inherit.<span style="mso-spacerun: yes">� </span>The non-predefined
region will be created when you CacheAccess.getAccess( �cacheName� ).<span
style="mso-spacerun: yes">�� </span>The default setting look like this:</p>
<p class=MsoNormal><b><![if !supportEmptyParas]> <![endif]><o:p></o:p></b></p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>##############################################################</p>
<p class=MsoNormal><span style="mso-spacerun: yes">� </span>##################
DEFAULT CACHE REGION<span style="mso-spacerun: yes">�
</span>#####################</p>
<p class=MsoNormal><span style="mso-spacerun: yes">� </span># sets the default
aux value for any non configured caches</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.default=DC,RFailover</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.default.cacheattributes=org.jcs.engine.CompositeCacheAttributes</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.default.cacheattributes.MaxObjects=1000</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The most important line is �jcs.default=DC,Rfailover.�<span
style="mso-spacerun: yes">� </span>This tells the cache what auxiliary caches
should be used.<span style="mso-spacerun: yes">� </span>Auxialiary caches are
configured in the third section of the cache.ccf and are referenced in a comma
separated list.<span style="mso-spacerun: yes">� </span>You can add as many
auxiliary caches as you want, but the behavior of remote and lateral
auxiliaries may conflict.<span style="mso-spacerun: yes">� </span>This allows
you to define different configurations for auxiliary caches and to use these
different configurations for different regions.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><b>How do I define a region?<o:p></o:p></b></p>
<p class=MsoNormal>Defining a region involves specifying which auxiliary caches
it will use and how many objects it will store in memory.<span
style="mso-spacerun: yes">� </span>A typical region definition looks like:</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.region.testCache=DC,RFailover</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.region.testCache.cacheattributes=org.jcs.engine.CompositeCacheAttributes</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.region.testCache.cacheattributes.MaxObjects=1000</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The region name is �testCache�.<span style="mso-spacerun:
yes">� </span>It will have a 1000 item memory limit and will use the DC and
RFailover auxiliary caches.<span style="mso-spacerun: yes">� </span>If a
typical element for this region was very large, you might want to lower the
number of items stored in memory.<span style="mso-spacerun: yes">� </span>The
size of the memory storage is dependent on the priority of the cache, the size
of its elements, and the amount of RAM on the machine.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><b>How do I configure an auxiliary cache?<o:p></o:p></b></p>
<p class=MsoNormal>Each auxiliary cache is created through a factory that
passes an attribute object to the constructor.<span style="mso-spacerun: yes">�
</span>The attributes are set via reflection and should be fairly simple to
understand.<span style="mso-spacerun: yes">� </span>Each auxiliary cache will
be fully documented.<span style="mso-spacerun: yes">� </span>Plugging in your
own auxiliary cache become a simple matter given the reflexive manner of
initialization.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The most important settings for common usage are the disk
path and the remote cache location.<span style="mso-spacerun: yes">� </span>It
is recommended that only disk and remote auxiliaries be used.<span
style="mso-spacerun: yes">� </span>The lateral caches are functional but not as
efficient.<span style="mso-spacerun: yes">� </span></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The default configuration code above specifies that
non-preconfigured caches use the auxiliary cache by the name DC.<span
style="mso-spacerun: yes">� </span>This cache is defined in the third section
of the file:</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.DC=org.jcs.auxiliary.disk.DiskCacheFactory</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.DC.attributes=org.jcs.auxiliary.disk.DiskCacheAttributes</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.DC.attributes.DiskPath=c:/dev/cache/raf</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The only thing that needs to be set here is the �DiskPath�
value.<span style="mso-spacerun: yes">� </span>Change it to wherever you want
the cache to persist unused items.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>The default region is also set to use an auxiliary called
�RFailover�.<span style="mso-spacerun: yes">� </span>This is a remote cache
that is designed to failover to other remote servers in a cluster:</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.RFailover=org.jcs.auxiliary.remote.RemoteCacheFactory</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.RFailover.attributes=org.jcs.auxiliary.remote.RemoteCacheAttributes</p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.RFailover.attributes.RemoteTypeName=LOCAL </p>
<p class=MsoNormal><span style="mso-spacerun: yes">�
</span>jcs.auxiliary.RFailover.attributes.FailoverServers=localhost:1102,localhost:1101</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal>If you don�t have more than one remote server running, just
specify it by itself in the �FailoverServers� attribute.</p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
<p class=MsoNormal><![if !supportEmptyParas]> <![endif]><o:p></o:p></p>
</div>
</body>
</html>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>