Adding transactional awareness to filesystem operations
I'm working on a CMS written in Zope, which uses static publishing. So we write files out to disk frequently. The transactional safety of Zope is nice (rolling back ZODB and database changes when an error happens). Unfortunately any disk operations we do don't get rolled back, causing inconsistencies. I figure I have to change our file-writing external methods so that there a commit/rollback, which isn't too hard. Having written these functions, how do I register them with Zope? How do I identify the separate, concurrent transactions? Thanks. -- Ian Bicking | ianb@colorstudy.com | http://blog.ianbicking.org
Ian Bicking wrote at 2003-10-31 13:33 -0600:
I'm working on a CMS written in Zope, which uses static publishing. So we write files out to disk frequently.
The transactional safety of Zope is nice (rolling back ZODB and database changes when an error happens). Unfortunately any disk operations we do don't get rolled back, causing inconsistencies. I figure I have to change our file-writing external methods so that there a commit/rollback, which isn't too hard. Having written these functions, how do I register them with Zope? How do I identify the separate, concurrent transactions?
Look at "Shared/DC/ZRDB/TM.py" ("TransactionManager") and how it is used in (e.g.) database adapters. -- Dieter
participants (2)
-
Dieter Maurer -
Ian Bicking