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.
>

Reply via email to