Thank you for your reply. The issue with exceptions and the DLQ is the same, they are both exception handling tools but the late delivery event in this case (and several others) is naturally normal behavior. Its like making your child's lunch and finding they've already gone to school so you file it in the rubbish bin so that you can get it out later to drop it in to your child at school when you eventually go to work. Just recently I saw another example of this where someone had put the end of tail end recursion in an exception handling block which caused a world of hurt. When you write software exception handling is for exceptions only.
I'm sure that I'm missing something here in the patterns world that has this covered. What should happen is the producer thread should cleanly give up waiting and hand the waiting game over to a janitor thread to process when the message finally arrives. The janitor thread is a lot like the DLQ but will only collect assigned messages. Note that the janitor thread is never blocking on any particular message arriving as a lot of producers could be assigning it late messages. My initial thoughts was that I could do this with some sort of exclusive consumer arrangement. But I can't seem to work out how to do that in Camel yet. -- View this message in context: http://camel.465427.n5.nabble.com/How-do-I-avoid-using-the-dead-letter-queue-using-Camel-tp5730386p5730392.html Sent from the Camel - Users mailing list archive at Nabble.com.