Discussion:
CacheFullException not recovered after rollback
(too old to reply)
Eynat Nir Mishor
2005-01-26 14:36:57 UTC
Permalink
I have been encountering a problematic entity-bean-related CacheFullException situation: after a CacheFullException has been thrown (for good reasons), and the transaction is rolledback, I keep getting CacheFullException in later transactions, which shouldn't get it.

It seems as though the rolled-back transaction due to CacheFullException is not cleanning-up the cache. It's not marking the entity beans that *did* manage to enter the cache in that failed transaction as no longer active.

I'm using WLS 8.1 SP 3. The entity bean is CMP. It's PK class is Integer. Using Container Managed Transaction.

I originally encountered the problem when using the default max-beans-in-cache = 1000 during load.
In order to better understand the problem, I now reduced max-beans-in-cache to 5 and am performing manual testing, not load.
Now, if I try to get more than 5 entity beans into the cache in a single transaction (returned from a finder and accessed), I get CacheFullException (rightfully).
Then when I try, in a new transaction, to simply create one entity bean of that type, I get CacheFullException.
I'm stuck in repeating CacheFullException, and must restart the server in order to solve it.
The repeating CacheFullException has a growing 'size' value. For
example:
weblogic.ejb20.cache.CacheFullException: size=7, target=5, incr=1, then
weblogic.ejb20.cache.CacheFullException: size=8, target=5, incr=1, then,
weblogic.ejb20.cache.CacheFullException: size=9, target=5, incr=1, etc.
In the original load scenario, it grew from close to 1000 up to 6 digits!

Using the Monitoring of the Weblogic Server Console, I see that "Cached Beans Current Count" is 0. This leaves me puzzled.

Has anyone else encountered this problem? And possibly has an idea if this is a problem in my WLS configuration / descriptors / code, or a WLS problem?

Thanks,
Eynat
Iris Seri
2005-02-16 13:24:22 UTC
Permalink
Update:
I specified the max-beans-in-free-pool and a lower idle-timeout-seconds for the entity beans that were getting the CacheFullException. This did the trick for me.

Iris

Loading...