activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Torsten Mielke (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-6072) [doc] Comment on DMLC and prefetch=0 on "Pooled Consumers and prefetch" chapter seems wrong.
Date Mon, 07 Dec 2015 08:24:11 GMT

     [ 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)

Mime
View raw message