[
https://issues.apache.org/jira/browse/QPID-3602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151404#comment-13151404
]
[email protected] commented on QPID-3602:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2853/
-----------------------------------------------------------
Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, Keith Wall,
and Oleksandr Rudyy.
Summary
-------
This patch is for both QPID-3612 & QPID-3613. Please note QPID-3602 is the main
JIRA for credit related issues.
Message completions are now handled independent of the Message acks.
1. The consumer now keeps track of credits on a per subscription basis using
the RangeSet "completions" and sends completions,
if the unCompletedCount >= _capacity/2
For capacity = 0 or capacity = 1, we use the flag "sendCompleteForEveryMsg"
to send a completion for each message.
2. Cleanedup the acking process in AMQSession_0_10.java to make acking
independent of completions.
2.1 For AUTO_ACK we send an ack after every message.
2.1 For DUPS_OK we ack if,
maxAckDelay <= 0 OR
unackedCount >= ackBatchingThreshold, where ackBatchingThreshold ==
prefetch/2
This addresses bug QPID-3602.
https://issues.apache.org/jira/browse/QPID-3602
Diffs
-----
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
1202779
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
1202779
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java
1202779
Diff: https://reviews.apache.org/r/2853/diff
Testing
-------
Added two basic test cases (transacted and client-ack modes) to ensure
completions are sent in time to ensure credits don't dry up.
Thanks,
rajith
> Fix Consumer message credit issues in 0-10 codepath
> ---------------------------------------------------
>
> Key: QPID-3602
> URL: https://issues.apache.org/jira/browse/QPID-3602
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: 0.14
> Reporter: Rajith Attapattu
> Assignee: Rajith Attapattu
> Fix For: 0.15
>
>
> Currently there are several issues related to message credits.
> 1. QPID-2604 - Getting more messages than required by the prefetch value.
> 2. QPID-3604 - If connection is started and stopped, the client *may* get
> more messages than required by the prefetch value.
> 3. QPID-3562 - Prefetch=1 case doesn't work properly.
> 4. Prefetch-0 case doesn't work properly (well completely broken).
> 5. QPID-3612 -Message credits are affected by Command Completions and not
> message-acks. However these two are intertwined in the logic causing some
> issues. For example when in client-ack mode or using transactions, if the
> client has exhausted the credits, but is waiting for more messages to come
> before it acks or commits a transaction, then the client will appear hung
> (This issue is currently masked due to some of the above bugs).
> 6. QPID-3613 Credit should be managed on a per subscription basis than on a
> per session basis.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]