Hi,

I'm getting a lock contention during the launch of a junitee test of my 
application. This lock contention is coming out when I call the remove method 
on a entity bean.

My test is quite simple, create needed entities in the setUp() method. Call an 
entry point of the application by providing some data. Let the application run 
and remove all the created entities in the tearDown() method.

When I simulate the flow with a bean shell, everything works fine. I tried to 
run the test by moving the deletion of created entities (the ones that create 
this lock contection) in the test itself: not much. I tried to remove the 
entities in different way: by getting a Collection and iterate over the 
Collection, by getting a single entry, ...): same.

I investigated more by tracing org.jboss.tm and org.jboss.ejb.BeanLock... but 
this is throwing a lot of unreadable (at least for me) logs. If you need these 
complete logs (more than 12000 lines), let me know.

Is there any way to detect exactly what is causing this lock contention ? Which 
transactions are active or whatever that could be interesting to know what is 
going wrong ?

I'm running jboss 3.2.4 with java  1.4.2_05-b04 under fedora core 3.


  | 15:15:35,001 DEBUG [http-0.0.0.0-8880-Processor25] 
[kservertest.base.OpmEntityCleaner] Remove 
logtrackandtrace:KIALAB00000001.2005-05-03 15:14:58.932
  | 15:20:35,023 WARN  [Timeouts(1)-1] [jboss.tm.TransactionImpl] Transaction 
TransactionImpl:XidImpl [FormatId=257, GlobalId=eddie.dev.kiala.com//237, 
BranchQual=] timed out. status=STATUS_ACTIVE
  | 15:20:35,025 ERROR [http-0.0.0.0-8880-Processor25] [jboss.ejb.BeanLock] 
Thread[http-0.0.0.0-8880-Processor25,5,jboss]Saw rolled back 
tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=eddie.dev.kiala.com//237, B
  | ranchQual=] waiting for txLock
  | 15:20:35,030 WARN  [http-0.0.0.0-8880-Processor25] 
[jboss.tm.TransactionImpl] Lock contention, tx=TransactionImpl:XidImpl 
[FormatId=257, GlobalId=eddie.dev.kiala.com//237, BranchQual=]
  | 15:20:35,039 ERROR [http-0.0.0.0-8880-Processor25] 
[ejb.plugins.LogInterceptor] RuntimeException:
  | java.lang.RuntimeException: Transaction marked for rollback, possibly a 
timeout
  |         at 
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.waitForTx(QueuedPessimisticEJBLock.java:366)
  |         at 
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.doSchedule(QueuedPessimisticEJBLock.java:236)
  |         at 
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.schedule(QueuedPessimisticEJBLock.java:183)
  |         at 
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:85)
  |         at 
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:54)
  |         at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
  |         at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)
  |         at 
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)
  |         at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:120)
  |         at 
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
  |         at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
  |         at 
org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:484)
  |         at org.jboss.ejb.Container.invoke(Container.java:723)
  |         at 
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:359)
  |         at 
org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:44)
  |         at $Proxy787.remove(Unknown Source)
  |         at 
com.kiala.kservertest.base.OpmEntityCleaner.removeLogtrackandtraceByPrimaryKey(OpmEntityCleaner.java:210)
  |         at 
com.kiala.kservertest.synch.KialaItemScanningTest.testItem01_02_ItemScanningFeedbackOnlyDelivery(KialaItemScanningTest.java:129)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:324)
  |         at junit.framework.TestCase.runTest(TestCase.java:154)
  |         at junit.framework.TestCase.runBare(TestCase.java:127)
  |         at junit.framework.TestResult$1.protect(TestResult.java:106)
  |         at junit.framework.TestResult.runProtected(TestResult.java:124)
  |         at junit.framework.TestResult.run(TestResult.java:109)
  |         at junit.framework.TestCase.run(TestCase.java:118)
  |         at org.junitee.runner.TestRunner.run(TestRunner.java:108)
  |         at 
org.junitee.servlet.JUnitEEServlet.runTests(JUnitEEServlet.java:233)
  |         at org.junitee.servlet.JUnitEEServlet.doGet(JUnitEEServlet.java:202)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
  |         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
  |         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  |         at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  |         at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
  |         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  |         at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  |         at 
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  |         at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  |         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  |         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  |         at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  |         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  |         at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  |         at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  |         at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
  |         at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  |         at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  |         at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
  |         at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  |         at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
  |         at java.lang.Thread.run(Thread.java:534)
  | 

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

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


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to