8 Replies Latest reply on Apr 29, 2008 9:01 AM by Ben Stokes

    write lock for / could not be acquired after 15000 ms

    Ben Stokes Newbie

      Hi,

      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)