[egenix-users] Zope mxODBC DA - ConflictError Problem

M.-A. Lemburg mal at egenix.com
Sun Jul 16 17:44:38 CEST 2006


Philip Kilner wrote:
> Hi Guys,
> 
> I've been plagued by Conflict Errors for a few days now - initially, all
> relating to temporary storage. I've eliminated my use of the session to
> store user preferences, and although the temporary storage problem has
> been reduced or eliminated (early days yet) I am seeing these errors
> again, but now apparently related to the database adapter.
> 
> The application is a fairly simple RDBMS application, using Zope TTW
> techniques, running under the Enfold version of Plone against MS SQL
> Server 2K. All database access is via bog standard TTW ZSQL methods.
> 
> The errors I am now seeing are as follows: -
> 
> Traceback (innermost last):
>   Module Zope2.App.startup, line 167, in zpublisher_exception_hook
>   Module ZPublisher.Publish, line 120, in publish
>   Module Zope2.App.startup, line 233, in commit
>   Module transaction._manager, line 84, in commit
>   Module transaction._transaction, line 381, in commit
>   Module transaction._transaction, line 379, in commit
>   Module transaction._transaction, line 427, in _commitResources
>   Module ZODB.Connection, line 637, in tpc_vote
>   Module ZEO.ClientStorage, line 893, in tpc_vote
>   Module ZEO.ClientStorage, line 877, in _check_serials
> ConflictError: database conflict error (oid 0x6d2a, class
> Products.mxODBCZopeDA.ZopeDA.ZopeConnection, serial this txn started
> with 0x0366cf5837559b44 2006-07-14 12:40:12.969000, serial currently
> committed 0x0366cf586d44f300 2006-07-14 12:40:25.610000)
> 
> FWIW, I have recently upgraded from 1.0.9 to 1.0.10 of the DA.

Which Zope version are you running ?

Do you use connect-on-demand for the connection in question ?

> Has anyone else seen anything similar, or can anyone give me a pointer
> as to how to troubleshoot this?

The Zope DA can generate lots of debug output if needed:

To enable debugging output in the mxODBC Zope DA, you have two
options:

1. set the _debug global variable from within Zope, e.g. via
   an external method:

def enable_mxODBCZopeDA_debugging(container):
    from Products.mxODBCZopeDA import ZopeDA
    ZopeDA._debug = 3

   and call that method once after Zope startup. Note that
   the setting will not persist across Zope startups.

2. create a file ZopeDASettings.py in the directory
   Products/mxODBCZopeDA (the same directory where you
   find the ZopeDA.pyc file):

### Adjust ZopeDA global settings:
#
# Enable verbose debugging output:
_debug = 3
#
# Optionally enable leak testing (this let's the driver
# always return an empty result set and can be used to
# track connection related leaks)
_leak_testing = 0

   The mxODBC Zope DA will pick up this file upon
   restart of Zope and set the globals accordingly.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jul 16 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