[egenix-users] mxODBC Zope DA and Linux Zope -- pooling not
increasing
David Krosel
david.krosel at maxxian.com
Tue Dec 19 17:04:25 CET 2006
Hello Marc-Andre,
We are using unixODBC and unfortunately, the "Threading" option is not being
used in our odbcinst.ini.
This is very good news and I will try it immediately.
Thank you for your response.
Regards,
David
----- Original Message -----
From: "M.-A. Lemburg" <mal at egenix.com>
To: "David Krosel" <david.krosel at maxxian.com>
Cc: <egenix-users at egenix.com>
Sent: Tuesday, December 19, 2006 4:21 PM
Subject: Re: [egenix-users] mxODBC Zope DA and Linux Zope -- pooling not
increasing
> On 2006-12-15 17:34, David Krosel wrote:
>> Hello,
>>
>> Under stress testing running 20 web clients concurrently, the number of
>> "Physical connections" doesn't go higher than "1". By observations, it is
>> clear that multiple requests are pending since only one connection is
>> open to the database.
>>
>> My configuration is as follows:
>>
>> mxODBC Zope DA 1.0.10
>> Zope 2.7.7
>> Pool size = 21
>> Number Zope threads = 21
>> Linux Centos 4.3
>>
>> The ODBC is configured for a local MySql 4.1.x
>>
>> Can you help?
>
> Do you see any error messages in the log file or the shell
> (when running Zope manually from the command line) ?
>
> It is possible that the ODBC driver doesn't allow multiple
> connections to the database for some reason.
>
> Which ODBC manager are you using ?
>
> If it's unixODBC, then you might be experiencing the following
> problem with unixODBC:
>
> """
> When using mxODBC Zope DA with the unixODBC ODBC manager providing
> the connection to the ODBC driver, Zope appears to hang whenever a
> long running query is initiated on one of the Zope connections.
>
> This is due to the unixODBC manager applying a very restrictive
> thread isolation protection which basically serializes all requests
> to the drivers on a per process scope.
>
> For references, have a look at these links:
>
> http://www.unixodbc.org/odbcinst.html
> http://archives.postgresql.org/pgsql-odbc/2004-03/msg00060.php
>
> These are the available unixODBC Thread Levels (taken from the
> __handle.c file of unixODBC):
>
> * Level 0 - Only the DM internal structures are protected
> * the driver is assumed to take care of it's self
> *
> * Level 1 - The driver is protected down to the statement level
> * each statement will be protected, and the same for the connect
> * level for connect functions, note that descriptors are considered
> * equal to statements when it comes to thread protection.
> *
> * Level 2 - The driver is protected at the connection level. only
> * one thread can be in a particular driver at one time
> *
> * Level 3 - The driver is protected at the env level, only one thing
> * at a time.
> *
> * By default the driver open connections with a lock level of 3,
> * this can be changed by adding the line
> *
> * Threading = N
> *
> * to the driver entry in odbcinst.ini, where N is the locking level
> * (0-3)
>
> Fortunately, the fix is easy: just add the line
>
> Threading = 0
>
> to the section in odbcinst.ini for the driver you are
> using, e.g.
>
> [PostgreSQL]
> Description = PostgreSQL driver for Linux & Win32
> Driver = /usr/local/lib/libodbcpsql.so
> Setup = /usr/local/lib/libodbcpsqlS.so
> Threading = 0
>
> Note that "Threading = 0" is normally only allowed for ODBC drivers
> which are fully multi-threaded, however, since the mxODBC Zope DA
> already provides the necessary thread protection at the connection
> level, you can get some added performance by disabling the additional
> protection in the unixODBC manager.
>
> The iODBC manager does not seem to have this problem. So this
> is a second alternative to solve the problem.
> """
>
> --
> Marc-Andre Lemburg
> eGenix.com
>
> Professional Python Services directly from the Source (#1, Dec 19 2006)
>>>> Python/Zope Consulting and Support ... http://www.egenix.com/
>>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
> ________________________________________________________________________
>
> ::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
More information about the egenix-users
mailing list