I'm using the SMX 3.3.1 with 2009.01 version (JMS & Camel). I was thinking the same thing ... Looks like the JMS consumer never got the DONE;
It does the same thing with the ?mep=in-only ... OK this works if I do 2 camel routes as you suggested ... Strange isn't it ? Is it a bug ? Raphaël 2010/1/17 tranchida <[email protected]> > > It's look like the jms consumer never receive a done status from camel > > I don't know maybe it's a bug in servicemix-camel, which version do you use > ? > > You can try to add ?mep=in-only to force an in-only exchange > > jbi:endpoint: > http://esb/jmsProviderErreursDLQ/jmsProviderErreursDLQ?mep=in-out > > see > http://camel.apache.org/how-do-i-set-the-mep-when-interacting-with-jbi.html > > you can also maybe isolate your route with a camel seda > > from("jbi:...").to("seda:job"); > > from("seda:job").... > > > > Raphaël Delaporte wrote: > > > > Hi > > > > Thanks for explaination. > > I've been running in other troubles... but this time, I run in a non > > transacted routes. > > > > I've a JMS consumer which calls a Camel JBI endpoint, and if everything > > goes > > well, calls an other JMS provider to put the message in a queue (this > > works > > well). > > In this Camel endpoint, I want to define an errorHandler which sends the > > message to a DLQ for example. > >>> errorHandler(deadLetterChannel("jbi:endpoint: > > http://esb/jmsProviderErreursDLQ/jmsProviderErreursDLQ")); > > > > On errors, my custom error handler is called and I am able to find my > > message in my DLQ (this works well) > > But, my JMS consumer doesn't want to take anymore messages. It seems it's > > freezed on the last exchange (and servicemix is freezed as well, cannot > > shutdown, etc..) > > > > When I keep the default error handler, or if I set something like this, > it > > works. > >>> errorHandler(deadLetterChannel("log:myClass")); > > > > Seems I've got trouble when I want to call other JBI endpoints into the > > errorHandler. > > > > Any ideas of what's happen ? > > > > Thanks for your help. > > Raphaël > > > > > > 2010/1/17 tranchida <[email protected]> > > > >> > >> The explanation of autoEnlistInTransaction and the different QOS > >> depending > >> on > >> the flow can be found here -> > >> http://servicemix.apache.org/transactions.html > >> > >> For my usage, I totaly disable jms and jca flow. I use only seda and > >> pairs > >> of jms consumer/provider for persistence / failover / load balancing. > >> > >> See ref : > >> > >> > >> > http://trenaman.blogspot.com/2008/11/jmsjca-flows-in-servicemix-wrong-level.html > >> http://trenaman.blogspot.com/2009/03/new-jms-flow-in-servicemix-4.html > >> > >> > >> > >> Raphaël Delaporte wrote: > >> > > >> > Hi, > >> > > >> > Thanks for your replies. > >> > > >> > 1. I did not set the autoEnlistInTransaction="true" in servicemix.xml, > >> but > >> > I > >> > don't understand for what this property is used for. I've just seen > >> > "Retrieve the value for automatic transaction enlistment" but it's not > >> > very > >> > clear for me ... > >> > -> OK it works with this property !! Very good ! > >> > > >> > > >> > 2. Ok my MEP is InOnly because it comes from a jms consumer : > >> > - but why have I the transaction rolledback if I specify non-existant > >> > targetEndpoint / targetService for example ? Is it because the > exchange > >> is > >> > still on the jms component side ? > >> > - How can I specify an InOut MEP on the jms consumer ? > >> > - the defaultMep property does not exist anymore on the new JMS > >> > endpoints > >> > - the synchronous property does not change the MEP > >> > > >> > > >> > 3. Subsidiary question guys. > >> > I've seen in the stacktrace when transaction is rolledback that the > >> flow > >> > used is the SEDA flow. I guess this flow is not persistant at all .. > Am > >> I > >> > wrong ? > >> > Is there a way to force this exchange to use other flow, as JMS flow > >> for > >> > instance ? > >> > I commented out the SEDA flow in the servicemix.xml, and it uses the > >> JMS > >> > flow. But this is not really a good method... > >> > > >> > > >> > Thanks a lot ! > >> > Raphaël > >> > > >> > > >> > > >> > 2010/1/17 Jean-Baptiste Onofre <[email protected]> > >> > > >> >> Hi Raph, > >> >> > >> >> be careful, as your MEP is InOnly, in case of error, it can't go back > >> to > >> >> the JMS endpoint. > >> >> > >> >> Try to use InOut MEP, it should be better. > >> >> > >> >> Regards > >> >> JB > >> >> > >> >> > >> >> Raphaël Delaporte wrote: > >> >> > >> >>> Hi, > >> >>> > >> >>> I'm using SMX 3.3.1 with the JMS component 2009.01. > >> >>> > >> >>> I use the jms-consumer endpoint in the XA transacted mode. > >> >>> This works, because if I want to test the transactionnal behaviour, > I > >> >>> specify some wrong service endpoint and my JMS message is rolledback > >> to > >> >>> the > >> >>> queue. So that's OK. > >> >>> > >> >>> But my route calls the Camel JBI endpoint within the transaction. > >> >>> If I throw any exception from a camel bean, the transaction is not > >> >>> rolledback, and the JMS message is not redelivered into the queue. > >> >>> It seems the transaction is commited. > >> >>> > >> >>> Here is my configuration : > >> >>> > >> >>> --- JMS SMX component ----- > >> >>> <jms:consumer service="esb:jmsConsumerTrans" endpoint="jmsConsumer" > >> >>> targetService="esb:CamelTrans" targetEndpoint="trans" > >> >>> destinationName="queue/in" > >> connectionFactory="#connectionFactory" > >> >>> transacted="xa" /> > >> >>> > >> >>> > >> >>> --- Camel route ----- > >> >>> public void configure() throws Exception { > >> >>> > >> >>> errorHandler(noErrorHandler()); > >> >>> > >> >>> from("jbi:endpoint:http://esb/CamelTrans/trans") > >> >>> .to(LOG) > >> >>> .beanRef("routes", "erreur"); > >> >>> > >> >>> } > >> >>> > >> >>> public void erreur() throws Exception { > >> >>> Thread.sleep(1000); > >> >>> throw new Exception("erreur ..."); > >> >>> } > >> >>> > >> >>> > >> >>> > >> >>> There is something strange to me (and this is why I guess this is a > >> SMX > >> >>> related and not Camel related). I've enabled the debug mode, and I > >> can > >> >>> see > >> >>> the content of the messages. In the last exchange, I can see an > error > >> >>> field > >> >>> with my exception (the one which comes from the Camel endpoint I > >> guess) > >> >>> > >> >>> WARN - SimpleEndpoint - SimpleEndpoint.fail called: > >> >>> DEBUG - DeliveryChannelImpl - Send > >> >>> ID:192.168.0.3-12638f8f9d2-11:0 in DeliveryChannel{servicemix-camel} > >> >>> DEBUG - SecuredBroker - send exchange with secure > >> >>> broker > >> >>> DEBUG - SedaFlow - Called Flow send > >> >>> DEBUG - SedaQueue - > >> >>> org.apache.servicemix.jbi.nmr.flow.seda.sedaqueu...@517bc3 dequeued > >> >>> exchange: InOnly[ > >> >>> id: ID:192.168.0.3-12638f8f9d2-11:0 > >> >>> status: Error > >> >>> role: consumer > >> >>> service: {http://esb}CamelTrans > >> >>> endpoint: trans > >> >>> in: <?xml version="1.0" encoding="UTF-8"?><requete xmlns=" > http://esb > >> "/> > >> >>> error: java.lang.Exception: erreur ... > >> >>> ] > >> >>> DEBUG - DeliveryChannelImpl - Notifying exchange > >> >>> ID:192.168.0.3-12638f8f9d2-11:0(1b9bbe8) in > >> >>> DeliveryChannel{servicemix-jms} > >> >>> from processInboundSynchronousExchange > >> >>> DEBUG - DeliveryChannelImpl - Notified: > >> >>> ID:192.168.0.3-12638f8f9d2-11:0(1b9bbe8) in > >> >>> DeliveryChannel{servicemix-jms} > >> >>> from sendSync > >> >>> > >> >>> > >> >>> Thanks for your help ! > >> >>> Raphaël > >> >>> > >> >>> > >> >> -- > >> >> Jean-Baptiste Onofré > >> >> --------------------------------- > >> >> HomePage > >> >> http://www.nanthrax.net > >> >> --------------------------------- > >> >> Contacts > >> >> [email protected] > >> >> [email protected] > >> >> --------------------------------- > >> >> OpenSource > >> >> BuildProcess/AutoDeploy > >> >> http://buildprocess.sourceforge.net > >> >> Apache ServiceMix > >> >> http://servicemix.apache.org > >> >> ----------------------------------- > >> >> PGP : 17D4F086 > >> >> > >> > > >> > > >> > >> -- > >> View this message in context: > >> > http://old.nabble.com/Transaction-rollback-with-Camel-JBI-endpoint-tp27193847p27200109.html > >> Sent from the ServiceMix - User mailing list archive at Nabble.com. > >> > >> > > > > > > -- > View this message in context: > http://old.nabble.com/Transaction-rollback-with-Camel-JBI-endpoint-tp27193847p27200582.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
