5 Replies Latest reply on May 12, 2009 3:06 AM by Claus Ibsen

    Deadletter / Redelivery

    andrew hurst Newbie



      I have various routes setup and on each I define an errorHandler / redelivery policy


      In my application, if something fails and is retried x-times and still fails, it will go to the deadLetter channel. This is fine, but what if I want to re-queue or re-run my request through the system manually later.... all the way from the top?


      My issue is that if I have routes which route a messages from/to various beans. These beans might take in the message as a String and pass it on as an Object (i.e. they transform the message). So at the end of the route, the message is totally different to what it was at the start of the route.


      If half way through the route propogation, the delivery fails, what ends up on the deadLetter channel is the message as it was before it was processed by the node which failed. Therefore I cannot re-run this message "from the top" as it is partially transformed/processed.


      I wonder what my options are. If I could somehow figure out at which node it failed, perhaps I could manually re-queue the message to the correct bean. Or is there a way to log the original message at top of the route? Or perhaps I should use Spring bean propagation)


      Any ideas / design strategies would be appreciated