Re: [ZODB-Dev] [ZEO] Storage error with big transactions.
--On 13. Februar 2007 14:31:57 -0500 Tim Peters [EMAIL PROTECTED] wrote: Under the covers someone is trying to invalidate a current ZEO cache entry, and the ZEO cache is complaining because it doesn't believe it /has/ current data (assert o is not None). Best guess for why it doesn't have it is that it silently refused to add current data to begin with, because the object pickle was bigger than the size of the disk file allocated for the ZEO cache. Offhand I don't recall that this situation is tested, so it's likely to fail in some way. One way to check: configure the ZEO cache file to be reasonably bigger than the size of `data = '*'*1`. If the problem goes away then, that's the cause ;-) You're right (as always). Increasing the cache size makes the problem disappear. I created a bug report for this issue: http://www.zope.org/Collectors/Zope/2279 -aj pgpXTOiewuXOI.pgp Description: PGP signature ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Making use of the zodb transaction framework outside of zodb?
Petra Chong wrote at 2007-2-13 18:27 -: ... In the docs I have read that it is possible for non-zodb apps to plug into the transaction framework. However, I am unable to find any specifics as to how to do this. What I'd like to do is this: 1. Have my app import transaction 2. When transaction.commit() is called from my app, have other things be notified by that. Ages ago, I found a documentation about the ZODB that details its transaction handling. I have remembered the essential facts but forgot where I have found the documentation. With your favorite search engine, you might be able to find it Alternatively, you can look at the source code for transaction._transaction.Transaction.commit or use Zope's shared.DC.ZRDB.TM.TM (the TM stands for Transaction Manager). The TM class is used to interface Zope's relational database adapters to the transaction system. To see how TM might be used, you can look at the implementation of a Zope database adapter. The TM use is traditionally found in a file called db.py ((almost) all adapters seem to have been copied from a common ancestor and then modified), e.g. ZPsycopaDA/db.py. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Exception when closing database
Arve Knudsen wrote at 2007-2-14 16:34 +0100: I sometimes receive an exception when closing a ZODB, due to it trying to remove a lock file which doesn't exist. Given the backtrace can you tell me whether this is something which should be rectified in ZODB? I suspect the problem lies in the fact that the database is closed from atexit, maybe ZODB has already registered some kind of cleanup from atexit? Have you registered a close function for your storage, too? The API is a bit inconsitent: While you open both a storage and a DB, the DB.close() implicitly closes the storage as well. Thus, if you have registered a storage.close, the DB.close() might find the storage already closed and get an error as you reported. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Making use of the zodb transaction framework outside of zodb?
Hi, Am Mittwoch, den 14.02.2007, 23:05 +0100 schrieb Dieter Maurer: Petra Chong wrote at 2007-2-13 18:27 -: ... In the docs I have read that it is possible for non-zodb apps to plug into the transaction framework. However, I am unable to find any specifics as to how to do this. What I'd like to do is this: 1. Have my app import transaction 2. When transaction.commit() is called from my app, have other things be notified by that. Ages ago, I found a documentation about the ZODB that details its transaction handling. I have remembered the essential facts but forgot where I have found the documentation. With your favorite search engine, you might be able to find it Alternatively, you can look at the source code for transaction._transaction.Transaction.commit or use Zope's shared.DC.ZRDB.TM.TM (the TM stands for Transaction Manager). Which reminds me of a nice exercise that I discovered with a colleage: ZODB currently supports two (old/new) styles of the two-phase-commit for backwards-compatibility. The whole code is much harder to understand because of the support of the two versions of the TPC protocol. Just FYI and maybe someone thinks it might be a good idea to clean up too. My current todo list is way too long, but I'd put it in the collector if it's a worthwhile thing. Christian -- gocept gmbh co. kg - forsterstraße 29 - 06112 halle/saale - germany www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 - fax +49 345 122 9889 1 - zope and plone consulting and development signature.asc Description: Dies ist ein digital signierter Nachrichtenteil ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev