problem with timeout on BeanLockTransactions.
joshua.kolash Dec 13, 2004 4:59 PMI've been getting this error below running my application under high stress loads:
15:24:53,156 INFO [STDOUT] Caused by: javax.ejb.TransactionRolledbackLocalException: Application deadlock detected, resource=org.
jboss.ejb.plugins.lock.QueuedPessimisticEJBLock@15ed777, bean=PersonBean, id=1, refs=2, tx=TransactionImpl:XidImpl[FormatId=257, G
lobalId=Pcharles/1044, BranchQual=, localId=1044], synched=Thread[http-0.0.0.0-8080-Processor16,5,jboss], timeout=5000, queue=[],
holder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1087, BranchQual=, localId=1087], waitingResource=org.jboss.ejb.plu
gins.lock.QueuedPessimisticEJBLock@be7488, bean=OrganizationBean, id=1, refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=
Pcharles/1087, BranchQual=, localId=1087], synched=null, timeout=5000, queue=[TXLOCK waitingTx=TransactionImpl:XidImpl[FormatId=25
7, GlobalId=Pcharles/1044, BranchQual=, localId=1044] id=0 thread=Thread[http-0.0.0.0-8080-Processor49,5,jboss] queued=true], wait
ingResourceHolder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1087, BranchQual=, localId=1087]; CausedByException is:
Application deadlock detected, resource=org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock@15ed777, bean=PersonBean, id=1
, refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1044, BranchQual=, localId=1044], synched=Thread[http-0.0.0.0
-8080-Processor16,5,jboss], timeout=5000, queue=[], holder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1087, BranchQua
l=, localId=1087], waitingResource=org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock@be7488, bean=OrganizationBean, id=1, refs=2
, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1087, BranchQual=, localId=1087], synched=null, timeout=5000, queue=[
TXLOCK waitingTx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1044, BranchQual=, localId=1044] id=0 thread=Thread[http-
0.0.0.0-8080-Processor49,5,jboss] queued=true], waitingResourceHolder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Pcharles/1087
, BranchQual=, localId=1087]
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:232)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:514)
15:24:53,156 INFO [STDOUT] at org.jboss.ejb.Container.invoke(Container.java:854)
15:24:53,172 INFO [STDOUT] at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:413)
15:24:53,172 INFO [STDOUT] at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:44)
15:24:53,172 INFO [STDOUT] at $Proxy212.getPersonID(Unknown Source)
I want to change the value of timeout to somthing other than 5000, unfortunately I've looked through the jboss source code and found in
org.jboss.ejb.BeanLockManager.java
on line 37 int txTimeout = 5000;
Is there any way to set this value with an xml file? I plan on submitting a bug report as well.