Hi,

I guess it’s the same as https://issues.apache.org/jira/browse/AMQ-7418 
<https://issues.apache.org/jira/browse/AMQ-7418> right ?

I was about to add a comment in the Jira.

I would need the version from both broker and client. Do you have prefetch 
defined on broker side ?

Anyway, the scenario you describe sounds good to me as the prefetch is just one 
(prefetch is per consumer).

What behavior are you looking for ?

Regards
JB

> Le 27 févr. 2020 à 19:02, subbu.kobra <[email protected]> a écrit :
> 
> Hi,
> 
> We are using ActiveMQ and MuleSoft in our project. We connect to ActiveMQ
> from MuleSoft. 
> 
> As per the project requirement, we are using JMXGroupId and Queueprefetch
> polcy.
> 
> We have set Queueprefetch to 1 at the connection broker url like below and
> number of consumers are set to 2
> 
> tcp://localhost:61616?jms.prefetchPolicy.queuePrefetch=1
> 
> 
> 
> We have two APIs in mule one APIs publishes messages to the queue and
> another API consumes the messages from the queue. in the receiver API, we
> have set sleep time to 10secs (for POC to reproduce the issue)
> 
> 
> 
> 2020-02-21 12:42:52,203
> [[jms_connectivity_poc]org.mule.api.processor.LoggerMessageProcessor:
> Written to the queue : M1 (JMXGroupId : 1)
> 2020-02-21 12:42:52,244 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: received : M1  (JMXGroupId :
> 1)
> 2020-02-21 12:42:53,315
> [[jms_connectivity_poc]org.mule.api.processor.LoggerMessageProcessor:
> Written to the queue : M2  (JMXGroupId : 2)
> 2020-02-21 12:42:53,322 [ActiveMQ Session Task-2]
> org.mule.api.processor.LoggerMessageProcessor: received : M2  (JMXGroupId :
> 2)
> 2020-02-21 12:42:57,077
> [[jms_connectivity_poc]org.mule.api.processor.LoggerMessageProcessor:
> Written to the queue : M3  (JMXGroupId : 3)
> 2020-02-21 12:42:58,148
> [[jms_connectivity_poc]org.mule.api.processor.LoggerMessageProcessor:
> Written to the queue : M4  (JMXGroupId : 3)
> 2020-02-21 12:43:01,736
> [[jms_connectivity_poc]org.mule.api.processor.LoggerMessageProcessor:
> Written to the queue : M5  (JMXGroupId : 1)
> 2020-02-21 12:43:02,248 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: finished : M1  (JMXGroupId :
> 1)
> 2020-02-21 12:43:02,257 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: received : M3  (JMXGroupId :
> 3)
> 2020-02-21 12:43:03,323 [ActiveMQ Session Task-2]
> org.mule.api.processor.LoggerMessageProcessor: finished : M2  (JMXGroupId :
> 2)
> 2020-02-21 12:43:12,258 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: finished : M3  (JMXGroupId :
> 3)
> 2020-02-21 12:43:12,263 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: received : M4  (JMXGroupId :
> 3)
> 2020-02-21 12:43:22,264 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: finished : M4  (JMXGroupId :
> 3)
> 2020-02-21 12:43:22,269 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: received : M5  (JMXGroupId :
> 1)
> 2020-02-21 12:43:32,270 [ActiveMQ Session Task-1]
> org.mule.api.processor.LoggerMessageProcessor: finished : M5  (JMXGroupId :
> 1)
> 
> If you see the above log, We have written the messages to the queue in the
> following sequence:
> 
> message 1 with JMXGroupId 1
> 
> message 2 with JMXGroupId 2
> 
> message 3 with JMXGroupId 3
> 
> message 4 with JMXGroupId 3
> 
> message 5 with JMXGroupId 1
> 
> Since there are two consumer threads, first two messages were picked up by
> consumer 1 and consumer 2 and If I understand prefetch functionality
> correctly, Message 3 is prefetched to consumer thread 1. 
> 
> Even though consumer thread 2 is available after some time (i.e. 2020-02-21
> 12:43:03,323), Last Message (i.e. M5) with JMXgroupId 1, was given to thread
> 1 (at 2020-02-21 12:43:22,269) due to which we are losing the processing
> time for Message 5.
> 
> 
> 
> Can you please let me know why Message 5 with JMXgroupId 1 (i.e. Last
> message) waited for so long and assigned to Thread 1 when Thread 2 is
> available? do we need to do any changes in the ActiveMQ configuration or any
> other changes so that it will assign the Message 5 with JMXgGroup 1 to
> Thread 2?
> 
> 
> 
> Thanks,
> 
> Bala
> 
> 
> 
> --
> Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply via email to