2010-03-18 8 views

risposta

9

tratto dalla documentazione su Cache Configuration:

 
The following attributes and elements are optional. 

timeToIdleSeconds: 
Sets the time to idle for an element before it expires. 
i.e. The maximum amount of time between accesses before an element expires 
Is only used if the element is not eternal. 
Optional attribute. A value of 0 means that an Element can idle for infinity. 
The default value is 0. 

timeToLiveSeconds: 
Sets the time to live for an element before it expires. 
i.e. The maximum time between creation time and when an element expires. 
Is only used if the element is not eternal. 
Optional attribute. A value of 0 means that and Element can live for infinity. 
The default value is 0. 

Nota che EHCache utilizza un timeToLive, non un tempo scade e l'impostazione predefinita è 0 se non specificato.


Aggiornamento: Mentre il sopra circa default quando si configura una cache è vero, sembra che questi valori di default non si applicano se non si fornisce alcuna ehcache.xml. Così ho scavato un po 'oltre e penso che EHCache può effettivamente utilizzare sempre un defaultCache in questo caso - anche per il StandardQueryCache - e questo ha un defaultCache timeToLive di 2 minuti:

<defaultCache 
     maxElementsInMemory="10000" 
     eternal="false" 
     timeToIdleSeconds="120" 
     timeToLiveSeconds="120" 
     overflowToDisk="true" 
     diskPersistent="false" 
     diskExpiryThreadIntervalSeconds="120" 
     memoryStoreEvictionPolicy="LRU" 
     /> 

Non posso confermare questo diritto ora, ma questo è quello che vorrei fare:

  • prima, attivare la registrazione su EHCache, EHCache registra un messaggio di avviso quando si utilizza la defaultCache:

Mentre il defaultCache è una grande comodità, è preferibile che ogni Cache sia configurata individualmente. Per questo motivo viene emesso un messaggio del livello di avviso del log ogni volta che viene creata una cache in base ai valori defaultCache.

+0

Ho una pagina utilizzando 2 ° livello + query cache. il caching funziona bene perché quando aggiorno lo show_sql non mostra la query sql. ma dopo circa 4-5 minuti dopo aver premuto refresh, mostra che la query sta recuperando da db. dalla tua spiegazione il default è '0' ma non sembra. può elaborare? – cometta

+1

Il collegamento di configurazione della cache è 404 – luckydonald