Sub-transactions in BMP throws Exception
swatkat Dec 20, 2001 5:08 AMHi,
I am developing My application using BMP one of my Session bean method has around 5-6 bean (Entity and Session ) calls which form a long transaction with many sub-transactions in it.
the code was working ok on earlier version of jboss that is JBoss 2.2.2 But now it fails with following exception
2001-12-20 15:31:43,562 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException, causedBy:
javax.ejb.EJBException: Storing row for paymentId: e0010716~1008842503524 failed.
at FIN.DataManagement.PaymentsDMBean.storePayment(PaymentsDMBean.java:175)
at FIN.DataManagement.PaymentsDMBean.ejbStore(PaymentsDMBean.java:143)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.plugins.BMPPersistenceManager.storeEntity(BMPPersistenceManager.java:449)
at org.jboss.ejb.EntityContainer.storeEntity(EntityContainer.java:630)
at org.jboss.ejb.EntityContainer.synchronizeEntitiesWithinTransaction(EntityContainer.java:143)
at org.jboss.ejb.EntityContainer.find(EntityContainer.java:581)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:896)
at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:221)
at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:131)
at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:80)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:98)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:55)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:102)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:109)
at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:422)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:460)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome(HomeProxy.java:236)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:181)
at $Proxy146.findByPrimaryKey(Unknown Source)
at FIN.ProblemDomain.AccountBean.getAccountName(AccountBean.java:747)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy104.getAccountName(Unknown Source)
at FIN.ProblemDomain.PaymentsBean.addPayment(PaymentsBean.java:151)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy90.addPayment(Unknown Source)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.invokeAddQuickInvoice(AddInvoiceToCustomerUIServlet.java:1920)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doGet(AddInvoiceToCustomerUIServlet.java:102)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doPost(AddInvoiceToCustomerUIServlet.java:136)
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:289)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:541)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1145)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1099)
at org.mortbay.http.HttpServer.service(HttpServer.java:725)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:138)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
at java.lang.Thread.run(Thread.java:484)
2001-12-20 15:31:43,574 DEBUG [org.jboss.tm.TxCapsule] setRollbackOnly(): Entered, tx=XidImpl [FormatId=257, GlobalId=mirage.rspl//312, BranchQual=] status=STATUS_MARKED_ROLLBACK
2001-12-20 15:31:43,575 DEBUG [org.jboss.tm.TxManager] suspended tx: TransactionImpl:XidImpl [FormatId=257, GlobalId=mirage.rspl//312, BranchQual=]
2001-12-20 15:31:43,575 DEBUG [org.jboss.tm.TxManager] resumed tx: TransactionImpl:XidImpl [FormatId=257, GlobalId=mirage.rspl//312, BranchQual=]
2001-12-20 15:31:43,575 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackException, causedBy:
javax.transaction.TransactionRolledbackException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.
at org.jboss.ejb.EntityContainer.synchronizeEntitiesWithinTransaction(EntityContainer.java:149)
at org.jboss.ejb.EntityContainer.find(EntityContainer.java:581)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:896)
at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:221)
at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:131)
at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:80)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:98)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:55)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:102)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:109)
at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:422)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:460)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome(HomeProxy.java:236)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:181)
at $Proxy146.findByPrimaryKey(Unknown Source)
at FIN.ProblemDomain.AccountBean.getAccountName(AccountBean.java:747)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy104.getAccountName(Unknown Source)
at FIN.ProblemDomain.PaymentsBean.addPayment(PaymentsBean.java:151)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy90.addPayment(Unknown Source)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.invokeAddQuickInvoice(AddInvoiceToCustomerUIServlet.java:1920)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doGet(AddInvoiceToCustomerUIServlet.java:102)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doPost(AddInvoiceToCustomerUIServlet.java:136)
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:289)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:541)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1145)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1099)
at org.mortbay.http.HttpServer.service(HttpServer.java:725)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:138)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
at java.lang.Thread.run(Thread.java:484)
javax.ejb.EJBException: Storing row for paymentId: e0010716~1008842503524 failed.
at FIN.DataManagement.PaymentsDMBean.storePayment(PaymentsDMBean.java:175)
at FIN.DataManagement.PaymentsDMBean.ejbStore(PaymentsDMBean.java:143)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.plugins.BMPPersistenceManager.storeEntity(BMPPersistenceManager.java:449)
at org.jboss.ejb.EntityContainer.storeEntity(EntityContainer.java:630)
at org.jboss.ejb.EntityContainer.synchronizeEntitiesWithinTransaction(EntityContainer.java:143)
at org.jboss.ejb.EntityContainer.find(EntityContainer.java:581)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:896)
at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:221)
at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:131)
at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:80)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:98)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:55)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:102)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:109)
at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:422)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:460)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invokeHome(HomeProxy.java:236)
at org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:181)
at $Proxy146.findByPrimaryKey(Unknown Source)
at FIN.ProblemDomain.AccountBean.getAccountName(AccountBean.java:747)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy104.getAccountName(Unknown Source)
at FIN.ProblemDomain.PaymentsBean.addPayment(PaymentsBean.java:151)
at java.lang.reflect.Method.invoke(Native Method)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:568)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:67)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:155)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:64)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166)
at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:279)
at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerInvoker.java:506)
at org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericProxy.java:345)
at org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(StatelessSessionProxy.java:122)
at $Proxy90.addPayment(Unknown Source)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.invokeAddQuickInvoice(AddInvoiceToCustomerUIServlet.java:1920)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doGet(AddInvoiceToCustomerUIServlet.java:102)
at FIN.UserInterface.AddInvoiceToCustomerUIServlet.doPost(AddInvoiceToCustomerUIServlet.java:136)
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:289)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:541)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1145)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1099)
at org.mortbay.http.HttpServer.service(HttpServer.java:725)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:745)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:918)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:760)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:138)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:287)
at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:715)
at java.lang.Thread.run(Thread.java:484)
2001-12-20 15:31:43,596 DEBUG [org.jboss.tm.TxCapsule] setRollbackOnly(): Entered, tx=XidImpl [FormatId=257, GlobalId=mirage.rspl//312, BranchQual=] status=STATUS_MARKED_ROLLBACK
2001-12-20 15:31:43,597 DEBUG [org.jboss.tm.TxCapsule] rollback(): Entered, tx=XidImpl [FormatId=257, GlobalId=mirage.rspl//312, BranchQual=] status=STATUS_MARKED_ROLLBACK
2001-12-20 15:31:43,601 INFO [Default] Error while Adding invoicejava.rmi.ServerException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.transaction.TransactionRolledbackException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.transaction.TransactionRolledbackException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.transaction.TransactionRolledbackException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.; nested exception is:
javax.ejb.EJBException: null
Embedded Exception
Storing row for paymentId: e0010716~1008842503524 failed.
Strangly it works on previous versions. can any one help ?
the postgres-service.xml database configuration looks like this :
ConnectionURL=jdbc:postgresql://192.9.200.23:5432/e0010716 DriverClass=org.postgresql.Driver UserName=postgres Password=postgres
e0010716
java:/TransactionManager
<mbean-ref name="ResourceAdapterName">JCA:service=RARDeployment,name=Minerva JDBC LocalTransaction ResourceAdapter</mbean-ref>
<mbean-ref name="ConnectionManagerFactoryLoaderName">JCA:service=ConnectionManagerFactoryLoader,name=MinervaSharedLocalCMFactory</mbean-ref>
# #Wed Aug 15 16:17:29 EDT 2001
BlockingTimeoutMillis=50000 IdleTimeoutMinutes=3 MaxSize=10000 CleanupIntervalMinutes=2 MinSize=10
MaxIdleTimeoutPercent=1.0
org.jboss.resource.security.ManyToOnePrincipalMapping
UserName=postgres