[ 
https://issues.apache.org/jira/browse/QPID-3357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Justin Ross updated QPID-3357:
------------------------------

    Assignee: Ken Giusti
    
> Broker should purge more aggressively before invoking queue limit policy
> ------------------------------------------------------------------------
>
>                 Key: QPID-3357
>                 URL: https://issues.apache.org/jira/browse/QPID-3357
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>            Reporter: Andy Goldstein
>            Assignee: Ken Giusti
>
> When enqueuing a message, the broker checks the message/byte count in the 
> queue and ensures the new message will not violate the queue's limits and 
> limit policy (reject, ring, etc).  It does not take into account messages 
> still in the queue that have expired, which could result in a message being 
> dropped or the oldest message being removed unnecessarily.  For example, 
> create a queue with a max count of 2 messages.  Send 1 message with no ttl.  
> Send a 2nd message with a small ttl e.g. 1 second.  Wait longer then the ttl 
> so the 2nd message expires.  Try to send a 3rd message to the queue.  If the 
> queue policy is reject, you will get an exception that the queue is full.  If 
> the queue policy is ring, it will discard the 1st message (no ttl so 
> unexpired) to make room for the new message.
> One possible solution would be to try to purge expired messages more 
> aggressively, e.g. when an enqueue would exceed the limit, try to purge any 
> expired messages, and then re-check the limit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to