Hi,

I have the below routes setup. 

The behaviour that I am noticing is that the key within the Idempotent
Repository is not being removed when an exception is thrown when using the
'seda' component in the OnException (on line stated below). 

If I change to use 'direct' instead of 'seda' within the OnException then
the key is correctly removed from the cache when the exception is thrown. 

I am using MemoryIdempotentRepository and the version of Apache Camel is
2.16.2.

Can you please help me with my queries:

    1) why would the key not be removed from the repository cache when using
'seda' within the OnException?
    2) is there an issue with using 'seda' within the OnException?


Here is a snapshot of the routes:

In MyRouteClass1
 
 ....
 
 private IdempotentRepository<String> duplicatesRepo =
MemoryIdempotentRepository.memoryIdempotentRepository(100);
 
 
onException(Exception.class)
  .setHeader("subjectText", simple("failure email!"))
  .to("seda:notifySupportOnFailure")
  .end();

from("direct:findWorkItems")
    .bean(someService, "findWorkItems")
    .split(body())
      .throttle(1).timePeriodMillis(5000L)
      .to("direct:handleWorkItem")
      .choice().when(header("resultId").isGreaterThan(0))
      .bean(someService, "updateWorkItemToHandled")
      .end();

from("direct:handleWorkItem")
    .idempotentConsumer(simple("${body.workItemId}"), duplicatesRepo)
    .bean(someService, "handleWorkItem")  // e.g. exception would be thrown
within here
    .setHeader("resultId", body())
    .end();

        
In MyRouteClass2

from("seda:notifySupportOnFailure")
  .setHeader("from", simple("sen...@mail.com"))
  .setHeader("to", simple("recipi...@mail.com"))
  .setBody(simple("Failure:\n ${exception.message} \n\ndetail: \n${body}"))
  .to("smtp://localhost")
  .log("Failure email now sent.")
  .end();




--
View this message in context: 
http://camel.465427.n5.nabble.com/IdempotentRepository-key-removal-within-OnException-tp5781682.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to