Hi

Yeah topics has its issues in the messaging world. There is a little
wiki page from Apache ActiveMQ for a concept they have that's improves
topics:
http://activemq.apache.org/virtual-destinations.html


The idea of having a persistent redelivery error handler in Camel is
interesting.
It bring in its number of complexities which you would have to
consider in the design.

For example for a transacted JMS session, you can't really have that
running for 24 hours, and it cant "survive" if the server is restarted
or crashed and recovered. So you may have to regard the transaction as
complete, when the persistent error handler have stored the exchange
in its repository.

This also seems what you want, as the consumers on the topic then
would be able to read the next message, while the previous is
scheduled for redelivery and handled by the error handler.

The error handler should also be able to "recover" on startup and
bring back the "state" of each exchange as they were. For example it
should remember the number of redeliveries it have tried before. Then
it will be able to pickup where it left.

And you may want to let the persistent error handler act transactional
as well, for example similar to what the HawtDB offers for the
aggregator EIP pattern. In fact it could be a good idea to check some
of its logic and see what can be reused for your idea.

Are there other who think that a persistent error handler is useable
in Camel? Then we could create a JIRA ticket. And with your work we
may be able to implement it into the camel-core. However error
handling is hard, so it's not that easy.




On Sat, Feb 19, 2011 at 12:22 AM, Rosmon Sidhik <rosmon.sid...@gmail.com> wrote:
> Hi Claus,
> Thanks for the quick response.
> I'm using OpenMq and I have noticed that when use a queue with
> errorhandler and redeliveryPolicy configured,
> the message seems to stay on the queue till one of the retries passes
> or all of them fail and then gets put on the deadletteruri.
>
> I'm facing this issue when i'm using topics and have durableconsumers
> subscribing to the topic that I have the problem.
> I'm using onException block in the route where the durableconsumer is
> defined and it is transacted. I also have a redeliverPolicy defined
> here (same as for queue).
> Once the exception happens the message doesn't go back on the topic
> (i'm guessing that's the logical way it's supposed to work),
> but now if for some reason the camel context goes down then we loose
> the message that's being redelivered/retried.
>
> This is the reason I was looking for a persistent errorhandler.
> Regards,
> Rosmon Sidhik
>
>
>
> On Thu, Feb 17, 2011 at 10:41 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>> On Fri, Feb 18, 2011 at 1:14 AM, rosmons <rosmon.sid...@gmail.com> wrote:
>>>
>>> Hi Claus,
>>> I've been trying to figure out if the TransactionErrorHandler actually
>>> persists the message in between retries.
>>> I can see from your post here that it's probably not implemented yet. I have
>>> used the hawtdb as repo for Aggregation, but was wondering if you could
>>> point me in the right way to do the same for the TransactionErrorHandler.
>>> I wouldn't mind writing the additional code and could probably upload a
>>> patch that can be used for future release if you find it useful.
>>> The reason we need this is for the following scenario:
>>> We have a topic which has durable consumers.
>>>  - The durable consumers receive a message
>>>  - Encounters an error while transmitting to a route
>>>  - in the OnException definition we have a RedeliveryPolicy which could run
>>> upto 24hrs
>>>  - Let's say the camel context shutsdown due to some reason we loose the
>>> message that is being redelivered
>>>
>>
>> Hi
>>
>> Usually the message broker have options for redelivery. By leveraging
>> those instead, you ensure the message is kept persisted in the broker.
>> I suggest you take a look at what the broker offers, instead of using
>> Camel's redelivery.
>>
>>
>>> if i can add persistence to the errorhandler it would solve this issue for
>>> me.
>>>
>>> thanks
>>> Rosmon
>>>
>>> --
>>> View this message in context: 
>>> http://camel.465427.n5.nabble.com/DefaultShutdownStrategy-can-t-shutdown-DefaultErrorHandler-s-retries-tp3276249p3390369.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email: cib...@fusesource.com
>> Web: http://fusesource.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.blogspot.com/
>> Author of Camel in Action: http://www.manning.com/ibsen/
>>
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to