Alex Plischke created QPIDJMS-86:
------------------------------------

             Summary: AMQP 1.0 prefetch policy set by the broker is ignored
                 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


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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to