You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Robbie Gemmell (Resolved) (JIRA)" <ji...@apache.org> on 2012/01/23 19:42:48 UTC

[jira] [Resolved] (QPID-3720) [Java Broker] Implement Message Grouping

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

Robbie Gemmell resolved QPID-3720.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.15

Closing out
                
> [Java Broker] Implement Message Grouping
> ----------------------------------------
>
>                 Key: QPID-3720
>                 URL: https://issues.apache.org/jira/browse/QPID-3720
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Broker
>            Reporter: Rob Godfrey
>            Assignee: Robbie Gemmell
>             Fix For: 0.15
>
>   Original Estimate: 6h
>          Time Spent: 6h
>  Remaining Estimate: 0h
>
> Implement message grouping on the Java Broker (similar in style to that implemented in the C++ broker in QPID-3346)
> The Java Broker supports two implementations of message grouping; an implementation with the same semantics as defined by the C++ broker, and an alternative implementation.
> In contrast to the C++ implementation the alternative implementation has the following properties:
> 1) Once a group has been assigned to a subscription, assign all further messages from the same group to the same group (whether or not all prior messages in the group have been acknowledged)
> 2) The absence of a value in the designated header field for grouping as treated as indicative of a lack of desire for the message to be grouped.  Messages with such a lack of a value will be distributed to any available consumer.
> Note that in general 1) is stricter than the condition that is enforced by the C++ broker - however in the case where a client cancels a subscription without first releasing/acknowledging all outstanding messages that have been delivered then you can get "out of order".
> In general the Java implementation is more liberal than the C++ implementation in that for both strategies available in the Java Broker in that
> a) Message grouping is allowed on priority queues, Conflation Queues (and Sorted Queues).  (However it has no effect on browsers... which means if you using a ConflationQueue as an LVQ by browsing it you cannot use groups).
> b) The broker allows for non string values for the group header
> In order to choose the alternative strategy (rather than the C++ style grouping semantics) the qpid.shared_msg_group argument should not be set on queue construction (whether grouping is enforced or not depends on whether the qpid.group_header_key argument is non-null), if qpid.shared_msg_group is set to "1" the C++ style grouping is used, otherwise the alternative implementation is used.

--
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-subscribe@qpid.apache.org