[jboss-jira] [JBoss JIRA] Commented: (JBMESSAGING-1416) Provide complete message ordering

Tim Fox (JIRA) jira-events at lists.jboss.org
Tue Feb 3 02:41:44 EST 2009


    [ https://jira.jboss.org/jira/browse/JBMESSAGING-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12450758#action_12450758 ] 

Tim Fox commented on JBMESSAGING-1416:
--------------------------------------

Jay-

When we talk about guaranteeing delivery order we're talking about preserving the order of messages in the queue in all redelivery scenarios. The real use case behind this is the customer wants to guarantee that messages are processed in a strict sequence, even after rollback, failure etc.

We'll use the ordering group approach as outlined in the original description of this task.

In JBM 2.0 we'll also guarantee sequential processing across a cluster. This works by effectively forcing all messages with a particular value of ordering group to be processed by a particular consume on a particular node.

JBM 1.x doesn't support exclusive consumer in clustered mode as you know. So to get that to work on JBM 1.x you'd have to run in HA singleton mode (there's a JBM 1.x faq on singleton and exclusive consumer)

> Provide complete message ordering
> ---------------------------------
>
>                 Key: JBMESSAGING-1416
>                 URL: https://jira.jboss.org/jira/browse/JBMESSAGING-1416
>             Project: JBoss Messaging
>          Issue Type: Feature Request
>            Reporter: Tim Fox
>            Assignee: Howard Gao
>             Fix For: 1.4.0.SP3.CP07
>
>
> As per customer request we would like to introduce new functionality over and above the JMS ordering guarantees.
> The idea is that the user should be able to determine an "ordering group". This can be done by setting a reserved property on the message before sending.
> The ordering group can be pinned to the producer or just be some other arbitrary string.
> In order to guarantee strict ordering, even on rollback or in the presence of multiple consumers or with xa transactions, the queue needs to ensure that no more than one message with the value of ordering group is being delivered at any one time.
> When that message has been acked, or cancelled the next one can be delivered.
> This is of course will provide a performance penalty since we won't be able to do consumer buffering, but that's the price you pay if you want such a strict ordering guarantee.
> We can subclass our MessageQueue class to do this. The sub-classed class can maintain a map of ordering group-->boolean. Which will determine whether the queue is currently delivering any messages with that ordering group value. It will consult that map when delivering to decide whether it can deliver the next message.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list