Hi guys, we have the following scenario:
Orders are stored to an Oracle AQ queue from where we read the messages by a JmsComponent and deliver the content to a webservice. If anything goes wrong we should redeliver the messages with exponential backoff starting with a delay of 15 minutes. errorHandler(deadLetterChannel(MANUAL_QUEUE_CHANNEL_URI) .asyncDelayedRedelivery() .maximumRedeliveries(8) .redeliveryDelay(900000) .onRedelivery(waitingStateProcessor) .backOffMultiplier(2) .retryAttemptedLogLevel(LoggingLevel.INFO) .retriesExhaustedLogLevel(LoggingLevel.ERROR)); from("jms:order_queue") .process(orderProcessor) .to("cxf:bean:orderWS"); Because we don't want to loose any orders in case of a server crash the JsmComponent is set to transacted. Reading the documentation I came to the conclusion that asyncDelayedRedelivery() does not work for transacted routes, which proofs to be true as the threads are blocked when the failed messages reaches the maximum threadcount. Is there another way with camel to do the required redelivery without blocking the threads? Using a timer? Regards, Frank -- View this message in context: http://camel.465427.n5.nabble.com/How-to-avoid-blocking-threads-in-JmsComponent-with-Oracle-AQ-tp5764487.html Sent from the Camel - Users mailing list archive at Nabble.com.