Hi all, I have JBoss 3.2.3 setup in a cluster fronted by Apache 2.0.3 using the mod_jk2 connector. I am using commit option A in conjunction with the distributed cache invalidation framework, backed by a SQL Server 2000 cluster using the I-Net Sprinta JDBC driver. In addition, Apache is set for sticky sessions and no Http session replication is used. Everything seems to work fine apart from concurrent creates of entities. The system has multiple CMP entity beans, fronted by stateless session beans, with tx required on their methods. The entity beans use local interfaces and have tx supports on their methods. All of the getters of the entity beans are marked as read-only for performance reasons. If multiple creates occur simultaniously, I get the following exception:
| 14:51:16,819 ERROR [Engine] StandardWrapperValve[action]: Servlet.service() for servlet action threw exception | org.jboss.tm.JBossTransactionRolledbackException: null; nested exception is: | org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=ausyduxdev00//261, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=45); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=ausyduxdev00//261, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=45)) | at org.jboss.ejb.plugins.TxInterceptorCMT.throwJBossException(TxInterceptorCMT.java:489) | at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:403) | at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:277) | at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128) | at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118) | at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191) | at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) | at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331) | at org.jboss.ejb.Container.invoke(Container.java:700) | at sun.reflect.GeneratedMethodAccessor79.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:546) | at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101) | at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90) | at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) | at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45) | at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100) | at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85) | at $Proxy84.updateCDE(Unknown Source) | at au.com.eclipsegroup.egem.actions.cde.epr.UpdateEPRAction.perform(UpdateEPRAction.java:760) | at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1787) | at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586) | at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) | at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) | at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) | at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:220) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStatsValve.java:76) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) | at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) | at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) | at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:65) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) | at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) | at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) | at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) | at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) | at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) | at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:197) | at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:309) | at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:387) | at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673) | at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615) | at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786) | at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677) | at java.lang.Thread.run(Thread.java:536) | Caused by: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=ausyduxdev00//261, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=45) | at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:413) | at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:398) | ... 66 more | Caused by: javax.ejb.EJBException: Update failed. Expected one affected row: rowsAffected=0id=45 | at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.execute(JDBCStoreEntityCommand.java:155) | at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.storeEntity(JDBCStoreManager.java:627) | at org.jboss.ejb.plugins.CMPPersistenceManager.storeEntity(CMPPersistenceManager.java:421) | at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.storeEntity(CachedConnectionInterceptor.java:387) | at org.jboss.ejb.EntityContainer.storeEntity(EntityContainer.java:714) | at org.jboss.ejb.GlobalTxEntityMap.synchronizeEntities(GlobalTxEntityMap.java:149) | at org.jboss.ejb.GlobalTxEntityMap$GlobalTxEntityMapSynchronize.beforeCompletion(GlobalTxEntityMap.java:215) | at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1308) | at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:347) | ... 67 more | Interestingly, if I run exactly the same test with one node of the two node cluster shut down, everything works fine. Any ideas? Jon View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3837311#3837311 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3837311 ------------------------------------------------------- This SF.Net email is sponsored by the new InstallShield X. >From Windows to Linux, servers to mobile, InstallShield X is the one installation-authoring solution that does it all. Learn more and evaluate today! http://www.installshield.com/Dev2Dev/0504 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
