I am still getting to know pyramid, so thank you very much for the clarification.
On Aug 4, 1:34 am, Mike Orr <[email protected]> wrote: > On Wed, Aug 3, 2011 at 2:49 PM, Bobby <[email protected]> wrote: > > Just wondering in what scenarios, one would use the transaction > > management package, pyramid_tm. I understand transactions as related > > to databases, but I can not think of the other intended situations > > where I should use this. > > The main use *is* databases. The only other use would be updating > other external resources. But most other resources (such as files or > network services) can't be rolled back. That doesn't usually matter > because updating the resource is the main purpose of the view and the > action is done near the end of it; the only thing after it is the > confirmation, and if the confirmation raises an error, that's not the > end of the world. The thing that's diffferent about database > transactions is that they may require multiple queries, and any one of > them may fail due to a referential integrity error, a string that's > too long, a type error, or a bad Unicode conversion. When that happens > you want to abort the entire transaction. In the case of other > external services, it's usually one command to do the whole thing, and > if it fails, your external data is still intact. In any case, the only > way it *can* participate in the transaction is if it *can* be rolled > back, and that's different for every type of resource. E.g., if a > file write fails because of a Unicode error, your fallback-handler > would have to restore the previous version of the file. > > -- > Mike Orr <[email protected]> -- You received this message because you are subscribed to the Google Groups "pylons-discuss" 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/pylons-discuss?hl=en.
