[egenix-users] Critical: ReadConflict Error with mxODBCZopeDA

M.-A. Lemburg mal at egenix.com
Fri Dec 3 10:30:28 CET 2004


Igor Elbert wrote:
> ReadConflict errors in mxODBC keep popping up.
> As suggested we made sure that connection pooling is disabled in the ODBC
> manager and enabled in the mxODBC Zope DA.
> 
> The pool size is set to 12 which should be enough since we are testing with
> no more than 2 simultaneous users.
> 
> What is puzzling is that, judging by the traceback in my previous message,
> the read conflicts happen when calling
> Products.mxODBCZopeDA.ZopeDA.ZopeConnection. Why mxODBC DA stores volatile
> data in ZODB is beyond my understanding.
> It seems that the problem occurs only when "On demand" connection is
> enabled. In this case mxODBC DA unnecessary causes ZODB to grow.
 >
> To test this we created a Zope Folder containing mxODBC connection and a
> simple select ZSQL script that uses it. I run ZSQL many (20+) times and look
> at the Folder's Undo tab. It shows transactions that can be undone - data.fs
> grows.

If you use the on demand feature, the Zope DA will connect
to the database as necessary. The current connect state is
stored as non-volatile attribute and updated when the
object switches from "on demand" to "connected" state.
This is what you see as transaction on the object.

The situation gets complicated when multiple copies of the
connection object (one for each thread that the server is
running) switch into the connected state more or
less at the same time.

We have already added code to the DA that resolves these
apparent conflicts, so we'd like to track this down.

Until the problem is located, please switch off the on demand
feature and set the connection to connected.

> Please advise.
> 
> Thanks,
> Igor
> 
> 
> -----Original Message-----
> From: M.-A. Lemburg [mailto:mal at egenix.com]
> Sent: Tuesday, October 26, 2004 3:32 AM
> To: Igor Elbert
> Cc: egenix-users at egenix.com
> Subject: Re: [egenix-users] Critical: ReadConflict Error with
> mxODBCZopeDA
> 
> 
> Igor Elbert wrote:
> 
>>When testing mxODBCZopeDA we frequently encounter ReadConflict errors
>>related to mxODBCZopeDA.ZopeDA.ZopeConnection object. Traceback is:
>>
>>Traceback (most recent call last):
>>  File "..../lib/python\Shared\DC\ZRDB\DA.py", line 398, in __call__
>>    DB__=dbc()
>>  File "..../lib/python\ZODB\Connection.py", line 553, in setstate
>>    invalid = self._is_invalidated(obj)
>>  File "..../lib/python\ZODB\Connection.py", line 579, in _is_invalidated
>>    raise ReadConflictError(object=obj)
>>ReadConflictError: database read conflict error (oid 0000000000001bac,
> 
> class
> 
>>Products.mxODBCZopeDA.ZopeDA.ZopeConnection
>>)
>>
>>This causes Zope's DA to raise 'Not connected to a database' exception.
> 
> 
> Please make sure that you have connection pooling disabled in the
> ODBC manager and enabled in the mxODBC Zope DA. It may be necessary
> to set the pool size of the Zope DA to a higher value.
> 
> 
>>When user hits "reload" the problem disappears. It can not be a timeout
>>issues since the problem hits actively working users.
>>
>>Our environment is:
>>Zope Version  (Zope 2.6.2 (binary release, python 2.1, win32-x86), python
>>2.1.3, win32)
>>Python Version  2.1.3 (#35, Apr 8 2002, 17:47:50) [MSC 32 bit (Intel)]
>>System Platform  win32
>>Connection Information  Connected database: Microsoft SQL Server,
> 
> 08.00.0194
> 
>>ODBC driver: SQLSRV32.DLL, 03.80.0194
>>
>>Please help!
>>
>>Thank you,
>>Igor Elbert
>>
>>This email and any files transmitted with it are confidential and intended
> 
> solely for the use of the individual or entity to whom they are addressed.
> If you have received this email in error please notify the system manager.
> This message contains confidential information and is intended only for the
> individual named. If you are not the named addressee you should not
> disseminate, distribute or copy this e-mail.
> 
>>
>>_______________________________________________________________________
>>eGenix.com User Mailing List                     http://www.egenix.com/
>>http://lists.egenix.com/mailman/listinfo/egenix-users
> 
> 
> --
> Marc-Andre Lemburg
> eGenix.com
> 
> Professional Python Services directly from the Source  (#1, Oct 26 2004)
>  >>> 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 ! ::::
> 
> This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Dec 03 2004)
 >>> 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