Мы выполняем серию секционированных заданий Spring Batch в кластере wildfly (версия 18) или JBoss EAP 7.x. Мы хотим организовать циклический перебор разделов вокруг кластера. Таким образом, исходящий шлюз использует определенную ActiveMQ фабрику объединенных соединений activemq-ra со стратегией циклической загрузки. Эта часть, похоже, работает так, как ожидалось.
Кроме того, у каждого узла есть входящий шлюз для приема сообщений раздела. Шлюз входящей почты настроен с помощью InVMConnectionfactory. Цель состоит в том, чтобы каждый узел обрабатывал только сообщения, помещенные в его очередь.
Этот подход работал для JBoss EAP 5.x.
Мы наблюдаем, что потоки прослушивателя x для входящего шлюза начинают нормально работать. Но по мере прохождения последовательности пакетной обработки с большим количеством секционированных заданий количество потоков, обрабатывающих входящие сообщения, уменьшается, что приводит к тому, что сообщения остаются в очереди, и секционированные шаги выполняются последовательно, а не параллельно.
Такое поведение может наблюдаться даже на сервере с одним узлом, но гораздо хуже в кластере. Таким образом, похоже, проблема в прослушивателе входящего шлюза и соединениях activeMQ для проверки сообщений.
Может ли кто-нибудь порекомендовать, как в дальнейшем выявить и решить эту проблему?
Спасибо