[
https://jira.jboss.org/jira/browse/JBMESSAGING-1416?page=com.atlassian.ji...
]
Howard Gao commented on JBMESSAGING-1416:
-----------------------------------------
So far we have implemented the strict ordering through message producer. The messaging
client can control the message ordering through creating ordering groups via the producer.
This is one way to do it however. Another way is by configuring a specific Queue to be an
ordering group Queue. Once thus configured, the queue destination becomes a ordering aware
destination -- meaning that any messages that are targeted at this queue will naturally
become ordered. This way will allow the users to get message ordering without coding.
Also there is another way to configure a connection factory to be ordering aware so that
any producer created from this factory will have message ordering capability. But that is
not so interesting to implement as it's actually similiar to directly programming on
message producers, which is already implemented.
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.CP06
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