2010-03-18 12 views

Respuesta

9

tomado de la documentación sobre 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. 

Tenga en cuenta que EHCache utiliza un timeToLive, no un tiempo expira y el valor predeterminado es 0 si no se especifica.


Actualización: Si bien lo anterior sobre los valores predeterminados cuando se configura una caché es cierto, parece que estos valores predeterminados no se aplican si usted no proporciona ninguna ehcache.xml. Así que cavado un poco más lejos y creo que en realidad puede EHCache utilice siempre un defaultCache en ese caso - incluso para la StandardQueryCache - y esto tiene un defaultCache timeToLive de 2 minutos:

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

No puedo confirmar este derecho ahora, pero esto es lo que haría:

  • en primer lugar, activar el registro de EHCache, EHCache registra una advertencia cuando se utiliza el defaultCache:

Si bien la cache predeterminada es una gran conveniencia, es preferible que cada caché se configure individualmente. Por esta razón, se emite un mensaje de advertencia de registro cada vez que se crea una memoria caché en función de los valores predeterminados de caché.

  • en segundo lugar, proporcionar una ehcache.xml (y configurar una memoria caché de la StandardQueryCache).
+0

tengo una página usando la consulta de segundo nivel + caché. el almacenamiento en caché funciona bien porque cuando actualizo el show_sql no muestra la consulta SQL. pero después de como 4-5min después de presionar actualizar, muestra que la consulta está recuperando de db. de su explicación, el valor predeterminado es '0' pero no se parece a eso. puede elaborar? – cometta

+1

El enlace de configuración de caché es 404 – luckydonald

Cuestiones relacionadas