We are using Plone and Zope against a legacy Ingres database, and I found a similar problem
using the adapter provided. I found that the C library modules (open source) actually contained calls to make the adapter work as we wanted, much like our other web interfaces which maintain the db and user permissions info as a "connection", but close the actual query after each. I had to modify the Python Zope product to set "autocommit" and call the desired close in order to get the behaviour we were looking for -- keeping the connection, but releasing each session so that the DB backend does not register an active session between actual queries. That's open source. Code terminology for "re-write it". ----- Original Message ----- From: Jon Emmons <[EMAIL PROTECTED]> Date: Wednesday, June 4, 2008 8:50 Subject: RE: [Zope] Multithreading sessions To: 'Dieter Maurer' <[EMAIL PROTECTED]> Cc: zope@zope.org > Dieter, > > Thanks for this input. Your comments here turned out to be > dead on. The > problem is the GIL. > > We are currently running Sybase databases using the python > Sybase-0.37 > module for data access. > > This module will set the GIL. So if the query takes any > time at all, every > other session will freeze. It does release it when the > connection is > closed, but if the query takes awhile it effectively denies > service to every > other session. > > I am just learning about this, but my initial inquiries suggest > that the > only way to achieve true concurrency using a language like > python is to > launch multiple interpreters. > > I don't yet have the solution to my problem, but at least now I > know what > the problem is, and that is half the battle. > > Thanks again, and thanks to everyone's input, it has helped immensely. > > Jon Emmons > > -----Original Message----- > From: Dieter Maurer [mailto:[EMAIL PROTECTED] > Sent: Wednesday, May 28, 2008 2:27 PM > To: Jon Emmons > Cc: zope@zope.org > Subject: Re: [Zope] Multithreading sessions > > Jon Emmons wrote at 2008-5-23 08:58 -0400: > > ... > >I am running zope 2.9.4 and have observed that it will not > simultaneously>serve pages to my users. > > Usually, it does. > > I have seen database adapter packages (an old "psycopg" version, > to be > precise) that forgot to release the GIL for some operations. > Then Zope freezes while these operations are executed. > > > A surprising report of a similar kind was: while Zope's embedded > profiler is in use, Zope effectively runs in single thread mode (such > that other threads do not distort the timing results). > Probably not your problem ... but who knows. > > > Further potential reasons (for almost surely not responsible for your > current problem: > > Expensive operations implemented in "C" (such as > operations on huge > strings) > > Creating excessive amounts of objects (causing lots > of generation 2 garbage collections which hold the GIL) > > > > -- > 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 ) >
_______________________________________________ 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 )