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

jirapos...@reviews.apache.org commented on QPID-3604:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2832/
-----------------------------------------------------------

(Updated 2012-01-09 19:27:40.039273)


Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, and 
Oleksandr Rudyy.


Changes
-------

This reworked patch addresses some of the concerns raised with the original 
patch.
The message-delivery lock is still taken to ensure that no message delivery is 
attempted while the 'stopping' is in progress.
IMO this is a nessacery evil.

The code now drains individual consumer queues as well as the dispatch queue 
(via syncDipatchQueue method) and releases both unacked and prefetched 
messages, while only the former being marked redelivered.
Also all of these transfers are being marked as completed to ensure credits 
don't dry up.


Summary
-------

This attempts to fix one of the issues related to the handling of Message 
credits. See QPID-3602 for an overall picture of the various issues.

This particular patch does the following.
1. When the connection is stopped, it sends message.stop() & releases all 
messages in the prefetch buffer.
2. It will also release any messages (that were in flight) that comes after the 
connection is stopped. (*)

(*) This interferes with the immediate_prefetch feature. However I don't know 
if immediate prefetch is really required in the 0-10 path.

As always comments, suggestions & criticisms are equally welcomed.


This addresses bug QPID-3604.
    https://issues.apache.org/jira/browse/QPID-3604


Diffs (updated)
-----

  
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
 1229312 
  
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
 1229312 
  
http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/prefetch/PrefetchBehaviourTest.java
 1229312 

Diff: https://reviews.apache.org/r/2832/diff


Testing
-------

See PrefetchBehaviourTest#testConnectionStop for more details.


Thanks,

rajith


                
> If the connection is stopped the client should release all it's messages in 
> the prefetch buffer
> -----------------------------------------------------------------------------------------------
>
>                 Key: QPID-3604
>                 URL: https://issues.apache.org/jira/browse/QPID-3604
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.14
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.15
>
>
> When connection.stop() is called, the JMS client should release all it's 
> messages in the prefetch buffer.
> For all we know, the connection may never be started (depending on 
> application logic) and those messages will be stuck on the prefetch buffer. 
> Releasing it will allow another consumer to get them (in the case of a shared 
> queue case).
> Another less severe but nevertheless an undesirable side affect of this is 
> the client getting more messages than required by the capacity or prefetch 
> arguments. See QPID-3602
> This may not be a big issue if the client is prefetching a few messages, but 
> if prefetching something like 5000 messages, this could potentially cause a 
> lethal spike in the clients memory usage.
> Even in low capacity/prefetch values, if the messages are large (say in the 
> mega byte range) this could potentially put the client under memory pressure.

--
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:dev-subscr...@qpid.apache.org

Reply via email to