2011-04-15 16 views
6

3.3.x Hibernate, 2.2.x ehcacheuna entrada de caché suave bloqueado había expirado por el Ehcache subyacente

se produce el siguiente error, cuando intento publicar una gran cantidad de usuarios de una sola vez . Alguna idea sobre por qué esto sucedería y cómo rectificar esto? ¿Hay alguna forma de desactivar este caché antes de la carga masiva de usuarios? En caso afirmativo, ¿cómo debo hacer eso?

17:17:50,140 WARN [AbstractReadWriteEhcacheAccessStrategy] Cache 
persistence.unit:unitName=my.ear/my-ejb-1.0.0.jar#my.com.mycompany.User.phones Key com.mycompany.User.phones#9915 Lockable : null 

A soft-locked cache entry was expired by the underlying Ehcache. 
If this happens regularly you should consider increasing the cache timeouts and/or capacity limits 

EDIT1:

Este error ocurre cuando intento cargar una mayor cantidad de usuarios en la base de datos a través de llamadas de la APP. No apago el administrador de caché a través de un gancho.

Respuesta

2

Según la descripción, parece que la memoria caché de segundo nivel para sus entidades se está completando, y algunas de ellas están siendo desalojadas prematuramente de la ehcache subyacente. ¿Tiene flush & clear la hibernación Session periódicamente durante su inserción masiva, como se menciona en el documentation?

+0

Voy a intentar esto, no lo hago ahora mismo – Joe

+0

Para probar la hipótesis, puede intentar establecer 'maxElementsInMemory' de EhCache en 0 - para que no se expulse ninguna entrada - y verificar si la advertencia va lejos. –

1

También puede que desee ver en el uso de un Stateless Session. Si no es así, como @Binil Thomas mencionó, tendrá que hacer flush y su sesión para liberar recursos.

Cuestiones relacionadas