[Zope] Re: [Zope-dev] Re: sessions in the presence of conflicts

David H bluepaul at earthlink.net
Tue Dec 20 00:02:48 EST 2005


Dennis Allison wrote:

>Chris McDonough identified a persistence problem with the routine(s) that 
>manage sessions variables.  (Thanks Chris)  I have put the correction in 
>place which resolved some (but not all) of the problems.
>
>There are still problems which are apparently due conflicts in accessing
>the session variables.  To minimize frequency of conflicts, I am rewriting
>several routines using Dieter's rules of the thumb (Thanks Dieter).
>
>One routine being modified is a Script(Python) that initializes a number
>of session variables.  I am collecting the session values in a dictionary
>and then use update to set their value, for example:
>
>	s = {}
>	s['alpha'] = 'a'
>	s['beta'] = 'b'
>	request['SESSION'].update(s)
>
>Is the persistence machinery smart enough to detect this as a change?  I
>suspect that it has to be flagged since the assignment won't be seen.  
>Usually this means setting the _p_changed=1 attribute, but it is not clear
>to me where to set it in this particular context.  
>
>
>
>
>
>
>  
>
Dennis,

Did you means request['SESSION']['someDictionary'].update(s)?
Anyway your idea seems correct - The SESSIONS chapter (at least on 
plope.com) addresses SESSION "staleness" and mutable objects.

1) someDict = SESSION['someDict']
2) someDict['someKey'] = "newValue"

But (2) does not guarentee that a subsequent lookups like:
SESSION['someDict'] will return "newValue".

But this WILL:
3) SESSION['someDict'] = someDict.

Which looks like your example.  How this connect to your primary issue:  
*conflicts* is not clear to me.  :-\

David




More information about the Zope mailing list