activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Vansevenant (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-6530) A configured queuePrefetch of one in ActiveMQ 5.14.1 with AMQP 1.0 behaves like a queuePrefetch of two.
Date Wed, 07 Dec 2016 22:07:58 GMT

     [ https://issues.apache.org/jira/browse/AMQ-6530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Patrick Vansevenant updated AMQ-6530:
-------------------------------------
    Description: 
I'm talking about queues with a low message volume and high processing time. In such a setup
is it important that messages are not "heaping up" in the dispatch queue. The queueprefetch
must be one in order to keep it workable. 

I have done a test with an ActiveMQ 5.14.1 broker and an AMQP consumer with a brokerURL configured
with a queuePrefetch of one (jms.prefetchPolicy.queuePrefetch=1). 

I have the impression that the Dispatched Queue contains two messages during the period that
a message is received and the time the acknowledgement is sent (clientacknowlegde mode). 

The consumer details in the ActiveMQ Web Console tells me that the "Dispatched Queue" contains
indeed two messages at that moment in time what should maximum be one with a defined queuePrefetch
of one. 

!5.14.1 - queueprefetch of one -  max dispatched queue is two.png!

When I do the same test with an ActiveMQ 5.13.3 broker then the Dispatched Queue contains
maximum one message at any point in time, what is more correct in my opinion.

!5.13.3 - queueprefetch of one -  max dispatched queue is one.png!

I have created a unit test who shows the difference between ActiveMQ 5.13.3 and 5.14.1. The
test consists of two asynchronous consumers and one sender. When the first consumer receives
a first message then the onMessage thread will block before the message is acked. The second
consumer should consume all the other messages.

The unit test sends four messages. With ActiveMQ 5.13.3 are all the four messages consumed
(unit test passes). With ActiveMQ 5.14.1 are only three of the four messages consumed (unit
test fails) because one of the messages stays in the Dispatched Queue. 

The unit test [^JmsClientUnitTest.java] and the activemq config [^activemq.xml].


  was:
I'm talking about queues with a low message volume and high processing time. In such a setup
is it important that messages are not "heaping up" in the dispatch queue. The queueprefetch
must be one in order to keep it workable. 

I have done a test with an ActiveMQ 5.14.1 broker and an AMQP consumer with a brokerURL configured
with a queuePrefetch of one (jms.prefetchPolicy.queuePrefetch=1). 

I have the impression that the Dispatched Queue contains two messages during the period that
a message is received and the time the acknowledgement is sent (clientacknowlegde mode). 

The consumer details in the ActiveMQ Web Console tells me that the "Dispatched Queue" contains
indeed two messages at that moment in time what should maximum be one with a defined queuePrefetch
of one. 

When I do the same test with an ActiveMQ 5.13.3 broker then the Dispatched Queue contains
maximum one message at any point in time, what is more correct in my opinion.

I have created a unit test who shows the difference between ActiveMQ 5.13.3 and 5.14.1. The
test consists of two asynchronous consumers and one sender. When the first consumer receives
a first message then the onMessage thread will block before the message is acked. The second
consumer should consume all the other messages.

The unit test sends four messages. With ActiveMQ 5.13.3 are all the four messages consumed.
With ActiveMQ 5.14.1 are only three of the four messages consumed because one of the messages
stays in the Dispatched Queue. 


> A configured queuePrefetch of one in ActiveMQ 5.14.1 with AMQP 1.0 behaves like a queuePrefetch
of two.
> -------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-6530
>                 URL: https://issues.apache.org/jira/browse/AMQ-6530
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 5.14.1
>            Reporter: Patrick Vansevenant
>         Attachments: 5.13.3 - queueprefetch of one -  max dispatched queue is one.png,
5.14.1 - queueprefetch of one -  max dispatched queue is two.png, JmsClientUnitTest.java,
activemq.xml
>
>
> I'm talking about queues with a low message volume and high processing time. In such
a setup is it important that messages are not "heaping up" in the dispatch queue. The queueprefetch
must be one in order to keep it workable. 
> I have done a test with an ActiveMQ 5.14.1 broker and an AMQP consumer with a brokerURL
configured with a queuePrefetch of one (jms.prefetchPolicy.queuePrefetch=1). 
> I have the impression that the Dispatched Queue contains two messages during the period
that a message is received and the time the acknowledgement is sent (clientacknowlegde mode).

> The consumer details in the ActiveMQ Web Console tells me that the "Dispatched Queue"
contains indeed two messages at that moment in time what should maximum be one with a defined
queuePrefetch of one. 
> !5.14.1 - queueprefetch of one -  max dispatched queue is two.png!
> When I do the same test with an ActiveMQ 5.13.3 broker then the Dispatched Queue contains
maximum one message at any point in time, what is more correct in my opinion.
> !5.13.3 - queueprefetch of one -  max dispatched queue is one.png!
> I have created a unit test who shows the difference between ActiveMQ 5.13.3 and 5.14.1.
The test consists of two asynchronous consumers and one sender. When the first consumer receives
a first message then the onMessage thread will block before the message is acked. The second
consumer should consume all the other messages.
> The unit test sends four messages. With ActiveMQ 5.13.3 are all the four messages consumed
(unit test passes). With ActiveMQ 5.14.1 are only three of the four messages consumed (unit
test fails) because one of the messages stays in the Dispatched Queue. 
> The unit test [^JmsClientUnitTest.java] and the activemq config [^activemq.xml].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message