[Zope-dev] Zope/Python Object Persistence

Tres Seaver tseaver@palladion.com
Tue, 02 May 2000 09:15:02 -0500


"Adam Pawliuk" <apawliuk@aui.ca> wrote:
> 
> This is a multi-part message in MIME format.

First, please *don't* post MIME/HTML to the list.  If you need to reference a
file too long to quote inline, upload it someplace (e.g., join www.zope.org and
put it in your member folder there) and post the URL.

> Is there a way that I can maintain persistent python objects in memory =
> through the Zope Server?
> 
> As a simple example if I create a counter in a python module and access =
> it through an external method, the module seems to get reloaded every so =
> often, so the counter will get reset. Can I avoid this? Basically I just =
> want to keep a persistent hashtable/Dictionary.
> 
> MODULE:
> *************************************************************
> __persist =3D {};
> __persist['count'] =3D 0;
> 
> def getNextCount():
>    __persist['count'] =3D int( __persist['count'] )+1
>    return __persist['count']
> ************************************************************
> External method in DTML:
> 
> <dtml-var "getNextCount()">
> 
> thanks in advance

You _don't_ want to store such a volatile object in the ZODB -- the tradeoffs of
its transaction/undo machinery are almost completely opposed to such usage. 
What you need is to persist the value to the filesystem (using FSSession or a
workalike) or to a relational backend (using SQLSession).

On the whole, I would recommend checking out FSSession on the products page:

  http://www.zope.org/Products

Tres.
-- 
=========================================================
Tres Seaver  tseaver@digicool.com   tseaver@palladion.com