Hello.

Camel is able to process messages from one queue concurrently. For final
application it is a good feature: it decreases time to process batch of
messages.

At the stage of debug it is may be a little discomfort: order of output
messages may differ from order of input messages. To prevent it, the
route-builder URI of endpoint may be expanded with "?maxConcurrentConsumers"
option.

The problem appears when I want to reconfigure the existing route. I can
modify the endpoint

    for (Endpoint endpoint : camelContext.getEndpoints()) {
        ((JmsEndpoint) endpoint).setMaxConcurrentConsumers(1);
    }

but this will not affect the existing consumers.

We can look at listener container

((JmsConsumer)
    (context.getRoutes().get(0).getConsumer()))
        .getListenerContainer()

It have a default value of maxConcurrentConsumer=20, it is not changed.

Is it possible to reconfigure routes at runtime to change the value of
maxConcurrentConsumers?


Thank you for your attention.

Reply via email to