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

Torsten Mielke updated AMQ-6072:
--------------------------------
    Description: 
On page http://activemq.apache.org/what-is-the-prefetch-limit-for.html, the 
section "Pooled Consumers and prefetch", particularly the part on DMLC and 
prefetch 0 seems incorrect. 
That chapter says:

{quote}
The problem is visible with the Spring DMLC when the cache level is set to 
CACHE_CONSUMER and there are multiple concurrent consumers.
One solution to this problem is to use a prefetch of 0 for a pooled consumer, 
in this way, it will poll for messages on each call to receive(timeout). 
Another option is to enable the AbortSlowAckConsumerStrategy on the broker to 
disconnect consumers that have not acknowledged a Message after some 
configurable time period. 
{quote}

Springs DMLC does not pool consumers in the traditional sense of placing idle 
consumers into a pool until they are requested. 
Spring caches consumers in their active JMS consumer threads. So these cached 
JMS consumers remain active and remain used to consume the next available 
message. There are not pooled in the way how Springs CachingConnectionFactory 
would pool them. It is therefore not necessary to configure a prefetch of 0 in 
this use case. 

I suggest to remove that paragraph that I quote above. The remaining text on 
chapter "Pooled Consumers and prefetch" remains valid. 


  was:
On page http://activemq.apache.org/what-is-the-prefetch-limit-for.html, the 
section "Pooled Consumers and prefetch", particularly the part on DMLC and 
prefetch 0 seems incorrect. 
That chapter says:

{quote}
The problem is visible with the Spring DMLC when the cache level is set to 
CACHE_CONSUMER and there are multiple concurrent consumers.
One solution to this problem is to use a prefetch of 0 for a pooled consumer, 
in this way, it will poll for messages on each call to receive(timeout). 
Another option is to enable the AbortSlowAckConsumerStrategy on the broker to 
disconnect consumers that have not acknowledged a Message after some 
configurable time period. 
{quote}

Springs DMLC does not pool consumers in the traditional sense of placing idle 
consumers into a pool until they are requested. 
Spring caches consumers in their active JMS consumer threads. So these JMS 
consumers remain active and remain used to consume the next available message. 
There are not pooled in the way how Springs CachingConnectionFactory would pool 
them. It is therefore not necessary to configure a prefetch of 0 in this use 
case. 

I suggest to remove that paragraph that I quote above. The remaining text on 
chapter "Pooled Consumers and prefetch" remains valid. 



> [doc] Comment on DMLC and prefetch=0 on "Pooled Consumers and prefetch" 
> chapter seems wrong.
> --------------------------------------------------------------------------------------------
>
>                 Key: AMQ-6072
>                 URL: https://issues.apache.org/jira/browse/AMQ-6072
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Documentation
>    Affects Versions: 5.13.0
>            Reporter: Torsten Mielke
>              Labels: docuentation
>
> On page http://activemq.apache.org/what-is-the-prefetch-limit-for.html, the 
> section "Pooled Consumers and prefetch", particularly the part on DMLC and 
> prefetch 0 seems incorrect. 
> That chapter says:
> {quote}
> The problem is visible with the Spring DMLC when the cache level is set to 
> CACHE_CONSUMER and there are multiple concurrent consumers.
> One solution to this problem is to use a prefetch of 0 for a pooled consumer, 
> in this way, it will poll for messages on each call to receive(timeout). 
> Another option is to enable the AbortSlowAckConsumerStrategy on the broker to 
> disconnect consumers that have not acknowledged a Message after some 
> configurable time period. 
> {quote}
> Springs DMLC does not pool consumers in the traditional sense of placing idle 
> consumers into a pool until they are requested. 
> Spring caches consumers in their active JMS consumer threads. So these cached 
> JMS consumers remain active and remain used to consume the next available 
> message. There are not pooled in the way how Springs CachingConnectionFactory 
> would pool them. It is therefore not necessary to configure a prefetch of 0 
> in this use case. 
> I suggest to remove that paragraph that I quote above. The remaining text on 
> chapter "Pooled Consumers and prefetch" remains valid. 



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

Reply via email to