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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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
  &quot;regions&quot; ( 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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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 &quot;safe-put&quot; method to deal with
  special caches.</p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![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 &quot;ObjectNotFoudExceptions&quot; 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]>&nbsp;<![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]>&nbsp;<![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 &quot;:&quot;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 &quot;:&quot; 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
  &quot;:&quot; 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 + &quot;:&quot;).</p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![endif]><o:p></o:p></p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![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]>&nbsp;<![endif]><o:p></o:p></p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  
  <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  
  </div>
  
  </body>
  
  </html>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to