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

Reply via email to