[jboss-jira] [JBoss JIRA] Updated: (JBAS-2598) [PerTxEntityInstanceCache] Unable to passivate due to ctx lock

Dimitris Andreadis (JIRA) jira-events at jboss.com
Tue Jul 25 04:01:13 EDT 2006


     [ 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

        



More information about the jboss-jira mailing list