[JBoss-user] [EJB/JBoss] - ApplicationDeadlockException and read-only methods
I am currently getting ApplicationDeadlockExceptions being thrown. I am familiar with the reasons why deadlock can occur, however I am a little confused as to when entity beans are being locked. The stack trace for the exception shows that it originates from a method getY on my entity bean X called from a session bean method. I have marked all get* methods as being read-only. Y however is a CMR field, and the only method called before X.getY in my session beans method is a finder that returns the X entity bean. Does this mean the finder method is locking and also the getY method on the X entity bean is locking? sample code public void MySessionMethod( String pk ) | { | XLocal x = getXLocalHome().findByPrimaryKey(pk); | YLocal y = x.getY(); | ... | } it is the x.getY() that is causing the ApplicationDeadlockException Thanks in advance View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3880894#3880894 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3880894 --- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61 plasma display: http://www.necitguy.com/?r=20 ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [EJB/JBoss] - ApplicationDeadlockException
Hi, I'am running my EJBs on JBoss 3.2.3. I have an entity bean, which may be accessed by multiple other session beans. When I was testing my app - after deploying, I found an exception(as below): - org.jboss.util.deadlock.ApplicationDeadlockException: Application deadlock detected, [EMAIL PROTECTED], bean=, id=283, refs=2, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=//1995, BranchQual=], synched=Thread[Thread Pool Worker-16,5,ASF Session Pool Threads], timeout=5000, queue=[], holder=TransactionImpl:XidImpl [FormatId=257, GlobalId=//1993, BranchQual=], [EMAIL PROTECTED], bean=, id=292, refs=2, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=//1993, BranchQual=], synched=null, timeout=5000, queue=[TXLOCK waitingTx=TransactionImpl:XidImpl [FormatId=257, GlobalId=//1995, BranchQual=] id=0 thread=Thread[Thread Pool Worker-13,5,ASF Session Pool Threads] queued=true], waitingResourceHolder=TransactionImpl:XidImpl [FormatId=257, GlobalId=//1993, BranchQual=] --- This is the first time I'am seeing such an exception. Its a hard nut to crack. If someone can help me out in solving the exception, it'd be really helpful. Thanks in advance, Baskar View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3869192#3869192 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3869192 --- SF email is sponsored by - The IT Product Guide Read honest candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595alloc_id=14396op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [EJB/JBoss] - ApplicationDeadlockException
Hi all, I am getting an exception on runtime, 19:25:40,515 INFO [STDOUT] javax.ejb.TransactionRolledbackLocalException: Application deadlock detected, [EMAIL PROTECTED], bean=EmployeePersonal, [EMAIL PROTECTED], refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1711, BranchQual=, localId=1711], synched=Thread[RMI TCP Connection(66)-10.91.194.24,5,RMI Runtime], timeout=5000, queue=[], holder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713], [EMAIL PROTECTED], bean=Employee, [EMAIL PROTECTED], refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713], synched=null, timeout=5000, queue=[TXLOCK waitingTx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1711, BranchQual=, localId=1711] id=0 thread=Thread[RMI TCP Connection(61)-10.91.194.24,5,RMI Runtime] queued=true], waitingResourceHolder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713]; CausedByException is: Application deadlock detected, [EMAIL PROTECTED], bean=EmployeePersonal, [EMAIL PROTECTED], refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1711, BranchQual=, localId=1711], synched=Thread[RMI TCP Connection(66)-10.91.194.24,5,RMI Runtime], timeout=5000, queue=[], holder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713], [EMAIL PROTECTED], bean=Employee, [EMAIL PROTECTED], refs=2, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713], synched=null, timeout=5000, queue=[TXLOCK waitingTx=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1711, BranchQual=, localId=1711] id=0 thread=Thread[RMI TCP Connection(61)-10.91.194.24,5,RMI Runtime] queued=true], waitingResourceHolder=TransactionImpl:XidImpl[FormatId=257, GlobalId=Keerthikar/1713, BranchQual=, localId=1713] 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:232) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:514) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.Container.invoke(Container.java:859) 19:25:40,531 INFO [STDOUT] at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:413) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:44) 19:25:40,546 INFO [STDOUT] at $Proxy501.getEmployeePersonalDO(Unknown Source) 19:25:40,546 INFO [STDOUT] at com.quark.hrms.employeemanagement.ejb.session.employeemanager.EmployeeManager.getEmployeePersonalDO(EmployeeManager.java:224) 19:25:40,546 INFO [STDOUT] at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source) 19:25:40,546 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 19:25:40,546 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:324) 19:25:40,546 INFO [STDOUT] at org.jboss.invocation.Invocation.performCall(Invocation.java:345) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:214) 19:25:40,546 INFO [STDOUT] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:113) 19:25:40,546 INFO [STDOUT] at org.jboss.webservice.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterceptor.java:51) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:316) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:149) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:128) 19:25:40,546 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
[JBoss-user] [EJB/JBoss] - ApplicationDeadlockException, retries and stateful session b
I have a stateful session bean that will deadlock relatively easily. I'd like very much to be able to detect deadlock situations and restart offending transactions. My beans has CMT, and org.jboss.ejb.plugins.TxInterceptorCMT successfully detects deadlocks, throws an ApplicationDeadlockException, and re-tries the transaction. Unfortunately, org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor is higher in the interceptor stack, and has already caught the ApplicationDeadlockException, and, as it is a subclass of java.rmi.RemoteException, has discarded the offending session bean instance. Thus when TxInterceptorCMT re-tries the transaction, the offending session bean instance is no longer available, and a java.rmi.NoSuchObjectException is thrown and propagated to the client. The result is my client gets a NoSuchObjectException (with no chained exceptions) and has no way of determining whether this was due to a deadlock (in which case it can automatically create a new session bean instance, and re-try the transaction) or some other exceptional error. Is there any way to save a stateful session bean instance from being discarded when a deadlock is detected by JBoss? If not, is there any way to prevent TxInterceptorCMT from re-trying transactions that have deadlocked, without recompiling TxInterceptorCMT or setting TxInterceptorCMT.MAX_RETRIES from custom Java code? Should I use BMT instead? I'm using JBoss 3.2.3. Any help will be much appreciated. Damian View the original post : http://www.jboss.org/index.html?module=bbop=viewtopicp=3833835#3833835 Reply to the post : http://www.jboss.org/index.html?module=bbop=postingmode=replyp=3833835 --- This SF.Net email is sponsored by Sleepycat Software Learn developer strategies Cisco, Motorola, Ericsson Lucent use to deliver higher performing products faster, at low TCO. http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3 ___ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user