Sebastian, The whole point is that the System.Transactions.Transaction commits for everything or roll back for everything. There is no inconsistency.
On Sat, Apr 3, 2010 at 1:01 PM, Sebastien Crocquesel <[email protected]>wrote: > It won't change anything. Say that processing your message involve a > database with linq or nhibernate + other transactional things. Maybe it sent > another message or the transactionscope is filled with other things. > Message is completed the transaction scope is commited and dispose making > the new message to be sent in the queue and the others transactionals things > to be commited, but my nhibernate session or linq datacontext failed. > That state is inconsistent and the message must not be retried or you'll > end up with having things twice but nothing in the database either. > > We cannot create a transactionscope that will encapsulate the one which is > created in the ReceiveMessageInTransaction because MessageArrived event is > raised after. > > Maybe we're missing an event like MessageCompleting that would be raised > before tx.Complete(); Or make the messageCompleted be raised before. > As far as I understand, call order are like this : > > 1/ Begin tran > 2/ raise MessageArrived > 3/ call Consumer > 4/ Commit tran > 5/ raise MessageCompleted > > There is not way to be both before begin tran and after commit tran or to > be both after begin tran and before commit tran. > > sébastien > > > 2010/4/1 Jason Meckley <[email protected]> > > set the numberOfRetries attribute on the bus configuration node. >> >> On Apr 1, 11:46 am, Sebastien Crocquesel <[email protected]> wrote: >> > With a linq datacontext, my unit of work message module is submitting >> > changes in response to the ITransport.MessageProcessingCompleted event. >> > I though it was a good way to do so but an exception occured during >> > processing the event and my data were not affected but the message is >> > discarded and exception silently catch with an error log message : "An >> error >> > occured when raising the MessageCompleted event, the error will NOT >> affect >> > the message processing". >> > >> > Where do you end your session or submitchanges so that if an error >> occured >> > due to a database failure, message will be replayed latter. Am i missing >> > something ? >> > >> > sébastien >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Rhino Tools Dev" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<rhino-tools-dev%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/rhino-tools-dev?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Rhino Tools Dev" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rhino-tools-dev%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rhino-tools-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en.
