I'm getting a javax.transaction.NotSupportedException: Subtransactions not supported exception when invoking UsertTransaction.begin ().
I have a Java web service deployed on WAS 8. I have an operation that updates a table in Oracle then sends a message via MQ. My transaction boundary (begin/commit) is defined around the operations update and send. The operation will work fine a few times (same request payload) then eventually I get the exception above.
I use Spring 3 to do a JNDI lookup for a WAS UserTransaction, a WAS config'd ConnectionFactory and my one and only datasource which is XA enabled.
<jee:jndi-lookup id="DatasourceXA" jndi-name="${jdbc.datasource.xa.oracle.jndi.name}" proxy-interface="javax.sql.DataSource" />
<jee:jndi-lookup id="UserTransaction" jndi-name="java:comp/UserTransaction" proxy-interface="javax.transaction.UserTransaction" />
<jee:jndi-lookup id="ConnectionFactory" jndi-name="${jms.connectionfactory.jndi.name}" proxy-interface="javax.jms.ConnectionFactory"/>
The UserTransaction is @Autowired into my app doing the begin, commit, and rollback. The datasource is @Autowired into a DAO factory. The injected datasource is then passed to the DAO on creation. The ConnectionFactory is injected along with the queue name to a bean that handles all the MQ stuff. Here's how I'm sending a message:
Connection conn = connectionFactory.createConnection();
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(queueName);
MessageProducer prod = session.createProducer(destination);
msg = session.createTextMessage(xml);
prod.send(msg);
I'm not calling commit, setCommit, or rollback on the datasource connection anywhere. Would anyone know what's causing these "Subtransactions" or why I would be getting that exception?
UPDATE:
[10/10/16 10:06:07:557 PDT] 00000087 SystemErr R javax.transaction.NotSupportedException: Subtransactions not supported
[10/10/16 10:06:07:558 PDT] 00000087 SystemErr R at com.ibm.ws.tx.jta.UserTransactionImpl.begin(UserTransactionImpl.java:163)
[10/10/16 10:06:07:559 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:559 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:559 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:559 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:559 PDT] 00000087 SystemErr R at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
[10/10/16 10:06:07:560 PDT] 00000087 SystemErr R at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
[10/10/16 10:06:07:560 PDT] 00000087 SystemErr R at com.sun.proxy.$Proxy56.begin(Unknown Source)
[10/10/16 10:06:07:560 PDT] 00000087 SystemErr R at com.costco.sc.creditrebatepayment.CreditRebatePaymentComponentImpl.authorize(CreditRebatePaymentComponentImpl.java:86)
[10/10/16 10:06:07:560 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:561 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:561 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:561 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:561 PDT] 00000087 SystemErr R at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
[10/10/16 10:06:07:561 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
[10/10/16 10:06:07:562 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
[10/10/16 10:06:07:562 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
[10/10/16 10:06:07:562 PDT] 00000087 SystemErr R at com.costco.sc.aop.intercepter.RetryIntercepter.aspectJInvoke(RetryIntercepter.java:117)
[10/10/16 10:06:07:562 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:563 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:563 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:563 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:563 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
[10/10/16 10:06:07:563 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
[10/10/16 10:06:07:564 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
[10/10/16 10:06:07:564 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
[10/10/16 10:06:07:564 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
[10/10/16 10:06:07:564 PDT] 00000087 SystemErr R at com.costco.sc.aop.intercepter.ExceptionTranslatingIntercepter.aspectJInvoke(ExceptionTranslatingIntercepter.java:192)
[10/10/16 10:06:07:564 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:565 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:565 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:565 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:565 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
[10/10/16 10:06:07:565 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
[10/10/16 10:06:07:566 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
[10/10/16 10:06:07:566 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
[10/10/16 10:06:07:566 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
[10/10/16 10:06:07:566 PDT] 00000087 SystemErr R at com.costco.sc.aop.intercepter.ServiceOperationContextIntercepter.aspectJInvoke(ServiceOperationContextIntercepter.java:148)
[10/10/16 10:06:07:567 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:567 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:567 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:567 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:567 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
[10/10/16 10:06:07:568 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
[10/10/16 10:06:07:568 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
[10/10/16 10:06:07:568 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
[10/10/16 10:06:07:568 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
[10/10/16 10:06:07:568 PDT] 00000087 SystemErr R at com.costco.sc.aop.intercepter.OperationLoggingIntercepter.aspectJInvoke(OperationLoggingIntercepter.java:234)
[10/10/16 10:06:07:569 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:569 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:569 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:569 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:570 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
[10/10/16 10:06:07:570 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
[10/10/16 10:06:07:570 PDT] 00000087 SystemErr R at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
[10/10/16 10:06:07:570 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
[10/10/16 10:06:07:570 PDT] 00000087 SystemErr R at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
[10/10/16 10:06:07:571 PDT] 00000087 SystemErr R at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
[10/10/16 10:06:07:571 PDT] 00000087 SystemErr R at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
[10/10/16 10:06:07:571 PDT] 00000087 SystemErr R at com.sun.proxy.$Proxy67.authorize(Unknown Source)
[10/10/16 10:06:07:571 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:572 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:572 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:572 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:572 PDT] 00000087 SystemErr R at com.costco.util.spring.LazyInitProxy$LazyInitInvocationHandler.invoke(LazyInitProxy.java:440)
[10/10/16 10:06:07:573 PDT] 00000087 SystemErr R at com.sun.proxy.$Proxy68.authorize(Unknown Source)
[10/10/16 10:06:07:573 PDT] 00000087 SystemErr R at com.costco.sc.creditrebatepayment.endpoint.ws.JaxWsCreditRebatePaymentEndpoint.authorize(JaxWsCreditRebatePaymentEndpoint.java:53)
[10/10/16 10:06:07:573 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[10/10/16 10:06:07:573 PDT] 00000087 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
[10/10/16 10:06:07:573 PDT] 00000087 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
[10/10/16 10:06:07:574 PDT] 00000087 SystemErr R at java.lang.reflect.Method.invoke(Method.java:613)
[10/10/16 10:06:07:574 PDT] 00000087 SystemErr R at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:120)
[10/10/16 10:06:07:574 PDT] 00000087 SystemErr R at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:118)
[10/10/16 10:06:07:575 PDT] 00000087 SystemErr R at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111)
[10/10/16 10:06:07:575 PDT] 00000087 SystemErr R at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161)
[10/10/16 10:06:07:575 PDT] 00000087 SystemErr R at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:212)
[10/10/16 10:06:07:575 PDT] 00000087 SystemErr R at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
[10/10/16 10:06:07:575 PDT] 00000087 SystemErr R at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1632)
[10/10/16 10:06:07:576 PDT] 00000087 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
[10/10/16 10:06:07:576 PDT] 00000087 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
[10/10/16 10:06:07:576 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)
[10/10/16 10:06:07:576 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781)
[10/10/16 10:06:07:577 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)
[10/10/16 10:06:07:577 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
[10/10/16 10:06:07:577 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
[10/10/16 10:06:07:577 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
[10/10/16 10:06:07:577 PDT] 00000087 SystemErr R at com.costco.sc.ServiceContextFilter.doFilter(ServiceContextFilter.java:102)
[10/10/16 10:06:07:578 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
[10/10/16 10:06:07:578 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
[10/10/16 10:06:07:578 PDT] 00000087 SystemErr R at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
[10/10/16 10:06:07:578 PDT] 00000087 SystemErr R at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
[10/10/16 10:06:07:579 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
[10/10/16 10:06:07:579 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
[10/10/16 10:06:07:579 PDT] 00000087 SystemErr R at com.costco.sc.util.OutputFilter.doFilter(OutputFilter.java:42)
[10/10/16 10:06:07:579 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
[10/10/16 10:06:07:579 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
[10/10/16 10:06:07:580 PDT] 00000087 SystemErr R at com.costco.sc.util.javamelody.SystemActionsFilter.doFilter(SystemActionsFilter.java:58)
[10/10/16 10:06:07:580 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
[10/10/16 10:06:07:580 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
[10/10/16 10:06:07:580 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
[10/10/16 10:06:07:580 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
[10/10/16 10:06:07:581 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3928)
[10/10/16 10:06:07:581 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
[10/10/16 10:06:07:581 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1007)
[10/10/16 10:06:07:581 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
[10/10/16 10:06:07:581 PDT] 00000087 SystemErr R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
[10/10/16 10:06:07:582 PDT] 00000087 SystemErr R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
[10/10/16 10:06:07:583 PDT] 00000087 SystemErr R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
[10/10/16 10:06:07:583 PDT] 00000087 SystemErr R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
[10/10/16 10:06:07:583 PDT] 00000087 SystemErr R at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
[10/10/16 10:06:07:583 PDT] 00000087 SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)