Hi What resources are involved? They need to be XA but tx are not propagated, they get synchronized/acknowledged. Le 11 août 2015 00:25, "jmmoon" <[email protected]> a écrit :
> Hi, I am testing remote server Transaction Context Propagation. > > My application is like that and Tomee server version is 1.7.1 > > call > Server A (EJB 1) ========> Server B (EJB 2) > | | > | | > | | > DB 1 DB 2 > > EJB 1 is CMT and > @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) > EJB 2 is CMT and @TransactionAttribute(TransactionAttributeType.MANDATORY) > > I want to execute EJB 1 which works with DB1, then calls EJB 2 which works > with DB2 > in a single global transaction. > > when EJB 1 calls EJB 2 in remote server, It throws > TransactionRequiredLocalException Exception. > Isn't it possible to propagate transaction context to remote server? > I just found many questions like me, but the answer was not clear. > > I appreciate if I have the exact answer and if possible, how can I make a > success? > thank you. > > FYI, Exceptin stack trace is like that > javax.ejb.TransactionRequiredLocalException > at > > org.apache.openejb.client.EJBInvocationHandler.convertException(EJBInvocationHandler.java:236) > at > > org.apache.openejb.client.EJBObjectHandler._invoke(EJBObjectHandler.java:214) > at > > org.apache.openejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:136) > at > > org.apache.openejb.client.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49) > at com.sun.proxy.$Proxy73.insertData(Unknown Source) > at > > test.DataSourceTestSessionBeanCmt.insertRemoteEjbData(DataSourceTestSessionBeanCmt.java:143) > at > > test.DataSourceTestSessionBeanCmt.insertData(DataSourceTestSessionBeanCmt.java:112) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173) > at > > org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181) > at > > org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192) > at > > org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173) > at > > org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194) > at > > org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:308) > at > > org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:303) > at > > org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92) > at > > org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:308) > at > > test.DataSourceTestSessionBeanCmt$$LocalBeanProxy.insertData(test/DataSourceTestSessionBeanCmt.java) > at test.EjbCallServlet.doGet(EjbCallServlet.java:35) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) > at > argo.enterprise.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at > > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Thread.java:662) > Caused by: javax.transaction.TransactionRequiredException > at > org.apache.openejb.core.transaction.TxMandatory.<init>(TxMandatory.java:50) > at > > org.apache.openejb.core.transaction.JtaTransactionPolicyFactory.createTransactionPolicy(JtaTransactionPolicyFactory.java:46) > at > > org.apache.openejb.core.transaction.EjbTransactionUtil.createTransactionPolicy(EjbTransactionUtil.java:58) > at > > org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:216) > at > > org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:370) > at > > org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:181) > at > > org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:344) > at > org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:240) > at > org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:86) > at > > org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:58) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) > at > argo.enterprise.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) > ... 4 more > > > > > -- > View this message in context: > http://tomee-openejb.979440.n4.nabble.com/Remote-server-Transaction-Context-Propagation-tp4675825.html > Sent from the TomEE Users mailing list archive at Nabble.com. >
