Я реализую маршрут для чтения строк из базы данных, разделяю их с помощью сплиттера, обрабатываю их параллельно, агрегирую и обновляю базу данных. Все работает так, как ожидалось, когда есть только один вход для маршрута разветвителя. Образец кода-
<route>
<from uri="direct:splitter"/>
<log message="batch id- $simple{header.BATCH_NUMBER}, loop index - $simple{property.CamelLoopIndex}" />
<split strategyRef="aggregatorStrategy" executorServiceRef="myPool">
<simple>${body}</simple>
<log message="batch id- $simple{header.BATCH_NUMBER}, loop index - $simple{property.CamelLoopIndex}, split index - $simple{property.CamelSplitIndex}" />
<to uri="bean:gisResponseProcessor" />
</split>
</route>
Когда я отправляю 3 сообщения в direct:splitter (обработка каждого занимает несколько минут), и все они обрабатываются параллельно. Когда я пытаюсь это сделать, первые сообщения журнала вне разделителя для всех трех входов печатаются немедленно. Однако сообщения журнала из внутреннего сплиттера показывают, что каждый из 3 обменов разделяется один за другим. Подсообщения каждого из них используют пул потоков. Есть ли способ заставить сплиттер разделить 3 входа параллельно?