We have unit tests demonstrating the use of transactions over JCA or SEDA
flow using the EIP routing slip.  Does this problem always happen, or only
when under load?

On 8/7/07, uniker80 <[EMAIL PROTECTED]> wrote:
>
> i'm trying to test SM transaction, and i deployed services using http and EIP
> as below.
>
> http(InOut) <---> EIP (RountSlip (bean1->bean2->bean3->bean4->bean5) )
>
> i've configured the JBI Container to use JCA Flow  (persistent and
> autoEnlistInTransaction set to true)
>
> but there is exceptions
> ------------------------------
> exchange received at Bean1
> sending exchange to Bean2
> exchange received at Bean2
> sending exchange to Bean3
> ERROR - EIPComponent                   - Error processing exchange InOut[
>   id: ID:CJHCOM-3504-1186463609203-3:17
>   status: Active
>   role: consumer
>   service: {http://setest.ssu.ac.kr}eip-bean-routingslip-inout-bean-service2
>   endpoint: eip-bean-routingslip-inout-bean-endpoint2
>   in: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
>   out: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
> ]
> javax.jbi.messaging.MessagingException: java.lang.IllegalStateException: the
> transaction context set in the messageExchange is not bound to the current
> thread
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.autoEnlistInTxDeliveryChannelImpl.java:771)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSendDeliveryChannelImpl.java:349)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendDeliveryChannelImpl.java:417)
>         at
> org.apache.servicemix.common.EndpointDeliveryChannel.sendEndpointDeliveryChannel.java:79)
>         at
> org.apache.servicemix.common.endpoints.SimpleEndpoint.send(SimpleEndpoint.java:67)
>         at
> org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:78)
>         at
> org.apache.servicemix.eip.patterns.StaticRoutingSlip.processAsync(StaticRoutingSlip.java:228)
>         at
> org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcessAsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeAsyncBaseLifeCycle.java:463)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.onMessage(JCAFlow.java:515)
>         at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:129)
>         at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:121)
>         at
> org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:61)
>         at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:695)
>         at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.IllegalStateException: the transaction context set in
> the messageExchange is not bound to the curre
> nt thread
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.autoEnlistInTx(DeliveryChannelImpl.java:764)
>         ... 21 more
> exchange received at Bean3
> sending exchange to Bean4
> ERROR - EIPComponent                   - Error processing exchange InOut[
>   id: ID:CJHCOM-3504-1186463609203-3:18
>   status: Active
>   role: consumer
>   service: {http://setest.ssu.ac.kr}eip-bean-routingslip-inout-bean-service3
>   endpoint: eip-bean-routingslip-inout-bean-endpoint3
>   in: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
>   out: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
> ]
> java.lang.IllegalStateException: component is not owner
>         at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setStatus(MessageExchangeImpl.java:210)
>         at
> org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:77)
>         at
> org.apache.servicemix.eip.patterns.StaticRoutingSlip.processAsync(StaticRoutingSlip.java:228)
>         at
> org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.onMessage(JCAFlow.java:515)
>         at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:129)
>         at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:121)
>         at
> org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:61)
>         at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:695)
>         at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:619)
> exchange received at Bean4
> sending exchange to Bean5
> ERROR - EIPComponent                   - Error processing exchange InOut[
>   id: ID:CJHCOM-3504-1186463609203-3:19
>   status: Active
>   role: consumer
>   service: {http://setest.ssu.ac.kr}eip-bean-routingslip-inout-bean-service4
>   endpoint: eip-bean-routingslip-inout-bean-endpoint4
>   in: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
>   out: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
> ]
> java.lang.IllegalStateException: component is not owner
>         at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setStatus(MessageExchangeImpl.java:210)
>         at
> org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:77)
>         at
> org.apache.servicemix.eip.patterns.StaticRoutingSlip.processAsync(StaticRoutingSlip.java:228)
>         at
> org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.onMessage(JCAFlow.java:515)
>         at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:129)
>         at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:121)
>         at
> org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:61)
>         at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:695)
>         at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:619)
> exchange received at Bean5
> sending exchange back to Consumer
> ERROR - EIPComponent                   - Error processing exchange InOut[
>   id: ID:CJHCOM-3504-1186463609203-3:20
>   status: Active
>   role: consumer
>   service: {http://setest.ssu.ac.kr}eip-bean-routingslip-inout-bean-service5
>   endpoint: eip-bean-routingslip-inout-bean-endpoint5
>   in: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
>   out: <?xml version="1.0" encoding="UTF-8"?><ping
> xmlns:e="http://schemas.xmlsoap.org/soap/envelope/";>
>       <pingRequest>
>         <message xmlns="http://soap";>hel lo</message>
>       </pingRequest>
>     </ping>
> ]
> javax.jbi.messaging.MessagingException: java.lang.IllegalStateException: the
> transaction context set in the messageExcha
> nge is not bound to the current thread
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.autoEnlistInTx(DeliveryChannelImpl.java:771)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:349)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
>         at
> org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:79)
>         at
> org.apache.servicemix.common.endpoints.SimpleEndpoint.send(SimpleEndpoint.java:67)
>         at
> org.apache.servicemix.eip.patterns.StaticRoutingSlip.processAsync(StaticRoutingSlip.java:210)
>         at
> org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:160)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.jca.JCAFlow.onMessage(JCAFlow.java:515)
>         at org.jencks.XAEndpoint.onMessage(XAEndpoint.java:129)
>         at
> org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:121)
>         at
> org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:61)
>         at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:695)
>         at
> org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.IllegalStateException: the transaction context set in
> the messageExchange is not bound to the curre
> nt thread
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.autoEnlistInTx(DeliveryChannelImpl.java:764)
>         ... 20 more
> ----------------------------------------------------------
>
> is there any problem or mistakes?
> why the
>
>
>
>
>
>
>
>
> --
> View this message in context: 
> http://www.nabble.com/exception-in-transaction-tf4228279s12049.html#a12028872
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/

Reply via email to