JMS messages are available in ativeMQ to be picked by worker, worker configuraiton is as above , we wanted to control how many messages workers can proocess, observed that consumers are always multiplied by 3 times for the configuraiton. from above configuration it is observed that 75 consumers are created and 75 task executions(workerPollerTaskExecutor) are running.
Basically 3 sets of concurrent consumers are being created with same Name(3 threads of senExtractWorkerInGateway.container-1) and same behaviour observed with workerPollerTaskExecutor as well. Can someone help us understanding this why always 3 times multiplied.
Consumers view from ActiveMq Queue
<int-jms:inbound-gateway
id="senExtractWorkerInGateway"
connection-factory="jmsConnectionFactory"
correlation-key="JMSCorrelationID"
request-channel="senExtractProcessingWorkerRequestChannel"
request-destination-name="senExtractRequestQueue"
reply-channel="senExtractProcessingWorkerReplyChannel"
default-reply-queue-name="senExtractReplyQueue"
auto-startup="false"
concurrent-consumers="25"
max-concurrent-consumers="25"
max-messages-per-task="1"
reply-timeout="1200000"
receive-timeout="1200000"/>
<bean id="workerPollerTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="25"/>
<property name="maxPoolSize" value="25"/>
<property name="queueCapacity" value="200"/>
</bean>
The application context was loading 3 times(due to code issue from our end) causing this behaviour. hope this will helpful for others. Thank you.