write lock for / could not be acquired after 15000 ms
jay_bee Apr 19, 2008 2:42 AMHi,
We're using JBoss 4.2.2GA which incorporates JBoss Cache 1.4.1SP5 and problems are coming up during volume testing of our system. The system itself uses EJB3 and hibernate, JBoss Cache is used as a second level cache with optimistic locking
The exception below is thrown at above 500 concurrent users. I've had a google around and there looked like there was a similar problem happening in early versions of 1.4.1. We added an attribute to the config file to disable locking of a parent node on writing (as specified in the bug fix) but the same error came up.
Should we be using a later version of JBoss Cache?
Thanks
jay_bee
2008-04-18 17:32:42,580 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cs8].[default]] Servlet.service() for servlet default threw exception org.jboss.cache.lock.TimeoutException: write lock for / could not be acquired after 15000 ms. Locks: Read lock owners: [] Write lock owner: GlobalTransaction:<192.168.100.13:33064>:245763 (caller=GlobalTransaction:<192.168.100.13:33064>:245870, lock info: write owner=GlobalTransaction:<192.168.100.13:33064>:245763 (org.jboss.cache.lock.LockStrategyReadCommitted@8a78b7)) at org.jboss.cache.lock.IdentityLock.acquireWriteLock(IdentityLock.java:206) at org.jboss.cache.Node.acquireWriteLock(Node.java:529) at org.jboss.cache.Node.acquire(Node.java:476) at org.jboss.cache.interceptors.OptimisticLockingInterceptor.lockNodes(OptimisticLockingInterceptor.java:153) at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:80) at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68) at org.jboss.cache.interceptors.OptimisticReplicationInterceptor.invoke(OptimisticReplicationInterceptor.java:85) at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68) at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:873) at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1156) at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75) at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114)