24. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 11/9/2017 4:31:02 PM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

24.1 Files compared

# Location File Last Modified
1 PPS-N_B397.zip\PPS-N_B397\PPS-N_B397\PS_PPS_domain\src\main\resources\xml\ehcache ehcache.xml Thu Nov 9 14:59:50 2017 UTC
2 PPS-N_B397.zip\PPS-N_B397\PPS-N_B397\PS_PPS_domain\src\main\resources\xml\ehcache ehcache.xml Thu Nov 9 20:41:36 2017 UTC

24.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 1806
Changed 1 2
Inserted 0 0
Removed 0 0

24.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

24.4 Active regular expressions

No regular expressions were active.

24.5 Comparison detail

  1   <?xml 
  2     version="1 .0" 
  3     encoding=" UTF-8"
  4   ?>
  5  
  6   <!--
  7   CacheManag er Configu ration
  8   ========== ========== ======
  9   An ehcache .xml corre sponds to  a single C acheManage r.
  10  
  11   See instru ctions bel ow or the  ehcache sc hema (ehca che.xsd) o n how to c onfigure.
  12  
  13   System pro perty toke ns can be  specified  in this fi le which a re replace d when the  configura tion
  14   is loaded.  For examp le multica stGroupPor t=${multic astGroupPo rt} can be  replaced  with the
  15   System pro perty eith er from an  environme nt variabl e or a sys tem proper ty specifi ed with a
  16   command li ne switch  such as -D multicastG roupPort= PORT . Another  example, u seful for  Terracotta
  17   server bas ed deploym ents is <t erracottaC onfig url= "${serverA ndPort}"/  and specif y a comman d line
  18   switch of  -Dserver36 :9510
  19  
  20   The attrib utes of <e hcache> ar e:
  21   * name - a n optional  name for  the CacheM anager.  T he name is  optional  and primar ily used
  22   for docume ntation or  to distin guish Terr acotta clu stered cac he state.   With Terr acotta
  23   clustered  caches, a  combinatio n of Cache Manager na me and cac he name un iquely ide ntify a
  24   particular  cache sto re in the  Terracotta  clustered  memory.
  25   * updateCh eck - an o ptional bo olean flag  specifyin g whether  this Cache Manager sh ould check
  26   for new ve rsions of  Ehcache ov er the Int ernet.  If  not speci fied, upda teCheck="t rue".
  27   * dynamicC onfig - an  optional  setting th at can be  used to di sable dyna mic config uration of  caches
  28   associated  with this  CacheMana ger.  By d efault thi s is set t o true - i .e. dynami c configur ation
  29   is enabled .  Dynamic ally confi gurable ca ches can h ave their  TTI, TTL a nd maximum  disk and
  30   in-memory  capacity c hanged at  runtime th rough the  cache's co nfiguratio n object.
  31   * monitori ng - an op tional set ting that  determines  whether t he CacheMa nager shou ld
  32   automatica lly regist er the Sam pledCacheM Bean with  the system  MBean ser ver.
  33  
  34   Currently,  this moni toring is  only usefu l when usi ng Terraco tta cluste ring and u sing the
  35   Terracotta  Developer  Console.  With the " autodetect " value, t he presenc e of Terra cotta clus tering
  36   will be de tected and  monitorin g, via the  Developer  Console,  will be en abled. Oth er allowed  values
  37   are "on" a nd "off".   The defau lt is "aut odetect".  This setti ng does no t perform  any functi on when
  38   used with  JMX monito rs.
  39  
  40   * maxBytes LocalHeap  - optional  setting t hat constr aints the  memory usa ge of the  Caches man aged by th e CacheMan ager
  41   to use at  most the s pecified n umber of b ytes of th e local VM 's heap.
  42   * maxBytes LocalOffHe ap - optio nal settin g that con straints t he offHeap  usage of  the Caches  managed b y the Cach eManager
  43   to use at  most the s pecified n umber of b ytes of th e local VM 's offHeap  memory.
  44   * maxBytes LocalDisk  - optional  setting t hat constr aints the  disk usage  of the Ca ches manag ed by the  CacheManag er
  45   to use at  most the s pecified n umber of b ytes of th e local di sk.
  46  
  47   These sett ings let y ou define  "resource  pools", ca ches will  share. For  instance  setting ma xBytesLoca lHeap to 1 00M, will  result in
  48   all caches  sharing 1 00 MegaByt es of ram.  The Cache Manager wi ll balance  these 100  MB across  all cache s based on  their res pective us age
  49   patterns.  You can al locate a p recise amo unt of byt es to a pa rticular c ache by se tting the  appropriat e maxBytes * attribut e for that  cache.
  50   That amoun t will be  subtracted  from the  CacheManag er pools,  so that if  a cache a  specified  30M requi rement, th e other ca ches will  share
  51   the remain ing 70M.
  52  
  53   Also, spec ifying a m axBytesLoc alOffHeap  at the Cac heManager  level will  result in  overflowT oOffHeap t o be true  by default . If you d on't want
  54   a specific  cache to  overflow t o off heap , you'll h ave to set  overflowT oOffHeap=" false" exp licitly
  55  
  56   Here is an  example o f CacheMan ager level  resource  tuning, wh ich will u se up to 4 00M of hea p and 2G o f offHeap:
  57  
  58   <ehcache x mlns:xsi=" http://www .w3.org/20 01/XMLSche ma-instanc e"
  59            x si:noNames paceSchema Location=" ehcache.xs d"
  60            u pdateCheck ="true" mo nitoring=" autodetect "
  61            d ynamicConf ig="true"  maxBytesLo calHeap="4 00M" maxBy tesLocalOf fHeap="2G" >
  62  
  63   -->
  64   <ehcache 
  65     xmlns:xsi= "http://ww w.w3.org/2 001/XMLSch ema-instan ce"
  66            
  67     xsi:noName spaceSchem aLocation= "ehcache.x sd"
  68            
  69     updateChec k="false" 
  70     monitoring ="autodete ct"
  71            
  72     dynamicCon fig="true"  
  73     name="ppsC acheManage r"
  74   >
  75    
  76         
  77     <!--
  78         DiskSt ore config uration
  79         ====== ========== =======
  80    
  81         The di skStore el ement is o ptional. T o turn off  disk stor e path cre ation, com ment out t he diskSto re
  82         elemen t below.
  83    
  84         Config ure it if  you have o verflowToD isk or dis kPersisten t enabled  for any ca che.
  85    
  86         If it  is not con figured, a nd a cache  is create d which re quires a d isk store,  a warning  will be
  87          issue d and java .io.tmpdir  will auto matically  be used.
  88    
  89         diskSt ore has on ly one att ribute - " path". It  is the pat h to the d irectory w here
  90         .data  and .index  files wil l be creat ed.
  91    
  92         If the  path is o ne of the  following  Java Syste m Property  it is rep laced by i ts value i n the
  93         runnin g VM. For  backward c ompatibili ty these s hould be s pecified w ithout bei ng enclose d in the $ {token}
  94         replac ement synt ax.
  95    
  96         The fo llowing pr operties a re transla ted:
  97         * user .home - Us er's home  directory
  98         * user .dir - Use r's curren t working  directory
  99         * java .io.tmpdir  - Default  temp file  path
  100         * ehca che.disk.s tore.dir -  A system  property y ou would n ormally sp ecify on t he command  line
  101           e.g.  java -Deh cache.disk .store.dir =/u01/myap p/diskdir  ...
  102    
  103         Subdir ectories c an be spec ified belo w the prop erty e.g.  java.io.tm pdir/one
  104    
  105         -->
  106         
  107     <diskStore  
  108      path="java .io.tmpdir "
  109     />
  110    
  111         
  112     <!--
  113         Transa ctionManag erLookup c onfigurati on
  114         ====== ========== ========== ========== ==
  115         This c lass is us ed by ehca che to loo kup the JT A Transact ionManager  use in th e applicat ion
  116         using  an XA enab led ehcach e. If no c lass is sp ecified th en Default Transactio nManagerLo okup
  117         will f ind the Tr ansactionM anager in  the follow ing order
  118    
  119          *Gene ricJNDI (i .e. jboss,  where the  property  jndiName c ontrols th e name of  the
  120                           Transactio nManager o bject to l ook up)
  121          *Bitr onix
  122          *Atom ikos
  123    
  124         You ca n provide  you own lo okup class  that impl ements the
  125         net.sf .ehcache.t ransaction .manager.T ransaction ManagerLoo kup interf ace.
  126         -->
  127    
  128         
  129     <transacti onManagerL ookup 
  130      class="net .sf.ehcach e.transact ion.manage r.DefaultT ransaction ManagerLoo kup"
  131                                     
  132      properties ="jndiName =java:/Tra nsactionMa nager" 
  133      propertySe parator="; "
  134     />
  135    
  136    
  137         
  138     <!--
  139         CacheM anagerEven tListener
  140         ====== ========== =========
  141         Specif ies a Cach eManagerEv entListene rFactory w hich is no tified whe n Caches a re added
  142         or rem oved from  the CacheM anager.
  143    
  144         The at tributes o f CacheMan agerEventL istenerFac tory are:
  145         * clas s - a full y qualifie d factory  class name
  146         * prop erties - c omma separ ated prope rties havi ng meaning  only to t he factory .
  147    
  148         Sets t he fully q ualified c lass name  to be regi stered as  the CacheM anager eve nt listene r.
  149    
  150         The ev ents inclu de:
  151         * addi ng a Cache
  152         * remo ving a Cac he
  153    
  154         Callba cks to lis tener meth ods are sy nchronous  and unsync hronized.  It is the  responsibi lity
  155         of the  implement er to safe ly handle  the potent ial perfor mance and  thread saf ety issues
  156         depend ing on wha t their li stener is  doing.
  157    
  158         If no  class is s pecified,  no listene r is creat ed. There  is no defa ult.
  159         -->
  160         
  161     <cacheMana gerEventLi stenerFact ory 
  162      class="" 
  163      properties =""
  164     />
  165    
  166    
  167         
  168     <!--
  169         Terrac ottaConfig
  170         ====== ========== ========
  171         (Enabl e for Terr acotta clu stered ope ration)
  172    
  173         Note:  You need t o install  and run on e or more  Terracotta  servers t o use Terr acotta clu stering.
  174         See ht tp://www.t erracotta. org/web/di splay/orgs ite/Downlo ad.
  175    
  176         Specif ies a Terr acottaConf ig which w ill be use d to confi gure the T erracotta
  177         runtim e for this  CacheMana ger.
  178    
  179         Config uration ca n be speci fied in tw o main way s: by refe rence to a  source of
  180         config uration or  by use of  an embedd ed Terraco tta config uration fi le.
  181    
  182         To spe cify a ref erence to  a source ( or sources ) of confi guration,  use the ur l
  183         attrib ute.  The  url attrib ute must c ontain a c omma-separ ated list  of:
  184         * path  to Terrac otta confi guration f ile (usual ly named t c-config.x ml)
  185         * URL  to Terraco tta config uration fi le
  186         * <ser ver host>: <port> of  running Te rracotta S erver inst ance
  187    
  188         Simple st example  for point ing to a T erracotta  server on  this machi ne:
  189         <terra cottaConfi g url="loc alhost:951 0"/>
  190    
  191         This e lement has  one attri bute "rejo in" which  can take v alues of e ither "tru e" or "fal se":
  192         <terra cottaConfi g rejoin=" true" url= "localhost :9510" />
  193    
  194         By def ault, this  attribute  is false.
  195    
  196         If rej oin is tru e, all Ter racotta Cl ustered ca ches have  to be conf igured wit h nonstop.
  197         Withou t rejoin,  if the Ter racotta Se rver is re started th e client c annot conn ect back t o the
  198         server . When ena bled, this  allows th e client t o connect  to the new  cluster w ithout the
  199         need t o restart  the node.
  200    
  201         Exampl e using a  path to Te rracotta c onfigurati on file:
  202         <terra cottaConfi g url="/ap p/config/t c-config.x ml"/>
  203    
  204         Exampl e using a  URL to a T erracotta  configurat ion file:
  205         <terra cottaConfi g url="htt p://intern al/ehcache /app/tc-co nfig.xml"/ >
  206    
  207         Exampl e using mu ltiple Ter racotta se rver insta nce URLs ( for fault  tolerance) :
  208         <terra cottaConfi g url="hos t1:9510,ho st2:9510,h ost3:9510" />
  209    
  210         To emb ed a Terra cotta conf iguration  file withi n the ehca che config uration, s imply
  211         place  a normal T erracotta  XML config  within th e <terraco ttaConfig>  element.
  212    
  213         Exampl e:
  214         <terra cottaConfi g>
  215             <t c-config>
  216                  <servers >
  217                      <ser ver host=" server1" n ame="s1"/>
  218                      <ser ver host=" server2" n ame="s2"/>
  219                  </server s>
  220                  <clients >
  221                      <log s>app/logs -%i</logs>
  222                  </client s>
  223             </ tc-config>
  224         </terr acottaConf ig>
  225    
  226         For mo re informa tion on th e Terracot ta configu ration, se e the Terr acotta doc umentation .
  227         -->
  228         
  229     <!-- <terr acottaConf ig url="lo calhost:95 10"/> -->
  230    
  231         
  232     <!--
  233         Cache  configurat ion
  234         ====== ========== ===
  235    
  236         The fo llowing at tributes a re require d.
  237    
  238         name:
  239         Sets t he name of  the cache . This is  used to id entify the  cache. It  must be u nique.
  240    
  241         maxEnt riesLocalH eap:
  242         Sets t he maximum  number of  objects t hat will b e created  in memory.   0 = no l imit.
  243         In pra ctice no l imit means  Integer.M AX_SIZE (2 147483647)  unless th e cache is  distribut ed
  244         with a  Terracott a server i n which ca se it is l imited by  resources.
  245    
  246         maxEnt riesLocalD isk:
  247         Sets t he maximum  number of  objects t hat will b e maintain ed in the  DiskStore
  248         The de fault valu e is zero,  meaning u nlimited.
  249    
  250         eterna l:
  251         Sets w hether ele ments are  eternal. I f eternal,   timeouts  are ignor ed and the
  252         elemen t is never  expired.
  253    
  254         The fo llowing at tributes a nd element s are opti onal.
  255    
  256         overfl owToDisk:
  257         Sets w hether ele ments can  overflow t o disk whe n the memo ry store
  258         has re ached the  maxInMemor y limit.
  259    
  260         overfl owToOffHea p:
  261         (boole an) This f eature is  available  only in en terprise v ersions of  Ehcache.
  262         When s et to true , enables  the cache  to utilize  off-heap  memory
  263         storag e to impro ve perform ance. Off- heap memor y is not s ubject to  Java
  264         GC. Th e default  value is f alse.
  265    
  266         maxByt esLocalHea p:
  267         Define s how many  bytes the  cache may  use from  the VM's h eap. If a  CacheManag er
  268         maxByt esLocalHea p has been  defined,  this Cache 's specifi ed amount  will be
  269         subtra cted from  the CacheM anager. Ot her caches  will shar e the rema inder.
  270         This a ttribute's  values ar e given as  <number>k |K|m|M|g|G  for
  271         kiloby tes (k|K),  megabytes  (m|M), or  gigabytes  (g|G).
  272         For ex ample, max MemoryOffH eap="2g" a llots 2 gi gabytes to  off-heap  memory.
  273         If you  specify a  maxBytesL ocalHeap,  you can't  use the ma xEntriesLo calHeap at tribute.
  274         maxEnt riesLocalH eap can't  be used if  a CacheMa nager maxB ytesLocalH eap is set .
  275    
  276         Elemen ts put int o the cach e will be  measured i n size usi ng net.sf. ehcache.po ol.sizeof. SizeOf
  277         If you  wish to i gnore some  part of t he object  graph, see  net.sf.eh cache.pool .sizeof.an notations. IgnoreSize Of
  278    
  279         maxByt esLocalOff Heap:
  280         This f eature is  available  only in en terprise v ersions of  Ehcache.
  281         Sets t he amount  of off-hea p memory t his cache  can use, a nd will re serve.
  282    
  283         This s etting wil l set over flowToOffH eap to tru e. Set exp licitly to  false to  disable ov erflow beh avior.
  284    
  285         Note t hat it is  recommende d to set m axEntriesL ocalHeap t o at least  100 eleme nts
  286         when u sing an of f-heap sto re, otherw ise perfor mance will  be seriou sly degrad ed,
  287         and a  warning wi ll be logg ed.
  288    
  289         The mi nimum amou nt that ca n be alloc ated is 12 8MB. There  is no max imum.
  290    
  291         maxByt esLocalDis k:
  292         As for  maxBytesL ocalHeap,  but specif ies the li mit of dis k storage  this cache  will ever  use.
  293    
  294         timeTo IdleSecond s:
  295         Sets t he time to  idle for  an element  before it  expires.
  296         i.e. T he maximum  amount of  time betw een access es before  an element  expires
  297         Is onl y used if  the elemen t is not e ternal.
  298         Option al attribu te. A valu e of 0 mea ns that an  Element c an idle fo r infinity .
  299         The de fault valu e is 0.
  300    
  301         timeTo LiveSecond s:
  302         Sets t he time to  live for  an element  before it  expires.
  303         i.e. T he maximum  time betw een creati on time an d when an  element ex pires.
  304         Is onl y used if  the elemen t is not e ternal.
  305         Option al attribu te. A valu e of 0 mea ns that an d Element  can live f or infinit y.
  306         The de fault valu e is 0.
  307    
  308         diskPe rsistent:
  309         Whethe r the disk  store per sists betw een restar ts of the  Virtual Ma chine.
  310         The de fault valu e is false .
  311    
  312         diskEx piryThread IntervalSe conds:
  313         The nu mber of se conds betw een runs o f the disk  expiry th read. The  default va lue
  314         is 120  seconds.
  315    
  316         diskSp oolBufferS izeMB:
  317         This i s the size  to alloca te the Dis kStore for  a spool b uffer. Wri tes are ma de
  318         to thi s area and  then asyn chronously  written t o disk. Th e default  size is 30 MB.
  319         Each s pool buffe r is used  only by it s cache. I f you get  OutOfMemor y errors c onsider
  320         loweri ng this va lue. To im prove Disk Store perf ormance co nsider inc reasing it . Trace le vel
  321         loggin g in the D iskStore w ill show i f put back  ups are o ccurring.
  322    
  323         clearO nFlush:
  324         whethe r the Memo ryStore sh ould be cl eared when  flush() i s called o n the cach e.
  325         By def ault, this  is true i .e. the Me moryStore  is cleared .
  326    
  327         statis tics:
  328         Whethe r to colle ct statist ics. Note  that this  should be  turned on  if you are  using
  329         the Eh cache Moni tor. By de fault stat istics is  turned off  to favour  raw perfo rmance.
  330         To ena ble set st atistics=" true"
  331    
  332         memory StoreEvict ionPolicy:
  333         Policy  would be  enforced u pon reachi ng the max EntriesLoc alHeap lim it. Defaul t
  334         policy  is Least  Recently U sed (speci fied as LR U). Other  policies a vailable -
  335         First  In First O ut (specif ied as FIF O) and Les s Frequent ly Used
  336         (speci fied as LF U)
  337    
  338         copyOn Read:
  339         Whethe r an Eleme nt is copi ed when be ing read f rom a cach e.
  340         By def ault this  is false.
  341    
  342         copyOn Write:
  343         Whethe r an Eleme nt is copi ed when be ing added  to the cac he.
  344         By def ault this  is false.
  345    
  346         Cache  elements c an also co ntain sub  elements w hich take  the same f ormat of a  factory c lass
  347         and pr operties.  Defined su b-elements  are:
  348    
  349         * cach eEventList enerFactor y - Enable s registra tion of li steners fo r cache ev ents, such  as
  350           put,  remove, u pdate, and  expire.
  351    
  352         * boot strapCache LoaderFact ory - Spec ifies a Bo otstrapCac heLoader,  which is c alled by a
  353           cach e on initi alisation  to prepopu late itsel f.
  354    
  355         * cach eExtension Factory -  Specifies  a CacheExt ension, a  generic me chanism to  tie a cla ss
  356           whic h holds a  reference  to a cache  to the ca che lifecy cle.
  357    
  358         * cach eException HandlerFac tory - Spe cifies a C acheExcept ionHandler , which is  called wh en
  359           cach e exceptio ns occur.
  360    
  361         * cach eLoaderFac tory - Spe cifies a C acheLoader , which ca n be used  both async hronously  and
  362           sync hronously  to load ob jects into  a cache.  More than  one cacheL oaderFacto ry element
  363           can  be added,  in which c ase the lo aders form  a chain w hich are e xecuted in  order. If  a
  364           load er returns  null, the  next in c hain is ca lled.
  365    
  366         * copy Strategy -  Specifies  a fully q ualified c lass which  implement s
  367           net. sf.ehcache .store.com pound.Copy Strategy.  This strat egy will b e used for  copyOnRea d
  368           and  copyOnWrit e in place  of the de fault whic h is seria lization.
  369    
  370         Exampl e of cache  level res ource tuni ng:
  371         <cache  name="mem Bound" max BytesLocal Heap="100m " maxBytes LocalOffHe ap="4g" ma xBytesLoca lDisk="200 g" />
  372    
  373    
  374         Cache  Event List eners
  375         ++++++ ++++++++++ +++++
  376    
  377         All ca cheEventLi stenerFact ory elemen ts can tak e an optio nal proper ty listenF or that de scribes
  378         which  events wil l be deliv ered in a  clustered  environmen t.  The li stenFor at tribute ha s the
  379         follow ing allowe d values:
  380    
  381         * all  - the defa ult is to  deliver al l local an d remote e vents
  382         * loca l - delive r only eve nts origin ating in t he current  node
  383         * remo te - deliv er only ev ents origi nating in  other node s
  384    
  385         Exampl e of setti ng up a lo gging list ener for l ocal cache  events:
  386    
  387         <cache EventListe nerFactory  class="my .company.l og.CacheLo gger"
  388             li stenFor="l ocal" />
  389    
  390    
  391         Search
  392         ++++++
  393    
  394         A <cac he> can be  made sear chable by  adding a < searchable /> sub-ele ment. By d efault the  keys
  395         and va lue object s of eleme nts put in to the cac he will be  attribute s against  which
  396         querie s can be e xpressed.
  397    
  398         <cache >
  399             <s earchable/ >
  400         </cach e>
  401    
  402    
  403         An "at tribute" o f the cach e elements  can also  be defined  to be sea rchable. I n the exam ple below
  404         an att ribute wit h the name  "age" wil l be avail able for u se in quer ies. The v alue for t he "age"
  405         attrib ute will b e computed  by callin g the meth od "getAge ()" on the  value obj ect of eac h element
  406         in the  cache. Se e net.sf.e hcache.sea rch.attrib ute.Reflec tionAttrib uteExtract or for the  format of
  407         attrib ute expres sions. Att ribute val ues must a lso confor m to the s et of type s document ed in the
  408         net.sf .ehcache.s earch.attr ibute.Attr ibuteExtra ctor inter face
  409    
  410         <cache >
  411             <s earchable>
  412                  <searchA ttribute n ame="age"  expression ="value.ge tAge()"/>
  413             </ searchable >
  414         </cach e>
  415    
  416    
  417         Attrib utes may a lso be def ined using  a JavaBea n style. W ith the fo llowing at tribute de claration
  418         a publ ic method  getAge() w ill be exp ected to b e found on  either th e key or v alue for c ache eleme nts
  419    
  420         <cache >
  421             <s earchable>
  422                  <searchA ttribute n ame="age"/ >
  423             </ searchable >
  424         </cach e>
  425    
  426         In mor e complex  situations  you can c reate your  own attri bute extra ctor by im plementing  the
  427         Attrib uteExtract or interfa ce. Provid ing your e xtractor c lass is sh own in the  following  example:
  428    
  429         <cache >
  430             <s earchable>
  431                  <searchA ttribute n ame="age"  class="com .example.M yAttribute Extractor" />
  432             </ searchable >
  433         </cach e>
  434    
  435         Use pr operties t o pass sta te to your  attribute  extractor  if needed . Your imp lementatio n must pro vide
  436         a publ ic constru ctor that  takes a si ngle java. util.Prope rties inst ance
  437    
  438         <cache >
  439             <s earchable>
  440                  <searchA ttribute n ame="age"  class="com .example.M yAttribute Extractor"  propertie s="foo=1,b ar=2"/>
  441             </ searchable >
  442         </cach e>
  443    
  444    
  445         Cache  Exception  Handling
  446         ++++++ ++++++++++ ++++++++
  447    
  448         By def ault, most  cache ope rations wi ll propaga te a runti me CacheEx ception on  failure.  An
  449         interc eptor, usi ng a dynam ic proxy,  may be con figured so  that a Ca cheExcepti onHandler  can
  450         be con figured to  intercept  Exception s. Errors  are not in tercepted.
  451    
  452         It is  configured  as per th e followin g example:
  453    
  454           <cac heExceptio nHandlerFa ctory clas s="com.exa mple.Examp leExceptio nHandlerFa ctory"
  455                                              pr operties=" logLevel=F INE"/>
  456    
  457         Caches  with Exce ptionHandl ing config ured are n ot of type  Cache, bu t are of t ype Ehcach e only,
  458         and ar e not avai lable usin g CacheMan ager.getCa che(), but  using Cac heManager. getEhcache ().
  459    
  460    
  461         Cache  Loader
  462         ++++++ ++++++
  463    
  464         A defa ult CacheL oader may  be set whi ch loads o bjects int o the cach e through  asynchrono us and
  465         synchr onous meth ods on Cac he. This i s differen t to the b ootstrap c ache loade r, which i s used
  466         only i n distribu ted cachin g.
  467    
  468         It is  configured  as per th e followin g example:
  469    
  470             <c acheLoader Factory cl ass="com.e xample.Exa mpleCacheL oaderFacto ry"
  471                                              pr operties=" type=int,s tartCounte r=10"/>
  472    
  473         Elemen t value co mparator
  474         ++++++ ++++++++++ ++++++++
  475    
  476         These  two cache  atomic met hods:
  477           remo veElement( Element e)
  478           repl ace(Elemen t old, Ele ment eleme nt)
  479    
  480         rely o n comparis on of cach ed element s value. T he default  implement ation reli es on Obje ct.equals( )
  481         but th at can be  changed in  case you  want to us e a differ ent way to  compute e quality of  two eleme nts.
  482    
  483         This i s configur ed as per  the follow ing exampl e:
  484    
  485         <eleme ntValueCom parator cl ass="com.c ompany.xyz .MyElement Comparator "/>
  486    
  487         The My ElementCom parator cl ass must i mplement t he is net. sf.ehcache .store.Ele mentValueC omparator
  488         interf ace. The d efault imp lementatio n is net.s f.ehcache. store.Defa ultElement ValueCompa rator.
  489    
  490    
  491         SizeOf  Policy
  492         ++++++ +++++++
  493    
  494         Contro l how deep  the SizeO f engine c an go when  sizing on -heap elem ents.
  495    
  496         This i s configur ed as per  the follow ing exampl e:
  497    
  498         <sizeO fPolicy ma xDepth="10 0" maxDept hExceededB ehavior="a bort"/>
  499    
  500         maxDep th control s how many  linked ob jects can  be visited  before th e SizeOf e ngine take s any acti on.
  501         maxDep thExceeded Behavior s pecifies w hat happen s when the  max depth  is exceed ed while s izing an o bject grap h.
  502          "cont inue" make s the Size Of engine  log a warn ing and co ntinue the  sizing. T his is the  default.
  503          "abor t"    make s the Size Of engine  abort the  sizing, lo g a warnin g and mark  the cache  as not co rrectly tr acking
  504                      memo ry usage.  This makes  Ehcache.h asAbortedS izeOf() re turn true  when this  happens.
  505    
  506         The Si zeOf polic y can be c onfigured  at the cac he manager  level (di rectly und er <ehcach e>) and at
  507         the ca che level  (under <ca che> or <d efaultCach e>). The c ache polic y always o verrides t he cache m anager
  508         one if  both are  set. This  element ha s no effec t on distr ibuted cac hes.
  509         
  510         Transa ctions
  511         ++++++ ++++++
  512    
  513         To ena ble an ehc ache as tr ansactions , set the  transactio nalMode
  514    
  515         transa ctionalMod e="xa" - h igh perfor mance JTA/ XA impleme ntation
  516         transa ctionalMod e="xa_stri ct" - cano nically co rrect JTA/ XA impleme ntation
  517         transa ctionMode= "local" -  high perfo rmance loc al transac tions invo lving cach es only
  518         transa ctionalMod e="off" -  the defaul t, no tran sactions
  519    
  520         If set , all cach e operatio ns will ne ed to be d one throug h transact ions.
  521    
  522         To pre vent users  keeping r eferences  on stored  elements a nd modifyi ng them ou tside of a ny transac tion's con trol,
  523         transa ctions als o require  the cache  to be conf igured cop yOnRead an d copyOnWr ite.
  524    
  525         CacheW riter
  526         ++++++ ++++++
  527    
  528         A Cach eWriter ca n be set t o write to  an underl ying resou rce. Only  one CacheW riter can  be
  529         config ured per c ache.
  530    
  531         The fo llowing is  an exampl e of how t o configur e CacheWri ter for wr ite-throug h:
  532    
  533             <c acheWriter  writeMode ="write-th rough" not ifyListene rsOnExcept ion="true" >
  534                  <cacheWr iterFactor y class="n et.sf.ehca che.writer .TestCache WriterFact ory"
  535                                        properti es="type=i nt,startCo unter=10"/ >
  536             </ cacheWrite r>
  537    
  538         The fo llowing is  an exampl e of how t o configur e CacheWri ter for wr ite-behind :
  539    
  540             <c acheWriter  writeMode ="write-be hind" minW riteDelay= "1" maxWri teDelay="5 "
  541                            rateLimit PerSecond= "5" writeC oalescing= "true" wri teBatching ="true" wr iteBatchSi ze="1"
  542                            retryAtte mpts="2" r etryAttemp tDelaySeco nds="1">
  543                  <cacheWr iterFactor y class="n et.sf.ehca che.writer .TestCache WriterFact ory"
  544                                        properti es="type=i nt,startCo unter=10"/ >
  545             </ cacheWrite r>
  546    
  547         The ca cheWriter  element ha s the foll owing attr ibutes:
  548         * writ eMode: the  write mod e, write-t hrough or  write-behi nd
  549    
  550         These  attributes  only appl y to write -through m ode:
  551         * noti fyListener sOnExcepti on: Sets w hether to  notify lis teners whe n an excep tion occur s on a wri ter operat ion.
  552    
  553         These  attributes  only appl y to write -behind mo de:
  554         * minW riteDelay:  Set the m inimum num ber of sec onds to wa it before  writing be hind. If s et to a va lue greate r than 0,
  555           it p ermits ope rations to  build up  in the que ue. This i s differen t from the  maximum w rite delay  in that b y waiting
  556           a mi nimum amou nt of time , work is  always bei ng built u p. If the  minimum wr ite delay  is set to  zero and t he
  557           Cach eWriter pe rforms its  work very  quickly,  the overhe ad of proc essing the  write beh ind queue  items beco mes very
  558           noti ceable in  a cluster  since all  the operat ions might  be done f or individ ual items  instead of  for a col lection
  559           of t hem.
  560         * maxW riteDelay:  Set the m aximum num ber of sec onds to wa it before  writing be hind. If s et to a va lue greate r than 0,
  561           it p ermits ope rations to  build up  in the que ue to enab le effecti ve coalesc ing and ba tching opt imisations .
  562         * writ eBatching:  Sets whet her to bat ch write o perations.  If set to  true, wri teAll and  deleteAll  will be ca lled on
  563           the  CacheWrite r rather t han write  and delete  being cal led for ea ch key. Re sources su ch as data bases can  perform
  564           more  efficient ly if upda tes are ba tched, thu s reducing  load.
  565         * writ eBatchSize : Sets the  number of  operation s to inclu de in each  batch whe n writeBat ching is e nabled. If  there are
  566           less  entries i n the writ e-behind q ueue than  the batch  size, the  queue leng th size is  used.
  567         * rate LimitPerSe cond: Sets  the maxim um number  of write o perations  to allow p er second  when write Batching i s enabled.
  568         * writ eCoalescin g: Sets wh ether to u se write c oalescing.  If set to  true and  multiple o perations  on the sam e key are
  569           pres ent in the  write-beh ind queue,  only the  latest wri te is done , as the o thers are  redundant.
  570         * retr yAttempts:  Sets the  number of  times the  operation  is retried  in the Ca cheWriter,  this happ ens after  the
  571           orig inal opera tion.
  572         * retr yAttemptDe laySeconds : Sets the  number of  seconds t o wait bef ore retryi ng an fail ed operati on.
  573    
  574         Cache  Extension
  575         ++++++ +++++++++
  576    
  577         CacheE xtensions  are a gene ral purpos e mechanis m to allow  generic e xtensions  to a Cache .
  578         CacheE xtensions  are tied i nto the Ca che lifecy cle.
  579    
  580         CacheE xtensions  are create d using th e CacheExt ensionFact ory which  has a
  581         <code> createCach eCacheExte nsion()</c ode> metho d which ta kes as a p arameter a
  582         Cache  and proper ties. It c an thus ca ll back in to any pub lic method  on Cache,  including , of
  583         course , the load  methods.
  584    
  585         Extens ions are a dded as pe r the foll owing exam ple:
  586    
  587              < cacheExten sionFactor y class="c om.example .FileWatch ingCacheRe fresherExt ensionFact ory"
  588                                    p roperties= "refreshIn tervalMill is=18000,  loaderTime out=3000,
  589                                                  flushPeri od=whateve r, someOth erProperty =someValue  ..."/>
  590    
  591         Cache  Decorator  Factory
  592         ++++++ ++++++++++ +++++++
  593    
  594         Cache  decorators  can be co nfigured d irectly in  ehcache.x ml. The de corators w ill be cre ated and a dded to th e CacheMan ager.
  595         It acc epts the n ame of a c oncrete cl ass that e xtends net .sf.ehcach e.construc ts.CacheDe coratorFac tory
  596         The pr operties w ill be par sed accord ing to the  delimiter  (default  is comma ' ,') and pa ssed to th e concrete  factory's
  597         <code> createDeco ratedEhcac he(Ehcache  cache, Pr operties p roperties) </code> me thod along  with the  reference  to the own ing cache.
  598    
  599         It is  configured  as per th e followin g example:
  600    
  601             <c acheDecora torFactory
  602           clas s="com.com pany.Decor atedCacheF actory"
  603           prop erties="pr operty1=tr ue ..." />
  604    
  605         Distri buted Cach ing with T erracotta
  606         ++++++ ++++++++++ ++++++++++ +++++++++
  607    
  608         Distri buted Cach es connect  to a Terr acotta Ser ver Array.  They are  configured  with the  <terracott a> sub-ele ment.
  609    
  610         The <t erracotta>  sub-eleme nt has the  following  attribute s:
  611    
  612         * clus tered=true |false - i ndicates w hether thi s cache sh ould be cl ustered (d istributed ) with Ter racotta. B y
  613           defa ult, if th e <terraco tta> eleme nt is incl uded, clus tered=true .
  614    
  615         * valu eMode=seri alization| identity -  the defau lt is seri alization
  616    
  617           Indi cates whet her cache  Elements a re distrib uted with  serialized  copies or  whether a  single co py
  618           in i dentity mo de is dist ributed.
  619    
  620           The  implicatio ns of Iden tity mode  should be  clearly un derstood w ith refere nce to the  Terracott a
  621           docu mentation  before use .
  622    
  623         * copy OnRead=tru e|false -  indicates  whether ca che values  are deser ialized on  every rea d or if th e
  624           mate rialized c ache value  can be re -used betw een get()  calls. Thi s setting  is useful  if a cache
  625           is b eing share d by calle rs with di sparate cl assloaders  or to pre vent local  drift if  keys/value s
  626           are  mutated lo cally with out being  put back i n the cach e.
  627    
  628           The  default is  false.
  629    
  630           Note : This set ting is on ly relevan t for cach es with va lueMode=se rializatio n
  631    
  632         * cons istency=st rong|event ual - Indi cates whet her this c ache shoul d have str ong consis tency or e ventual
  633           cons istency. T he default  is eventu al. See th e document ation for  the meanin g of these  terms.
  634    
  635         * sync hronousWri tes=true|f alse
  636    
  637           Sync hronous wr ites (sync hronousWri tes="true" )  maximiz e data saf ety by blo cking the  client thr ead until
  638           the  write has  been writt en to the  Terracotta  Server Ar ray.
  639    
  640           This  option is  only avai lable with  consisten cy=strong.  The defau lt is fals e.
  641    
  642         * conc urrency -  the number  of segmen ts that wi ll be used  by the ma p undernea th the Ter racotta St ore.
  643           Its  optional a nd has def ault value  of 0, whi ch means w ill use de fault valu es based o n the inte rnal
  644           Map  being used  underneat h the stor e.
  645    
  646           This  value can not be cha nged progr ammaticall y once a c ache is in itialized.
  647    
  648         * stor ageStrateg y=classic| DCV2 - Wha t storage  implementa tion to us e. From Eh cache 2.4,  the defau lt is DCV2
  649           ("Di stributed  Cache Vers ion 2"). T he key fun ctional di fference i s that DCV 2 does not  consume l ocal memor y
  650           for  key storag e.
  651    
  652         The <t erracotta>  sub-eleme nt also ha s a <nonst op> sub-el ement to a llow confi guration o f cache be haviour if  a distrib uted
  653         cache  operation  cannot be  completed  within a s et time or  in the ev ent of a c lusterOffl ine messag e. If this  element d oes not ap pear, nons top behavi or is off.
  654    
  655         <nonst op> has th e followin g attribut es:
  656    
  657         *  ena bled="true " - defaul ts to true .
  658    
  659         *  tim eoutMillis  - An SLA  setting, s o that if  a cache op eration ta kes longer  than the  allowed ms , it will  timeout.
  660    
  661         *  imm ediateTime out="true| false" - W hat to do  on receipt  of a Clus terOffline  event ind icating th at communi cations
  662            wit h the Terr acotta Ser ver Array  were inter rupted.
  663    
  664         <nonst op> has on e sub-elem ent, <time outBehavio r> which h as the fol lowing att ribute:
  665    
  666         *  typ e="noop|ex ception|lo calReads"  - What to  do when a  timeout ha s occurred . Exceptio n is the d efault.
  667    
  668         Simple st example  to indica te cluster ing:
  669             <t erracotta/ >
  670    
  671         To ind icate the  cache shou ld not be  clustered  (or remove  the <terr acotta> el ement alto gether):
  672             <t erracotta  clustered= "false"/>
  673    
  674         To ind icate the  cache shou ld be clus tered usin g identity  mode:
  675             <t erracotta  clustered= "true" val ueMode="id entity"/>
  676    
  677         To ind icate the  cache shou ld be clus tered usin g "eventua l" consist ency mode  for better  performan ce :
  678             <t erracotta  clustered= "true" con sistency=" eventual"/ >
  679    
  680         To ind icate the  cache shou ld be clus tered usin g synchron ous-write  locking le vel:
  681             <t erracotta  clustered= "true" syn chronousWr ites="true "/>
  682         -->
  683    
  684         
  685     <!--
  686         Defaul t Cache co nfiguratio n. These s ettings wi ll be appl ied to cac hes
  687         create d programm atically u sing Cache Manager.ad d(String c acheName).
  688         This e lement is  optional,  and using  CacheManag er.add(Str ing cacheN ame) when
  689         its no t present  will throw  CacheExce ption
  690    
  691         The de faultCache  has an im plicit nam e "default " which is  a reserve d cache na me.
  692         -->
  693         
  694     <defaultCa che
  695                 
  696      maxEntries LocalHeap= "5000"
  697                 
  698      eternal="f alse"
  699                 
  700      overflowTo Disk="true "
  701                 
  702      timeToIdle Seconds="1 200"
  703                 
  704      timeToLive Seconds="1 200"
  705     >
  706          
  707     </defaultC ache>
  708    
  709         
  710     <!--
  711         Sample  caches. F ollowing a re some ex ample cach es. Remove  these bef ore use.
  712         -->
  713    
  714         
  715     <!--
  716         Sample  cache nam ed sampleC ache1
  717         This c ache conta ins a maxi mum in mem ory of 100 00 element s, and wil l expire
  718         an ele ment if it  is idle f or more th an 5 minut es and liv es for mor e than
  719         10 min utes.
  720    
  721         If the re are mor e than 100 00 element s it will  overflow t o the
  722         disk c ache, whic h in this  configurat ion will g o to where ver java.i o.tmp is
  723         define d on your  system. On  a standar d Linux sy stem this  will be /t mp"
  724         <cache  name="sam pleCache1"
  725                 maxEntrie sLocalHeap ="10000"
  726                 maxEntrie sLocalDisk ="1000"
  727                 eternal=" false"
  728                 overflowT oDisk="tru e"
  729                 diskSpool BufferSize MB="20"
  730                 timeToIdl eSeconds=" 300"
  731                 timeToLiv eSeconds=" 600"
  732                 memorySto reEviction Policy="LF U"
  733                 transacti onalMode=" off"
  734                 statistic s="true"
  735                  />
  736         -->
  737    
  738         
  739     <cache 
  740      name="nati onalData"
  741                 
  742      maxEntries LocalHeap= "10000"
  743                 
  744      maxEntries LocalDisk= "1000"
  745                 
  746      eternal="f alse"
  747                 
  748      overflowTo Disk="true "
  749                 
  750      diskSpoolB ufferSizeM B="20"
  751                 
  752      timeToIdle Seconds="3 00"
  753                 
  754      timeToLive Seconds="6 00"
  755                 
  756      memoryStor eEvictionP olicy="LFU "
  757                 
  758      transactio nalMode="o ff"
  759                 
  760      statistics ="true"
  761                  />
  762    
  763             
  764     <cache 
  765      name="org. hibernate. cache.inte rnal.Stand ardQueryCa che"
  766                      
  767      maxEntries LocalHeap= "500"
  768                      
  769      eternal="f alse"
  770                      
  771      timeToLive Seconds="1 20"
  772     >
  773                       
  774      <persisten ce 
  775       strategy=" localTempS wap" 
  776      />
  777              
  778     </cache>
  779                      
  780             
  781     <cache 
  782      name="org. hibernate. cache.spi. UpdateTime stampsCach e" 
  783                      
  784      maxEntries LocalHeap= "5000" 
  785                      
  786      eternal="t rue"
  787     >
  788                       
  789      <persisten ce 
  790       strategy=" localTempS wap"
  791      /> 
  792              
  793     </cache>
  794                      
  795         
  796     <!-- 
  797         <cache  name="Cac hePage1Cac hingFilter "
  798                maxEntries LocalHeap= "10"
  799                eternal="f alse"
  800                timeToIdle Seconds="1 0"
  801                timeToLive Seconds="3 0"
  802                overflowTo Disk="true " />
  803          -->
  804         
  805     <!--
  806         Sample  cache nam ed sampleC ache2
  807         This c ache has a  maximum o f 1000 ele ments in m emory. The re is no o verflow to  disk, so  1000
  808         is als o the maxi mum cache  size. Note  that when  a cache i s eternal,  timeToLiv e and
  809         timeTo Idle are n ot used an d do not n eed to be  specified.
  810         -->
  811         
  812     <!-- <cach e name="sa mpleCache2 "
  813                 maxEntrie sLocalHeap ="1000"
  814                 eternal=" true"
  815                 overflowT oDisk="fal se"
  816                 memorySto reEviction Policy="FI FO"
  817                  />
  818         -->
  819    
  820         
  821     <!--
  822         Sample  cache nam ed sampleC ache3. Thi s cache ov erflows to  disk. The  disk stor e is
  823         persis tent betwe en cache a nd VM rest arts. The  disk expir y thread i nterval is  set to 10
  824         minute s, overrid ing the de fault of 2  minutes.
  825         -->
  826         
  827     <!--
  828         <cache  name="sam pleCache3"
  829                 maxEntrie sLocalHeap ="500"
  830                 eternal=" false"
  831                 overflowT oDisk="tru e"
  832                 timeToIdl eSeconds=" 300"
  833                 timeToLiv eSeconds=" 600"
  834                 diskPersi stent="tru e"
  835                 diskExpir yThreadInt ervalSecon ds="1"
  836                 memorySto reEviction Policy="LF U"
  837                  />
  838         -->
  839    
  840         
  841     <!--
  842         Sample  Terracott a clustere d cache na med sample Terracotta Cache.
  843         This c ache uses  Terracotta  to cluste r the cont ents of th e cache.
  844         -->
  845         
  846     <!--
  847         <cache  name="sam pleTerraco ttaCache"
  848                 maxBytesL ocalHeap=" 10m"
  849                 eternal=" false"
  850                 timeToIdl eSeconds=" 3600"
  851                 timeToLiv eSeconds=" 1800"
  852                 overflowT oDisk="fal se">
  853             <t erracotta/ >
  854         </cach e>
  855         -->
  856    
  857         
  858     <!--
  859           Samp le xa enab led cache  named xaCa che
  860         <cache  name="xaC ache"
  861                 maxEntrie sLocalHeap ="500"
  862                 eternal=" false"
  863                 timeToIdl eSeconds=" 300"
  864                 timeToLiv eSeconds=" 600"
  865                 overflowT oDisk="fal se"
  866                 diskPersi stent="fal se"
  867                 diskExpir yThreadInt ervalSecon ds="1"
  868                 transacti onalMode=" xa_strict" >
  869         </cach e>
  870         -->
  871    
  872         
  873     <!--
  874           Samp le copy on  both read  and write  cache nam ed copyCac he
  875           usin g the defa ult (expli citly conf igured her e as an ex ample) Rea dWriteSeri alizationC opyStrateg y
  876           clas s could be  any imple mentation  of net.sf. ehcache.st ore.compou nd.CopyStr ategy
  877         <cache  name="cop yCache"
  878                 maxEntrie sLocalHeap ="500"
  879                 eternal=" false"
  880                 timeToIdl eSeconds=" 300"
  881                 timeToLiv eSeconds=" 600"
  882                 overflowT oDisk="fal se"
  883                 diskPersi stent="fal se"
  884                 diskExpir yThreadInt ervalSecon ds="1"
  885                 copyOnRea d="true"
  886                 copyOnWri te="true">
  887             <c opyStrateg y class="n et.sf.ehca che.store. compound.R eadWriteSe rializatio nCopyStrat egy" />
  888         </cach e>
  889         -->
  890         
  891     <!--
  892           Samp le, for En terprise E hcache onl y, demonst rating a t iered cach e with in- memory, of f-heap and  disk stor es. In thi s example  the in-mem ory (on-he ap) store  is limited  to 10,000  items ...  which for  example f or 1k item s would us e 10MB of  memory, th e off-heap  store is  limited to  4GB and t he disk st ore is unl imited in  size.
  893         <cache  name="tie redCache"
  894                 maxEntrie sLocalHeap ="10000"
  895                 eternal=" false"
  896                 timeToLiv eSeconds=" 600"
  897                 overflowT oOffHeap=" true"
  898                 maxMemory OffHeap="4 g"
  899                 overflowT oDisk="tru e"
  900                 diskPersi stent="fal se"
  901                 diskExpir yThreadInt ervalSecon ds="1"
  902          </cac he>
  903     -->
  904   </ehcache>