> -Are you telling me that I cannot roll back transactions unless I rip > out the middleware? There's no accessible command to the middleware > with TG2 as it ships?
I think you want then is import transaction transaction.doom() That will mark an ongoing transaction as failed, and provoke a rollback on middleware egress. > -How can I lock a table? I thought that was done by TG as well - that > each call to a controller made the database safe to access. Nope. And it wouldn't be desirable, because that would mean that the system would slowdown to a screeching halt, and automatic locking is likely to create deadlocks. > > -I actually do want to roll back *all* the previous transactions made > in that sessions. It was an all-or-nothing scenario. If there's a > single duplicate in that database, then I want to remove all of the > new entries added during this call. I would expect rollback() > wouldn't remove items already in the database from a previous call to > the controller (which ends with a commit() as I understand it, perhaps > in repoze.tm2 as you point out?) A transaction spans usually a request/response-cycle (this is the way the system is set up, you'd have to manually alter a lot of things to make it work different), and the very nature of transactions is that they are isolated from each other. So if you have ten calls to the action, and rollback the last, then you'd have still the work of the 9 successful ones in the DB. Diez --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" 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/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

