We are building an enterprise business system using BMP entity beans and Statefull Session beans.
JBoss is fairly new to us. We are using 3.2.3.
I am in the process of testing some of our order-entry stuff (using JMeter) and I am encountering deadlocks when I have multiple simulated users. During the test, the session beans (for each simulated client) are working with entity beans (ie, from products, customers, inventory, etc. tables).
The error (shown below) will happen at varying places and frequency just depending on the the timing of the test. I tried the org.jboss.ejb.plugins.lock.SimpleReadWriteEJBLock locking policy but this will hang every thread until the txn times-out so I set it back to default: QueuedPessimisticEJBLock.
All the methods are deployed as required.
I would really appreciate any feedback or comments anyone would be kind enough to offer. Does anyone else have moderately complex business logic on BMP entity beans via CMT session beans that experienced this?
2004-05-04 12:20:12,163 INFO [STDOUT] 2004-05-04 12:20:12,163 <RMI TCP Connection(625)-192.168.99.19> WARN message: read(com.icsaward.award.server.eb.busnpart.BusnpartPK, bp_no = 49) Exception: org.jboss.util.deadlock.ApplicationDeadlockException: Application deadlock detected, resource=org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock@1517485, bean=com.icsaward.award.server.eb.busnpart.BusnpartHome, id=com.icsaward.award.server.eb.busnpart.BusnpartPK, bp_no = 49, refs=2, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=WJW//5335, BranchQual=], synched=Thread[RMI TCP Connection(625)-192.168.99.19,5,RMI Runtime], timeout=5000, queue=, holder=TransactionImpl:XidImpl [FormatId=257, GlobalId=WJW//5317, BranchQual=], waitingResource=org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock@b8c870, bean=com.icsaward.award.server.eb.whsectrl.WhsectrlHome, id=com.icsaward.award.server.eb.whsectrl.WhsectrlPK, wc_prod_no_fk = 33, wc_busnlocn_fk = 5, refs=2, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=WJW//5317, BranchQual=], synched=null, timeout=5000, queue=[TXLOCK waitingTx=TransactionImpl:XidImpl [FormatId=257, GlobalId=WJW//5335, BranchQual=] id=0 thread=Thread[RMI TCP Connection(628)-192.168.99.19,5,RMI Runtime] queued=true], waitingResourceHolder=TransactionImpl:XidImpl [FormatId=257, GlobalId=WJW//5317, BranchQual=]