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/