From 3de37b25346f8e2eee79b299c3f2dd6eda4216ee Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Mon, 17 Apr 2023 19:56:40 +0200 Subject: [PATCH] FINERACT-1724: Set prefetch message count to 1 for COB --- .../springbatch/messagehandler/JmsBrokerConfiguration.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/springbatch/messagehandler/JmsBrokerConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/springbatch/messagehandler/JmsBrokerConfiguration.java index 2e5ef2c8a33..ba579b011fc 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/springbatch/messagehandler/JmsBrokerConfiguration.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/springbatch/messagehandler/JmsBrokerConfiguration.java @@ -19,6 +19,7 @@ package org.apache.fineract.infrastructure.springbatch.messagehandler; import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.ActiveMQPrefetchPolicy; import org.apache.fineract.infrastructure.core.config.FineractProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -31,12 +32,16 @@ public class JmsBrokerConfiguration { @Autowired private FineractProperties fineractProperties; + private static final int PREFETCH_MESSAGE_NUMBER = 1; @Bean public ActiveMQConnectionFactory connectionFactory() { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); connectionFactory.setBrokerURL(fineractProperties.getRemoteJobMessageHandler().getJms().getBrokerUrl()); connectionFactory.setTrustAllPackages(true); + ActiveMQPrefetchPolicy activeMQPrefetchPolicy = new ActiveMQPrefetchPolicy(); + activeMQPrefetchPolicy.setAll(PREFETCH_MESSAGE_NUMBER); + connectionFactory.setPrefetchPolicy(activeMQPrefetchPolicy); FineractProperties.FineractRemoteJobMessageHandlerJmsProperties jmsProps = fineractProperties.getRemoteJobMessageHandler().getJms(); if (jmsProps.isBrokerPasswordProtected()) { connectionFactory.setUserName(jmsProps.getBrokerUsername());