[
http://jira.jboss.com/jira/browse/JBAS-2598?page=all ]
Dimitris Andreadis updated JBAS-2598:
-------------------------------------
Fix Version/s: (was: JBossAS-4.0.5.CR1)
[PerTxEntityInstanceCache] Unable to passivate due to ctx lock
--------------------------------------------------------------
Key: JBAS-2598
URL:
http://jira.jboss.com/jira/browse/JBAS-2598
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: EJB2
Affects Versions: JBossAS-4.0.3 SP1
Environment: Linux kos 2.6.14-archck5 #3 SMP PREEMPT Wed Dec 21 03:25:49 MSK 2005
x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ AuthenticAMD GNU/Linux
java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Server VM (build 1.5.0_05-b05, mixed mode)
Reporter: Konstantin Sobolev
Priority: Minor
I'm getting lots of
[PerTxEntityInstanceCache] Unable to passivate due to ctx lock
warnings. I'm calling instance per transaction BMP entity bean without a transaction
context, by default it has a commit option C (there's no warnings if using B). Right
after bean method invocation JBoss tries to passivate the instance, but fails because
enterprise context is still locked, thus a perfectly valid(?) code generates lots of
warnings.
My code looks like this (schematically):
MyInstancePerTransactionBean bean = home.findByPrimaryKey(...);
bean.method1(); //here we get passivation failure warning
bean.method2(); //and another one here
Call trace to the point where passivation fails:
at
org.jboss.ejb.plugins.PerTxEntityInstanceCache.canPassivate(PerTxEntityInstanceCache.java:181)
<-- returns false
at
org.jboss.ejb.plugins.PerTxEntityInstanceCache.tryToPassivate(PerTxEntityInstanceCache.java:152)
at
org.jboss.ejb.plugins.PerTxEntityInstanceCache.release(PerTxEntityInstanceCache.java:94)
at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:364)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)
at
org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:111)
at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:261)
at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:89)
at
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:53)
at
org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:363)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:514)
at org.jboss.ejb.Container.invoke(Container.java:873)
at sun.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at
org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)
at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:179)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:165)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:97)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
at $Proxy1264.getHierarchyName(Unknown Source)
at
com.supportwizard.swgroups.SWGroupsBean.ejbFindByName(SWGroupsBean.java:915)me(SWGroupsBean.java:915)
Here SWGroupsBean is an ordinary BMP bean, it's ejbFindByName method contains the
code snippet shown above (method1 being getHierarchyName). As I said ctx is locked, so
PerTxEntityInstanceCache.canPassivate returns false and we get a warning.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira