-
1. Re: FIFO Ordering also if Rollback (Retry)?
timfox Nov 13, 2007 2:49 PM (in response to mclu)If you use a straight JBM consumer, and only have one consumer per queue, then order should be preserved on rollback.
However I don't think things are so simple with MDBs, since AS MDB layer maintains a buffer of messages ready to send to MDBs.
I would need to look into this further, but maybe would need changes outside JBM in the AS.
BTW the JMS spec does not require message order to be preserved after rollback. -
2. Re: FIFO Ordering also if Rollback (Retry)?
mclu Nov 14, 2007 4:22 AM (in response to mclu)Thx Tim!
I saw the Jira entry
http://jira.jboss.com/jira/browse/JBAS-2444
about the ordering issu and a Link to Messaging.
But anyway.
Does your explanaition mean that after a NACK/Transaction Rollback of my single JBM Consumer the Message is put back to the queue and is retried after the set time?
Example:
Lets assume message A, B and C in the Queue. All with same prio and a single consumer. Retry Interval is set to 20 seconds.
Needed behaviour
consume A (ok)
consume B (NOK/Transaction roll back)
consume B again after 20 sec (NOK/Transaction roll back)
consume B again after 20 sec (Now processing is OK- Commit)
consume C
The behaviour with my singleton MDB is currently:
consume A (ok)
consume B (NOK/Transaction roll back)
consume C
consume B again after 20 sec (NOK/Transaction roll back)
consume B again after 20 sec (Now processing is OK- Commit)
Greets
Markus -
3. Re: FIFO Ordering also if Rollback (Retry)?
timfox Nov 14, 2007 5:39 AM (in response to mclu)"mclu" wrote:
Thx Tim!
I saw the Jira entry
http://jira.jboss.com/jira/browse/JBAS-2444
about the ordering issu and a Link to Messaging.
Yes, that feature is implemented in JBM.
But anyway.
Does your explanaition mean that after a NACK/Transaction Rollback of my single JBM Consumer the Message is put back to the queue and is retried after the set time?
Example:
Lets assume message A, B and C in the Queue. All with same prio and a single consumer. Retry Interval is set to 20 seconds.
Ok, you didn't mention you were doing _delayed_ redelivery.
The ordering only applies to normal redelivery (i.e. not delayed).
Guaranteeing ordering with a delayed redelivery would be even more complicated since we'd have to block any other messages that arrived in the intervening period being delivered.
It is possible though - you could add a feature request if you like :) -
4. Re: FIFO Ordering also if Rollback (Retry)?
mclu Nov 14, 2007 7:11 AM (in response to mclu)Ok!
Requested ...
http://jira.jboss.com/jira/browse/JBMESSAGING-1151