[Zope-dev] Re: Temporary Storage + Sessions + Versions: How?

Joachim Werner joe@iuveno-net.de
Tue, 15 Jan 2002 03:25:37 +0100


Hi!

I'm still having problems with the sessions. And I am beginning to think
that it's not me that is wrong, but the sessioning code has a major
conceptial flaw:

- I have an index_html method that calls an "initializeSession" method at
the beginning to initialize certain session variables. (Is there another way
to do this?)

- As the new sessioning code seems to be working within the transaction
machinery, the SESSION.set action causes the mere display of an index_html
page (that includes a session initialization method) to be added to the undo
logs

- If we use versions at the same time, the index_html method gets locked

- After leaving the version, my index_html method causes a version lock
error!

Strictly speaking, this behaviour might be correct, as the SESSION.set
indeed changes stuff. But it just isn't usable like that. How am I supposed
to use sessions together with versioning at all if I can't even temporarly
set session keys without getting them committed in a transaction?

I think that sessions have to act like a temporary, volatile namespace,
something like the REQUEST namespace, but persistent for the time of the
session. Chris, in your first response you said that there might be usage
patterns where people want sessions to be version-aware (or let's put it
more general: transaction-aware). But I think that is not quite true: If I
want something like that, I can use plain properties and store them in an
object.

Finally, let me state what I think is a fact: As of Zope 2.5 b3, you can
either use versions OR sessions. If you try to combine them, you'll get into
big trouble. This is a major bug, right?

Cheers

Joachim


----- Original Message -----
From: "Chris McDonough" <chrism@zope.com>
To: "Joachim Werner" <joe@iuveno-net.de>
Cc: <zope-dev@zope.org>
Sent: Monday, January 14, 2002 9:03 PM
Subject: Re: [Zope-dev] Re: Temporary Storage + Sessions + Versions: How?


> Joachim Werner wrote:
>
> > Thanks for the hint. I'll try using a versioning storage, though it
might be
> > rather inefficient I guess?
>
>
> Most (all?) versioning storages are also undoing so you'll be keeping
> undo data that will need to be packed away.  It's also hard to manage an
> undoing mounted storage (no way to pack one from the ZMI).  These were
> the reasons that TemporaryStorage was written in the first place, of
course.
>
> > I think if one is using two Zope features together that are both
scheduled
> > to be included for the 2.5 release, there should be no surprises like
that
> > one. With Core Session Tracking and Zope 2.4 versioning was fine. And
all of
> > a sudden, it didn't work any more. That CAN indeed be disturbing ... :-(
>
> Sorry you had problems.  Thanks for bringing it to my attention.
>
> - C
>
>