Steven Shaw (JIRA) wrote:
Transactions not atomic in the face of fail over ------------------------------------------------Key: QPID-142 URL: http://issues.apache.org/jira/browse/QPID-142 Project: Qpid Issue Type: Bug Components: Dot Net Client, Java Client Reporter: Steven Shaw When some messages are already published in a transaction when fail over occurs, those messages will be lost. Options seem to be: 1. Remembering and replaying sent messages (in a Tx) 2. Aborting any in-flight transactions on failover 1 could be costly in terms of memory for applications using transaction. 2 could be annoying for applications requiring the use of retry loops (however these retry loops are often necessary in any case and can sometimes be injected via AOP). I asked Gordon's opinion and he favored (2) as well. In addition to this we need to ensure that the broker issues a Channel.Close when it gets a Tx.Commit without a prior Tx.Select. It's not clear what error code should be used. Invalid-command (503) looks close but is a hard-error. Check the amqp-dev list for discussion on this topic.
I think option 2 is better as this issue should be able to be delt with better, with the new transport proposal released with the 0-9 spec next month.
Carl.
