On Fri, Feb 5, 2010 at 11:32 AM, Olivier Billard <olivier.bill...@gmail.com> wrote: > > Many thanks for your answer, Claus! > > I indeed use an ActiveMQ queue as the dead letter channel endpoint. > But my question was more on the beginning of the Camel pipeline: if a crash > happens between my two Beans (multicast and content-based router), connected > via the direct: channels, I suspect them to be lost forever if the pipeline > is not transaction-enabled, isn't it ? In the case of a transacted pipeline, > are the messages kept on the original JMS queue entry point if the crash > happens? > > Or must I implement a "guaranteed delivery channel", by using JMS queues > instead of direct channels ? In this case, this would do a lot of traffic > between Camel and the broker, even if the 2 of them are quite near in my > architecture... >
No if you enable transaction on the JMS consumer and tell Camel its a transacted route then that will last for the duration of the routing. See more here http://camel.apache.org/transactional-client.html And even better chapter 9 in the Camel in Action book which is devoted to transactions. > > Sorry if I missed a point on Camel, I really am new to it :) > -- > Olivier > > > > Claus Ibsen-2 wrote: >> >> On Fri, Feb 5, 2010 at 10:08 AM, Olivier Billard >> <olivier.bill...@gmail.com> wrote: >>> >>> Hi Claus, >>> >>> Unfortunately, this issue reproduces with the last 2.2-SNAPSHOTS >>> artifacts >>> from the apache.snapshots repo... >>> I managed to workaround it the way I previously explained : >>> - routing the multicast bean to a "direct:webservices" channel, >>> - wiring "direct:webservices" and >>> "direct:webservices-with-deadletterchannel" channels with a RouteBuilder >>> defining a dead letter channel >>> - my content-based router consumes the >>> "direct:webservices-with-deadletterchannel", and drives the messages >>> along >>> the webservices >>> >>> That's not clean, I am not satisfied with this, but this works for the >>> moment. But the risk here of loosing messages is higher, isn't it ? Could >>> the use of a transactional error handling bring something here with the >>> direct channels ? >>> >> >> You can use transactional JMS and use the JMS broker dead letter channel. >> If using AMQ then check their documentation how to. >> >> >> >>> -- >>> Olivier >>> >>> >>> Claus Ibsen-2 wrote: >>>> >>>> On Thu, Feb 4, 2010 at 11:02 PM, Olivier Billard >>>> <olivier.bill...@gmail.com> wrote: >>>>> >>>>> Yep, sorry, I am using the latest stable release : 2.1.0. >>>>> >>>> >>>> Can you try 2.2-SNAPSHOT or wait till 2.2 is released. >>>> http://camel.apache.org/download.html >>>> >>>> I think we fixed an issue with setting error handler ref on camel >>>> context. >>>> >>>> -- >>>> Claus Ibsen >>>> Apache Camel Committer >>>> >>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>> Open Source Integration: http://fusesource.com >>>> Blog: http://davsclaus.blogspot.com/ >>>> Twitter: http://twitter.com/davsclaus >>>> >>>> >>> >>> >>> ----- >>> -- >>> Olivier Billard >>> -- >>> View this message in context: >>> http://old.nabble.com/Defining-a-DeadLetterChannel-when-using-POJO-annotations-tp27455914p27465224.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > > ----- > -- > Olivier Billard > -- > View this message in context: > http://old.nabble.com/Defining-a-DeadLetterChannel-when-using-POJO-annotations-tp27455914p27466003.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus