Hello,
I have multiple sequential queues in InOut pattern, each queue leads to one
processor.
If a processor takes too much time for a treatment, I would like that the
request-reply detects a timeout and send a timeout exception.
The timeout with "*CamelJmsRequestTimeout*" works but only for the first
queue.

Example:
If I have this:

q1 -> p1 -> q2 -> p2 ->  q3 -> p3

q1 *CamelJmsRequestTimeout *is for example 15". If each processor take 6",
I will have a timeout at p3.
I would like to have a reply to q1 after p1 and not after p3. And being
able to modulate the timeout after each processing.

This is an example code:

from("jms:queue:q1")
        .setExchangePattern(ExchangePattern.InOut)
        .setHeader("CamelJmsRequestTimeout", constant("15000"))
        .process("p1")
        .to("jms:queue:q2");

from("jms:queue:q2")
        .setExchangePattern(ExchangePattern.InOut)
        .setHeader("CamelJmsRequestTimeout", constant("5000"))
        .process("p2")
        .to("jms:queue:q3");

from("jms:queue:q3")
        .setExchangePattern(ExchangePattern.InOut)
        .setHeader("CamelJmsRequestTimeout", constant("5000"))
        .process("p3");

I tried to double the concurrentConsumers (so from 1 to 2) on each procuder
for the reply on the temp queue, but I still have this problem.

Is my design possible? If yes, which option should I use?

Thanks

Reply via email to