camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "E.Gherardini" <e.gherard...@hotmail.com>
Subject Re: Camel 2.9.1 DeadLetterChannel infinite loop
Date Tue, 03 Jul 2012 19:32:29 GMT
Hello sarfarj,
this is the doTry() doCatch() solution I've found. I remark that the
approach suggested by Claus (which is basically using the Recipient List EIP
to choose the dead letter queue at runtime) is much more cleaner.

	@Override
	public void configure() throws Exception {
		
		from(INBOUND_QUEUE)
			
			.threads(routeExecutionThreadCount)
		
			.doTry()
				
				.to(DEST_1, DEST_2)			
				
			.doCatch(Exception.class)
			
				.process(new
CounterHeaderIncrementorProcessor(Constants.MY_REDELIVERIES_COUNTER_HEADER,
1))
				
				.choice()
				
				
.when(header(Constants.MY_REDELIVERIES_COUNTER_HEADER).isLessThanOrEqualTo(redeliveriesCount))
						// redeliver 'redeliveriesCount' times
						.log(LoggingLevel.ERROR, exceptionMessage().toString())
						
						.to(INBOUND_QUEUE).stop()
						
					.otherwise()
					
						.log(LoggingLevel.ERROR,"Message <${body}> sent to deadLetterQueue <"+
DEAD_LETTER_QUEUE + ">")
						
						.to(DEAD_LETTER_QUEUE).stop()
						
				.end()
				
			.end()
		;

	}

--
View this message in context: http://camel.465427.n5.nabble.com/Camel-2-9-1-DeadLetterChannel-infinite-loop-tp5714961p5715422.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message