Re: [Zope] Reconnection session_data to own Session.fs storage
Dieter Maurer wrote: Allen Schmidt Sr. wrote at 2009-8-4 13:45 -0400: ... In the ZMI, there are: /session_folder/ ( a regular folder ) session_data ( Transient Object Container ) /session_data_manager ( Session Data Manager ) All the parts seem right but its not workingsession writes wind up as anonymous transactions in the main ZODB. Any ideas? Verify that "session_folder" is a mount point and not a regular folder. This is not trivial as a mount point, once mounted, tries hard to become the mounted object (this happens in its "__of__" method). You must avoid acquisition to check that it is indeed a mount point. One way is to use "app._p_activate(); app.__dict__['session_folder']". This must return a mount point, not a folder. I verified using your process that it is indeed just a folder. So I deleted the session_folder in the root and then tried to add a ZODB mount point in the root and it showed the session_folder was ready to be created. I made sure that option was checked and clicked Ok. It reloaded the root folder and the new session_folder was there, but it still seems like it is just a regular folder and does not identify itself as a mount point. I also added the session_data object into that folder as a Transient Object Container as it was before. Does the session_data_manager that points to that session_data folder also have to be removed in this process? Could be holding it up somehow? ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Reconnection session_data to own Session.fs storage
I verified using your process that it is indeed just a folder. So I deleted the session_folder in the root and then tried to add a ZODB mount point in the root and it showed the session_folder was ready to be created. I made sure that option was checked and clicked Ok. It reloaded the root folder and the new session_folder was there, but it still seems like it is just a regular folder and does not identify itself as a mount point. I also added the session_data object into that folder as a Transient Object Container as it was before. Does the session_data_manager that points to that session_data folder also have to be removed in this process? Could be holding it up somehow? No. The session_data manager contains only the path to the session data. It has nothing to do where the sessions are maintained. You are sure that you have verified via app.__dict__['temp_folder'] that temp_folder is a MountPoint (and have seen it as a normal Folder)? If you access temp_folder normally, it will always look like a normal folder (if mounting was successful). If you have verified correctly, then some magic must have changed your mount point back again to a normal Folder. I do not know such magic -- therefore, I doubt that your verification was correct. But, you may put your session storage at a different place (say session_storage) and reconfigure the session_data_manager to point to this new place. This way, no magic should be able to modify your mount point. -- Dieter ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Reconnection session_data to own Session.fs storage
Dieter Maurer wrote: Allen Schmidt Sr. wrote at 2009-3-5 10:34 -0500: Somehow, and not sure how, our session_data objects got deleted. No one admits doing it so no idea what happened. I recreated the objects with the same IDs and even setup the ZODB mount point to point to the right parts. But our SESSION calls won't write the the separate Session.fs storage and it writes every SESION usage to our main Data.fs as an anon transaction. We are on 2.8.10 running ZEO on one server and 5 zope clients on two other servers. The Session.fs file sits along with the Data.fs file but never gets used. Any idea how to reconnect the parts again? The so called session_data_manager tells Zope where the session_data is located. Apparently, your session_data_manager does not look at the place of your mount point or your mount point does not work/is not active. First verify the session_data_manager configuration (this easy -- look in the ZMI). If this is correct, verify the mount point. That is not so easy. The best way is to start an interactive Python interpreter (bin/zopectl debug on *nix). Then use folder = app.unrestrictedTraverse('path_to_folder_containing_the_mount') folder._p_activate() # load the folder folder.__dict__['Id_of_your_mount_point'] You should see an ZODBMountPoint (or something along this lines). If you really see a mount point, verify its configuration (that's easy again -- thus, you can do that before the more difficult step): is the mount point really in the storage you want? I completely missed this response. Still having this issue so going back over this again. Can you identify which things and where for the items above? path_to_folder_containing_the_mount and ID_of_your_mount_point This is in the zope.conf: zodb_db session mount-point /session_folder zeoclient server blahblah.com: storage session name session client session var $INSTANCE/var /zeoclient /zodb_db This is in the zeo.conf: filestorage session path $INSTANCE/var/Session.fs /filestorage In the ZMI, there are: /session_folder/ ( a regular folder ) session_data ( Transient Object Container ) /session_data_manager ( Session Data Manager ) All the parts seem right but its not workingsession writes wind up as anonymous transactions in the main ZODB. Any ideas? Thanks! -Allen ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Reconnection session_data to own Session.fs storage
Allen Schmidt Sr. wrote at 2009-8-4 13:45 -0400: ... In the ZMI, there are: /session_folder/ ( a regular folder ) session_data ( Transient Object Container ) /session_data_manager ( Session Data Manager ) All the parts seem right but its not workingsession writes wind up as anonymous transactions in the main ZODB. Any ideas? Verify that session_folder is a mount point and not a regular folder. This is not trivial as a mount point, once mounted, tries hard to become the mounted object (this happens in its __of__ method). You must avoid acquisition to check that it is indeed a mount point. One way is to use app._p_activate(); app.__dict__['session_folder']. This must return a mount point, not a folder. -- Dieter ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Reconnection session_data to own Session.fs storage
I ran the debug to verify the mount point and got this: folder.__dict__['session_data'] TransientObjectContainer at session_data And in the session_folder object in the root, the session_data objects shows as a TransientObjectContainer and not a ZODB Mount Point. Dieter Maurer wrote: Allen Schmidt Sr. wrote at 2009-3-5 10:34 -0500: Somehow, and not sure how, our session_data objects got deleted. No one admits doing it so no idea what happened. I recreated the objects with the same IDs and even setup the ZODB mount point to point to the right parts. But our SESSION calls won't write the the separate Session.fs storage and it writes every SESION usage to our main Data.fs as an anon transaction. We are on 2.8.10 running ZEO on one server and 5 zope clients on two other servers. The Session.fs file sits along with the Data.fs file but never gets used. Any idea how to reconnect the parts again? The so called session_data_manager tells Zope where the session_data is located. Apparently, your session_data_manager does not look at the place of your mount point or your mount point does not work/is not active. First verify the session_data_manager configuration (this easy -- look in the ZMI). If this is correct, verify the mount point. That is not so easy. The best way is to start an interactive Python interpreter (bin/zopectl debug on *nix). Then use folder = app.unrestrictedTraverse('path_to_folder_containing_the_mount') folder._p_activate() # load the folder folder.__dict__['Id_of_your_mount_point'] You should see an ZODBMountPoint (or something along this lines). If you really see a mount point, verify its configuration (that's easy again -- thus, you can do that before the more difficult step): is the mount point really in the storage you want? ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Reconnection session_data to own Session.fs storage
Allen Schmidt Sr. wrote at 2009-3-5 10:34 -0500: Somehow, and not sure how, our session_data objects got deleted. No one admits doing it so no idea what happened. I recreated the objects with the same IDs and even setup the ZODB mount point to point to the right parts. But our SESSION calls won't write the the separate Session.fs storage and it writes every SESION usage to our main Data.fs as an anon transaction. We are on 2.8.10 running ZEO on one server and 5 zope clients on two other servers. The Session.fs file sits along with the Data.fs file but never gets used. Any idea how to reconnect the parts again? The so called session_data_manager tells Zope where the session_data is located. Apparently, your session_data_manager does not look at the place of your mount point or your mount point does not work/is not active. First verify the session_data_manager configuration (this easy -- look in the ZMI). If this is correct, verify the mount point. That is not so easy. The best way is to start an interactive Python interpreter (bin/zopectl debug on *nix). Then use folder = app.unrestrictedTraverse('path_to_folder_containing_the_mount') folder._p_activate() # load the folder folder.__dict__['Id_of_your_mount_point'] You should see an ZODBMountPoint (or something along this lines). If you really see a mount point, verify its configuration (that's easy again -- thus, you can do that before the more difficult step): is the mount point really in the storage you want? -- Dieter ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )