Bugs item #796177, was opened at 2003-08-27 14:00
Message generated for change (Comment added) made by patriot1burke
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=796177&group_id=22866
Category: JBossCMP
Group: v3.2
Status: Open
Resolution: None
Priority: 5
Submitted By: Jari Juslin (zds0)
Assigned to: Nobody/Anonymous (nobody)
Summary: JBoss failes to remove lock on CMP beans w/o transaction
Initial Comment:
JBoss 3.2.1, Red Had Linux 6.2, Sun JVM 1.4.2 for Linux
I have EJB 2.0 CMP entity bean, that was accessed both
with and without transaction. When two threads
performed operations on it's fields at the same time,
it sometimes ended up throwing exception like the one
below.
The wort part is that JBoss was not able to recover
from this: subsequent calls to that bean always threw
the same exception over and over again. This
effectively put our system out of operation, since no
retry could get through and bean clients were stuck.
We now added transactions to all the beans
participating to these operations, but this is still
something that should be corrected.
AFAIK the EJB 2.0 spec strongly recommends to always
use transactions with CMP entity beans, and lets
engines not to support accessing CMP beans w/o
transaction, but if JBoss chooses to do so it should
not let user deploy beans it can't handle correctly.
2003-08-24 03:54:38,689 WARN
[org.jboss.tm.TransactionImpl] Transaction
TransactionImpl:XidImpl [FormatId=257,
GlobalId=www.matchem.com//540079, BranchQual=] timed
out. status=STATUS_ACTIVE
2003-08-24 03:54:38,690 WARN
[org.jboss.tm.TransactionImpl] Lock contention,
tx=TransactionImpl:XidImpl [FormatId=257,
GlobalId=www.matchem.com//540079, BranchQual=]
2003-08-24 03:54:38,691 ERROR [org.jboss.ejb.BeanLock]
PoolThread-10Saw rolled back tx=TransactionImpl:XidImpl
[FormatId=257, GlobalId=www.matchem.com//540079,
BranchQual=] waiting for txLock
2003-08-24 03:54:38,691 ERROR [org.jboss.ejb.BeanLock]
removing bean lock and it has tx set! QPL
bean=MITVCharacter id=[.158285.]
tx=TransactionImpl:XidImpl [FormatId=257,
GlobalId=www.matchem.com//540019, BranchQual=]
synched=null timeout=5000 queue=[]
2003-08-24 03:54:38,692 ERROR
[org.jboss.ejb.plugins.LogInterceptor]
TransactionRolledbackLocalException, causedBy:
java.lang.IllegalStateException: removing bean lock and
it has tx set!
at
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.removeRef(QueuedPessimisticEJBLock.java:430)
at
org.jboss.ejb.BeanLockManager.removeLockRef(BeanLockManager.java:107)
at
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:106)
at
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:53)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:273)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:117)
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:483)
at
org.jboss.ejb.Container.invoke(Container.java:674)
at
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:353)
at
org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
at $Proxy170.getRealName(Unknown Source)
at
com.matchem.mitv.common.tvchat.TVChatShowComponentBean.getNewChatEntries(TVChatShowComponentBean.java:273)
at
sun.reflect.GeneratedMethodAccessor63.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:878)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:117)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
at
org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:271)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:243)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at
org.jboss.ejb.StatefulSessionContainer.internalInvoke(StatefulSessionContainer.java:410)
at
org.jboss.ejb.Container.invoke(Container.java:674)
at
sun.reflect.GeneratedMethodAccessor50.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at
org.jboss.invocation.http.server.HttpInvoker.invoke(HttpInvoker.java:163)
at
sun.reflect.GeneratedMethodAccessor62.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at
org.jboss.invocation.http.servlet.InvokerServlet.processRequest(InvokerServlet.java:132)
at
org.jboss.invocation.http.servlet.InvokerServlet.doPost(InvokerServlet.java:171)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at
org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at
org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
----------------------------------------------------------------------
>Comment By: Bill Burke (patriot1burke)
Date: 2003-09-11 09:36
Message:
Logged In: YES
user_id=176497
please try 3.2.2RC3, I have changed how noTx methods are
locked. Get back to me after that.
Thanks,
Bill
----------------------------------------------------------------------
Comment By: Jari Juslin (zds0)
Date: 2003-09-10 18:02
Message:
Logged In: YES
user_id=808897
Ok,
now I managed to get this occur with CMP entity bean that
*has* transactions. Below is pieces of log I think track
what happens.
JBoss 3.2.1, MySQL 4.0.14, Sun JVM 1.4.2-b28, Debian/unstable.
All beans are EJB 2.0 CMP entity beans.
The problem is with CMP entity beans Operator and
SMSCShortCode. They have transaction "Required" for all
methods and CMR relationship, Operator one, SMSCShortCode
many. We call remotely SMSCShortCode.getOperatorIndex, which
just gets Operator by CMR call and returns it's primary key
field, "index", with CMP getter.
Now, when I stress-test the system, first there throws just
two SQLExceptions from entity bean finders. Here is the
latter one:
javax.ejb.FinderException: Find failed:
org.jboss.util.NestedSQLException: No ManagedConnections
Available!; - nested throwable:
(javax.resource.ResourceException: No ManagedConnections
Available!)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:194)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:91)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntityCommand.execute(JDBCFindEntityCommand.java:44)
at
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntity(JDBCStoreManager.java:591)
at
org.jboss.ejb.plugins.CMPPersistenceManager.findEntity(CMPPersistenceManager.java:312)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntity(CachedConnectionInterceptor.java:301)
at
org.jboss.ejb.EntityContainer.find(EntityContainer.java:685)
at
sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:998)
at
org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:88)
at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:188)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:215)
at
org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:88)
at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:91)
at
org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:61)
at
org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:28)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:88)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:243)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:74)
at
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:92)
at
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:120)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:93)
at
org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:477)
at org.jboss.ejb.Container.invoke(Container.java:694)
at
sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at
org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:83)
at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at
org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
at
org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:173)
at
org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy358.findByPrimaryKey(Unknown Source)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.getOperator(CustomerOperatorSolver.java:730)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.checkInCustomer(CustomerOperatorSolver.java:193)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.handleHTTPRequest(ServiceManagerServlet.java:663)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.doGet(ServiceManagerServlet.java:526)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at
org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at
org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
Then, next exception is more obscure. I see no re-entrancy
here (as described abode, getOperatorIndex() is called from
web application, and it has just one line:
return getOperator().getIndex();
where getOperator() is CMR bound and getIndex() is CMP PK
field. Note that these exceptions (the previous and all the
later ones) are thrown when accessing _the same row_ in
database.
So, I suppose that here JBoss has started to fall into
illegal state:
java.rmi.RemoteException: Reentrant method call detected:
SMSCShortCode [.9.]
at
org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:67)
at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:174)
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.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:243)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:117)
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:483)
at org.jboss.ejb.Container.invoke(Container.java:674)
at
sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at
org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:83)
at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at
org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
at
org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:97)
at
org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy387.getOperatorIndex(Unknown Source)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.getOperator(CustomerOperatorSolver.java:728)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.checkInCustomer(CustomerOperatorSolver.java:193)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.handleHTTPRequest(ServiceManagerServlet.java:663)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.doGet(ServiceManagerServlet.java:526)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at
org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at
org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
java.rmi.ServerException: RuntimeException; nested exception is:
java.lang.IllegalStateException: removing bean lock
and it has tx set!
at
org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:360)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at
org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:483)
at org.jboss.ejb.Container.invoke(Container.java:674)
at
sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
at
org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:83)
at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at
org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
at
org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:97)
at
org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy387.getOperatorIndex(Unknown Source)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.getOperator(CustomerOperatorSolver.java:728)
at
com.matchem.mitv.sms.servicemanager.CustomerOperatorSolver.checkInCustomer(CustomerOperatorSolver.java:193)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.handleHTTPRequest(ServiceManagerServlet.java:663)
at
com.matchem.mitv.sms.servicemanager.ServiceManagerServlet.doGet(ServiceManagerServlet.java:526)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:507)
at
org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at
org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at
org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)
Caused by: java.lang.IllegalStateException: removing bean
lock and it has tx set!
at
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.removeRef(QueuedPessimisticEJBLock.java:430)
at
org.jboss.ejb.BeanLockManager.removeLockRef(BeanLockManager.java:107)
at
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:106)
at
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:53)
at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:243)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:117)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
... 35 more
And this exception is then repeated hundreds of times. Every
access to that same row throws the same exception after this
point.
So, what happens:
1) There is some problem in accessing DB, possibly overload
and SQLEception is thrown.
2) Next call to same row throws re-entrancy-exception.
3) JBoss starts to throw "tx set" exception from every
access to that row.
Re-deploying the beans solves the problem temporarily.
Any advice is appreciated, since this bug is so serious,
that I can't take this kind of code into production.. Adding
some session bean there, that does the entity bean calls
could help, but it's not a simple task and thus I'd rather
not do such moves blindly.
Also I can make this bug reoccur very easily, so if you have
some ideas of how to make JBoss output more information
about what it does internally on these occasions, please
tell me what and how.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=796177&group_id=22866
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development