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

Reply via email to