[jboss-user] [JBossCache] - Re: java.lang.IllegalStateException: there is already a writ

mindflyer do-not-reply at jboss.com
Fri Mar 23 04:57:59 EDT 2007


"manik.surtani at jboss.com" wrote : Have you tried the teast case attached in JBCACHE-740?  (You may need tomodify this a bit since 740 was contributed by someone using JOTM)

Firstly, I added logging to MultithreadedTxTest.Worker.run into catch section:
catch (Exception e)
  |          {
  |             exception = e;
  |             log.error("exception", e);
  |             try
  |             {
  |                tx.rollback();
  |             }
  |             catch (Exception e1)
  |             {
  |                rollbackException = e1;
  |                log.error("rollbackException", e1);
  |             }
  |          }

started test and test passed, but log contains many errors:

11:28:34,484 ERROR [DummyTransaction] beforeCompletion() failed for tx=org.jboss.cache.transaction.DummyTransaction at 10f11b8, handlers=[TxInterceptor.LocalSynchronizationHandler(gtx=GlobalTransaction:<null>:168, tx=org.jboss.cache.transaction.DummyTransaction at 10f11b8)]
  | java.lang.RuntimeException: 
  | 	at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1163)
  | 	at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:75)
  | 	at org.jboss.cache.transaction.DummyTransaction.notifyBeforeCompletion(DummyTransaction.java:247)
  | 	at org.jboss.cache.transaction.DummyTransaction.commit(DummyTransaction.java:54)
  | 	at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest$Worker.run(MultithreadedTxTest.java:144)
  | Caused by: org.jboss.cache.optimistic.DataVersioningException: Tx attempted to create /path/node anew.  It has already been created since this tx started by another (possibly remote) tx.
  | 	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.simpleValidate(OptimisticValidatorInterceptor.java:139)
  | 	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateNodes(OptimisticValidatorInterceptor.java:113)
  | 	at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(OptimisticValidatorInterceptor.java:78)
  | 	at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
  | 	at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(OptimisticLockingInterceptor.java:99)
  | 	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:1138)
  | 	... 4 more
  | 11:28:34,484 ERROR [MultithreadedTxTest] exception
  | javax.transaction.RollbackException: outcome is false status: 1
  | 	at org.jboss.cache.transaction.DummyTransaction.commit(DummyTransaction.java:67)
  | 	at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest$Worker.run(MultithreadedTxTest.java:144)

Is it all right?

Secondly, I set TransactionManagerLookupClass = "org.jboss.cache.JBossTransactionManagerLookup" and ran test under the running JBoss. I see:

  | 11:48:12,187 INFO  [InterceptorChainFactory] interceptor chain is:
  | class org.jboss.cache.interceptors.CallInterceptor
  | class org.jboss.cache.interceptors.OptimisticNodeInterceptor
  | class org.jboss.cache.interceptors.OptimisticCreateIfNotExistsInterceptor
  | class org.jboss.cache.interceptors.OptimisticValidatorInterceptor
  | class org.jboss.cache.interceptors.OptimisticLockingInterceptor
  | class org.jboss.cache.interceptors.TxInterceptor
  | class org.jboss.cache.interceptors.CacheMgmtInterceptor
  | 11:48:12,218 INFO  [STDOUT] >> testing simultaneous writes with 2 threads...
  | 11:48:12,250 ERROR [MultithreadedTxTest] exception
  | org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImp
  | l[FormatId=257, GlobalId=SI/28, BranchQual=, localId=28] status=STATUS_NO_TRANSA
  | CTION; - nested throwable: (java.lang.RuntimeException: )
  |         at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:372)
  |         at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest$Worker
  | .run(MultithreadedTxTest.java:144)
  | Caused by: java.lang.RuntimeException:
  |         at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandle
  | r.beforeCompletion(TxInterceptor.java:1163)
  |         at org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeComp
  | letion(OrderedSynchronizationHandler.java:75)
  |         at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:
  | 1491)
  |         at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1110)
  | 
  |         at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324)
  |         ... 1 more
  | Caused by: org.jboss.cache.optimistic.DataVersioningException: Tx attempted to c
  | reate /path anew.  It has already been created since this tx started by another
  | (possibly remote) tx.
  |         at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.simpleVal
  | idate(OptimisticValidatorInterceptor.java:139)
  |         at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.validateN
  | odes(OptimisticValidatorInterceptor.java:113)
  |         at org.jboss.cache.interceptors.OptimisticValidatorInterceptor.invoke(Op
  | timisticValidatorInterceptor.java:78)
  |         at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
  |         at org.jboss.cache.interceptors.OptimisticLockingInterceptor.invoke(Opti
  | misticLockingInterceptor.java:99)
  |         at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
  |         at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxIntercep
  | tor.java:873)
  |         at org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandle
  | r.beforeCompletion(TxInterceptor.java:1138)
  |         ... 5 more
  | 11:48:12,250 ERROR [MultithreadedTxTest] rollbackException
  | java.lang.IllegalStateException: Transaction has terminated TransactionImpl:XidI
  | mpl[FormatId=257, GlobalId=SI/28, BranchQual=, localId=28]
  |         at org.jboss.tm.TransactionImpl.lock(TransactionImpl.java:834)
  |         at org.jboss.tm.TransactionImpl.rollback(TransactionImpl.java:395)
  |         at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest$Worker
  | .run(MultithreadedTxTest.java:153)
  | 11:48:12,250 ERROR [MultithreadedTxTest] Failed test
  | junit.framework.AssertionFailedError: rollback failed
  |         at junit.framework.Assert.fail(Assert.java:47)
  |         at junit.framework.Assert.assertTrue(Assert.java:20)
  |         at junit.framework.Assert.assertNull(Assert.java:233)
  |         at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest.testSi
  | multanWrite(MultithreadedTxTest.java:74)
  |         at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest.testSi
  | multanWrite(MultithreadedTxTest.java:44)
  |         at net.uk.topdog.td2.common.server.statistics.MultithreadedTxTest.myStar
  | tTest(MultithreadedTxTest.java:177)


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4030970#4030970

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4030970



More information about the jboss-user mailing list