|
[Springframework-developer] UnexpectedRollbackException with nested TransactionInterceptor from
SLSB
From: Dave B. <dba...@on...> - 2005-07-15 16:12:57
|
Hi Juergen,
I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed
"service" beans, both using JtaTransactionManager, with
"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say
I've got:
* ServiceA.methodA()
* ServiceB.methodB()
In my scenario, methodA() throws an Exception. In the cases where Spring
starts the transaction, no problem. The caller receives the exception:
* caller->serviceA.methodA() - Exception received as expected
* caller->serviceB.methodB()->serviceA.methodA() - Exception received as
expected
When an EJB SLSB starts the transaction, the following scenario works as
expected:
* caller->SLSB->serviceA.methodA() - Exception received as expected
However, when the Spring-managed bean calls are nested, I receive an
UnexpectedRollbackException:
* caller->SLSB->serviceB.methodB()->serviceA.methodA() -
UnexpectedRollbackException received
Regards,
Dave
---
ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user]
(TransactionAspectSupport.java:279) - Application exception overridden
by rollback exception
myapp.exceptions.common.SystemException: foo
at
myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.java:298)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelServiceImpl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCancel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_ELOImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user]
(MoneyTransactionSessionEJB.java:3031) - Cancel not processed
org.springframework.transaction.UnexpectedRollbackException: JTA
transaction unexpectedly rolled back (maybe due to a timeout); nested
exception is weblogic.transaction.RollbackException: Unknown reas
on
weblogic.transaction.internal.AppSetRollbackOnlyException
at
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:486)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:281)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:275)
at
org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly(JtaTransactionManager.java:768)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:533)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelServiceImpl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCancel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_ELOImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Unknown reason - with nested
exception:
[weblogic.transaction.internal.AppSetRollbackOnlyException]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1526)
at
weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization(ServerTransactionImpl.java:450)
at
org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCompletionWithJtaTransaction(JtaTransactionManager.java:818)
at
org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompletionWithExistingTransaction(JtaTransactionManager.java:782)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransactionManager.java:635)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:547)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCancel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_ELOImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbInvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
|
|
From: Juergen H. <ju...@in...> - 2005-07-16 19:20:54
|
Hi Dave,
Thanks for pointing that out! This is indeed a case that can be handled more
appropriately in JtaTransactionManager.
JTA's registerSynchronization will throw a RollbackException if the existing
JTA transaction is already marked as rollback-only. This means that we
cannot register Spring transaction synchronizations there: Hence, I've
changed JtaTransactionManager to immediately trigger the synchronizations
with outcome status 'rollback' in that case, which should be appropriate.
I'll commit this tonight; it will be released in Spring 1.2.3. Please give
tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a try and
let me know whether it works for you!
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Dave Ballard
Sent: Friday, July 15, 2005 6:13 PM
To: spr...@li...
Subject: [Springframework-developer] UnexpectedRollbackException with nested
TransactionInterceptor from SLSB
Hi Juergen,
I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed
"service" beans, both using JtaTransactionManager, with
"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say I've
got:
* ServiceA.methodA()
* ServiceB.methodB()
In my scenario, methodA() throws an Exception. In the cases where Spring
starts the transaction, no problem. The caller receives the exception:
* caller->serviceA.methodA() - Exception received as expected
* caller->serviceB.methodB()->serviceA.methodA() - Exception received as
expected
When an EJB SLSB starts the transaction, the following scenario works as
expected:
* caller->SLSB->serviceA.methodA() - Exception received as expected
However, when the Spring-managed bean calls are nested, I receive an
UnexpectedRollbackException:
* caller->SLSB->serviceB.methodB()->serviceA.methodA() -
UnexpectedRollbackException received
Regards,
Dave
---
ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user]
(TransactionAspectSupport.java:279) - Application exception overridden by
rollback exception
myapp.exceptions.common.SystemException: foo
at
myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.ja
va:298)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user]
(MoneyTransactionSessionEJB.java:3031) - Cancel not processed
org.springframework.transaction.UnexpectedRollbackException: JTA transaction
unexpectedly rolled back (maybe due to a timeout); nested exception is
weblogic.transaction.RollbackException: Unknown reas on
weblogic.transaction.internal.AppSetRollbackOnlyException
at
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
l.java:486)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:281)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:275)
at
org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly(
JtaTransactionManager.java:768)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:533)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Unknown reason - with nested
exception:
[weblogic.transaction.internal.AppSetRollbackOnlyException]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac
tionImpl.java:1526)
at
weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization(
ServerTransactionImpl.java:450)
at
org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCom
pletionWithJtaTransaction(JtaTransactionManager.java:818)
at
org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompl
etionWithExistingTransaction(JtaTransactionManager.java:782)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.t
riggerAfterCompletion(AbstractPlatformTransactionManager.java:635)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:547)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from
IBM. Find simple to follow Roadmaps, straightforward articles, informative
Webcasts and more! Get everything you need to get up to speed, fast.
http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Juergen H. <ju...@in...> - 2005-07-19 13:13:58
|
Any news on that front, Dave? Have you had a chance to try a recent nightly
snapshot?
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Juergen Hoeller
Sent: Saturday, July 16, 2005 9:21 PM
To: spr...@li...
Subject: Re: [Springframework-developer] UnexpectedRollbackException with
nested TransactionInterceptor from SLSB
Hi Dave,
Thanks for pointing that out! This is indeed a case that can be handled more
appropriately in JtaTransactionManager.
JTA's registerSynchronization will throw a RollbackException if the existing
JTA transaction is already marked as rollback-only. This means that we
cannot register Spring transaction synchronizations there: Hence, I've
changed JtaTransactionManager to immediately trigger the synchronizations
with outcome status 'rollback' in that case, which should be appropriate.
I'll commit this tonight; it will be released in Spring 1.2.3. Please give
tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a try and
let me know whether it works for you!
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Dave Ballard
Sent: Friday, July 15, 2005 6:13 PM
To: spr...@li...
Subject: [Springframework-developer] UnexpectedRollbackException with nested
TransactionInterceptor from SLSB
Hi Juergen,
I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed
"service" beans, both using JtaTransactionManager, with
"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say I've
got:
* ServiceA.methodA()
* ServiceB.methodB()
In my scenario, methodA() throws an Exception. In the cases where Spring
starts the transaction, no problem. The caller receives the exception:
* caller->serviceA.methodA() - Exception received as expected
* caller->serviceB.methodB()->serviceA.methodA() - Exception received as
expected
When an EJB SLSB starts the transaction, the following scenario works as
expected:
* caller->SLSB->serviceA.methodA() - Exception received as expected
However, when the Spring-managed bean calls are nested, I receive an
UnexpectedRollbackException:
* caller->SLSB->serviceB.methodB()->serviceA.methodA() -
UnexpectedRollbackException received
Regards,
Dave
---
ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user]
(TransactionAspectSupport.java:279) - Application exception overridden by
rollback exception
myapp.exceptions.common.SystemException: foo
at
myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.ja
va:298)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user]
(MoneyTransactionSessionEJB.java:3031) - Cancel not processed
org.springframework.transaction.UnexpectedRollbackException: JTA transaction
unexpectedly rolled back (maybe due to a timeout); nested exception is
weblogic.transaction.RollbackException: Unknown reas on
weblogic.transaction.internal.AppSetRollbackOnlyException
at
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
l.java:486)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:281)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:275)
at
org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly(
JtaTransactionManager.java:768)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:533)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Unknown reason - with nested
exception:
[weblogic.transaction.internal.AppSetRollbackOnlyException]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac
tionImpl.java:1526)
at
weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization(
ServerTransactionImpl.java:450)
at
org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCom
pletionWithJtaTransaction(JtaTransactionManager.java:818)
at
org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompl
etionWithExistingTransaction(JtaTransactionManager.java:782)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.t
riggerAfterCompletion(AbstractPlatformTransactionManager.java:635)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:547)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from
IBM. Find simple to follow Roadmaps, straightforward articles, informative
Webcasts and more! Get everything you need to get up to speed, fast.
http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from
IBM. Find simple to follow Roadmaps, straightforward articles, informative
Webcasts and more! Get everything you need to get up to speed, fast.
http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Dave B. <dba...@on...> - 2005-07-19 21:08:38
|
HI Juergen, Tested using spring-framework-1.2.3-with-dependencies-build.310-20050719. Looks like it corrects the problem. Thanks, Dave Juergen Hoeller wrote: >Any news on that front, Dave? Have you had a chance to try a recent nightly >snapshot? > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On Behalf Of >Juergen Hoeller >Sent: Saturday, July 16, 2005 9:21 PM >To: spr...@li... >Subject: Re: [Springframework-developer] UnexpectedRollbackException with >nested TransactionInterceptor from SLSB > >Hi Dave, > >Thanks for pointing that out! This is indeed a case that can be handled more >appropriately in JtaTransactionManager. > >JTA's registerSynchronization will throw a RollbackException if the existing >JTA transaction is already marked as rollback-only. This means that we >cannot register Spring transaction synchronizations there: Hence, I've >changed JtaTransactionManager to immediately trigger the synchronizations >with outcome status 'rollback' in that case, which should be appropriate. > >I'll commit this tonight; it will be released in Spring 1.2.3. Please give >tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a try and >let me know whether it works for you! > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On Behalf Of >Dave Ballard >Sent: Friday, July 15, 2005 6:13 PM >To: spr...@li... >Subject: [Springframework-developer] UnexpectedRollbackException with nested >TransactionInterceptor from SLSB > >Hi Juergen, > >I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed >"service" beans, both using JtaTransactionManager, with >"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say I've >got: > >* ServiceA.methodA() >* ServiceB.methodB() > >In my scenario, methodA() throws an Exception. In the cases where Spring >starts the transaction, no problem. The caller receives the exception: > >* caller->serviceA.methodA() - Exception received as expected >* caller->serviceB.methodB()->serviceA.methodA() - Exception received as >expected > >When an EJB SLSB starts the transaction, the following scenario works as >expected: > >* caller->SLSB->serviceA.methodA() - Exception received as expected > >However, when the Spring-managed bean calls are nested, I receive an >UnexpectedRollbackException: > >* caller->SLSB->serviceB.methodB()->serviceA.methodA() - >UnexpectedRollbackException received > >Regards, >Dave > >--- > >ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user] >(TransactionAspectSupport.java:279) - Application exception overridden by >rollback exception >myapp.exceptions.common.SystemException: foo > at >myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.ja >va:298) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user] >(MoneyTransactionSessionEJB.java:3031) - Cancel not processed >org.springframework.transaction.UnexpectedRollbackException: JTA transaction >unexpectedly rolled back (maybe due to a timeout); nested exception is >weblogic.transaction.RollbackException: Unknown reas on >weblogic.transaction.internal.AppSetRollbackOnlyException > at >weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp >l.java:486) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac >tionManagerImpl.java:281) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac >tionManagerImpl.java:275) > at >org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly( >JtaTransactionManager.java:768) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.p >rocessRollback(AbstractPlatformTransactionManager.java:533) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.doClose >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >--------------- nested within: ------------------ >weblogic.transaction.RollbackException: Unknown reason - with nested >exception: >[weblogic.transaction.internal.AppSetRollbackOnlyException] > at >weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac >tionImpl.java:1526) > at >weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization( >ServerTransactionImpl.java:450) > at >org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCom >pletionWithJtaTransaction(JtaTransactionManager.java:818) > at >org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompl >etionWithExistingTransaction(JtaTransactionManager.java:782) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.t >riggerAfterCompletion(AbstractPlatformTransactionManager.java:635) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.p >rocessRollback(AbstractPlatformTransactionManager.java:547) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.doClose >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from >IBM. Find simple to follow Roadmaps, straightforward articles, informative >Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from >IBM. Find simple to follow Roadmaps, straightforward articles, informative >Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > |
|
From: Juergen H. <ju...@in...> - 2005-07-20 07:24:38
|
Thanks, Dave - that's good to know :-) Juergen -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Dave Ballard Sent: Tuesday, July 19, 2005 11:09 PM To: spr...@li... Subject: Re: [Springframework-developer] UnexpectedRollbackException with nested TransactionInterceptor from SLSB HI Juergen, Tested using spring-framework-1.2.3-with-dependencies-build.310-20050719. Looks like it corrects the problem. Thanks, Dave Juergen Hoeller wrote: >Any news on that front, Dave? Have you had a chance to try a recent >nightly snapshot? > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On >Behalf Of Juergen Hoeller >Sent: Saturday, July 16, 2005 9:21 PM >To: spr...@li... >Subject: Re: [Springframework-developer] UnexpectedRollbackException >with nested TransactionInterceptor from SLSB > >Hi Dave, > >Thanks for pointing that out! This is indeed a case that can be handled >more appropriately in JtaTransactionManager. > >JTA's registerSynchronization will throw a RollbackException if the >existing JTA transaction is already marked as rollback-only. This means >that we cannot register Spring transaction synchronizations there: >Hence, I've changed JtaTransactionManager to immediately trigger the >synchronizations with outcome status 'rollback' in that case, which should be appropriate. > >I'll commit this tonight; it will be released in Spring 1.2.3. Please >give tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a >try and let me know whether it works for you! > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On >Behalf Of Dave Ballard >Sent: Friday, July 15, 2005 6:13 PM >To: spr...@li... >Subject: [Springframework-developer] UnexpectedRollbackException with >nested TransactionInterceptor from SLSB > >Hi Juergen, > >I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed >"service" beans, both using JtaTransactionManager, with >"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say >I've >got: > >* ServiceA.methodA() >* ServiceB.methodB() > >In my scenario, methodA() throws an Exception. In the cases where >Spring starts the transaction, no problem. The caller receives the exception: > >* caller->serviceA.methodA() - Exception received as expected >* caller->serviceB.methodB()->serviceA.methodA() - Exception received >as expected > >When an EJB SLSB starts the transaction, the following scenario works >as >expected: > >* caller->SLSB->serviceA.methodA() - Exception received as expected > >However, when the Spring-managed bean calls are nested, I receive an >UnexpectedRollbackException: > >* caller->SLSB->serviceB.methodB()->serviceA.methodA() - >UnexpectedRollbackException received > >Regards, >Dave > >--- > >ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user] >(TransactionAspectSupport.java:279) - Application exception overridden >by rollback exception >myapp.exceptions.common.SystemException: foo > at >myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceIm >pl.ja >va:298) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelSe >rvice >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user] >(MoneyTransactionSessionEJB.java:3031) - Cancel not processed >org.springframework.transaction.UnexpectedRollbackException: JTA >transaction unexpectedly rolled back (maybe due to a timeout); nested >exception is >weblogic.transaction.RollbackException: Unknown reas on >weblogic.transaction.internal.AppSetRollbackOnlyException > at >weblogic.transaction.internal.TransactionImpl.setRollbackOnly(Transacti >onImp >l.java:486) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Tr >ansac >tionManagerImpl.java:281) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Tr >ansac >tionManagerImpl.java:275) > at >org.springframework.transaction.jta.JtaTransactionManager.doSetRollback >Only( >JtaTransactionManager.java:768) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.p >rocessRollback(AbstractPlatformTransactionManager.java:533) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.do >Close >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelSe >rvice >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >--------------- nested within: ------------------ >weblogic.transaction.RollbackException: Unknown reason - with nested >exception: >[weblogic.transaction.internal.AppSetRollbackOnlyException] > at >weblogic.transaction.internal.TransactionImpl.throwRollbackException(Tr >ansac >tionImpl.java:1526) > at >weblogic.transaction.internal.ServerTransactionImpl.registerSynchroniza >tion( >ServerTransactionImpl.java:450) > at >org.springframework.transaction.jta.JtaTransactionManager.doRegisterAft >erCom >pletionWithJtaTransaction(JtaTransactionManager.java:818) > at >org.springframework.transaction.jta.JtaTransactionManager.registerAfter >Compl >etionWithExistingTransaction(JtaTransactionManager.java:782) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.t >riggerAfterCompletion(AbstractPlatformTransactionManager.java:635) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.p >rocessRollback(AbstractPlatformTransactionManager.java:547) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.do >Close >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |