Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A soft-locked cache entry was expired by the underlying Ehcache

Hibernate 3.3.x, ehcache 2.2.x

The following error occurs, when I try to publish a lots of users in a single go. Any idea on why this would happen and how to rectify this? Is there a way to disable this cache prior to bulk loading of users, if so how should I do that?

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:

This error happens when I try to bulk load a lot of users into the database via JPA calls. I don't shutdown the cache manager via a tear down hook.

like image 394
Joe Avatar asked Apr 15 '11 12:04

Joe


2 Answers

From the description it looks like the second-level cache for your entities are getting full, and some of them are getting evicted from the underlying ehcache prematurely. Do you flush & clear the hibernate Session periodically during your bulk-insert, as mentioned in the documentation?

like image 158
Binil Thomas Avatar answered Sep 25 '22 23:09

Binil Thomas


You may also want to look at using a Stateless Session. If not, as @Binil Thomas mentioned, you're going to have to flush and clear your session to free up resources.

like image 31
MarkOfHall Avatar answered Sep 26 '22 23:09

MarkOfHall