qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robbie Gemmell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPIDJMS-86) AMQP 1.0 prefetch policy set to 0 by the broker results in no messages processed
Date Wed, 15 Jul 2015 16:41:04 GMT

    [ https://issues.apache.org/jira/browse/QPIDJMS-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14628328#comment-14628328
] 

Robbie Gemmell commented on QPIDJMS-86:
---------------------------------------

Hi Alex,

Its possible that may be the case with e.g Openwire (ActiveMQ's native protocol) consumers,
I'm afraid I'm not familiar enough with those bits to know. As above though it isn't the case
with AMQP consumers since it is always the receivers that control how much credit (if any)
the senders are given at a particular time.

Robbie

> AMQP 1.0 prefetch policy set to 0 by the broker results in no messages processed
> --------------------------------------------------------------------------------
>
>                 Key: QPIDJMS-86
>                 URL: https://issues.apache.org/jira/browse/QPIDJMS-86
>             Project: Qpid JMS
>          Issue Type: Bug
>          Components: qpid-jms-client
>    Affects Versions: 0.3.0
>            Reporter: Alex Plischke
>         Attachments: Screen Shot 2015-07-15 at 9.37.24 AM.png
>
>
> My broker's default prefetch policy is set to 0 (using ActiveMQ).
> When my queue consumer connects to the broker, the broker reports that the consumer has
indeed a prefetch of 0.
> The qpid client however, just uses the defaults defined in the JmsPrefetchPolicy class
(ergo, 1000 for the queue).
> So when the qpid client tries to decide whether it needs to poll or not in JmsMessageConsumer...
> {noformat}
>     protected void sendPullCommand(long timeout) throws JMSException {
>         if (messageQueue.isEmpty() && (getPrefetchSize() == 0 || isBrowser()))
{
>             connection.pull(getConsumerId(), timeout);
>         }
>     }
> {noformat}
> ... the if condition will be false, since the prefetch size returned here is 1000. Qpid
will therefore not poll and the broker not push either, resulting in no messages processed.
> My current workaround is that I have to set the prefetch size on the client as well.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message