[
https://issues.apache.org/jira/browse/AMQ-4337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish updated AMQ-4337:
------------------------------
Priority: Minor (was: Major)
> Messages with AMQ_SCHEDULED_DELAY do not respect transactions
> -------------------------------------------------------------
>
> Key: AMQ-4337
> URL: https://issues.apache.org/jira/browse/AMQ-4337
> Project: ActiveMQ
> Issue Type: Improvement
> Reporter: Remo Gloor
> Priority: Minor
>
> Currently delayed messages are delivered even if the session it was sent in
> is rolled back. According to
> http://activemq.2283324.n4.nabble.com/AMQ-SCHEDULED-DELAY-and-transactional-boundaries-td4658339.html
> this is because the message can be delivered far in the future and the
> transaction would take to long.
> I don't agree with that argument. The transaction can be short living. It is
> only the enqueuing of the delayed message in the broker that has to be part
> of the transaction. The delivery to the consumer is not part of the
> transaction anymore.
> e.g. consider the scenario in the following preudo code:
> while (application_runs)
> try{
> msg = session.Receive();
> session.SendDelayed(anotherMessage);
> if (random(5) != 0) throw exception;
> session.Commit();
> } catch { session.Rollback; }
> Currently a delayed message is sent for each retry. So we will get a lot more
> messages in the future as we would expect. When delayed messages would
> respect transactions just the successful ones would be enqueued. The other
> ones are rolledback with the transaction.
--
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