[egenix-users] Zope shutdown after "Could not rollback the transaction" error

M.-A. Lemburg mal at egenix.com
Thu Jan 18 16:16:43 CET 2007


On 2007-01-18 16:02, Nico Grubert wrote:
> Dear list members,
> 
> From time to time I get this error:
> 
> eGenix mxODBC Zope DA: WARNING:
> <Products.mxODBCZopeDA.ZopeDA.DatabaseConnection "DSN=myTestDB" thread
> 1082132800/1082132800 at 0x2aaaac7a4a70> could not rollback the
> transaction - the data source does not support transactions; this may
> result in data inconsistencies !
> 
> A few seconds later, after I got this error, Zope shuts down automatically.
> I see this error in the shell if I have started my Zope using:
>   /zope_instance/bin/runzope
> 
> Is there a way to see a more detailed error message?
> 
> The error results from calling a Zope "ZSQL method" that just makes a
> simple "SELECT .." SQL query so I am wondering why mxODBCZopeDA wants to
> make a rollback.
> 
> My setup:
>  + 64-Bit Suse Linux 10.1 Professional
>  + mxODBCZopeDA 1.0.10
>  + Zope 2.9.6.
>  + Python 2.4.3.
>  + ODBC Source: Filemaker 8 Advanced Server on a Windows2003 Server
>  + Easysoft ODBC-ODBC Bridge which connects my Linux machine to the
>    Windows2003 Server

That's a strange error message since AFAIK Filemaker does support
transactions. The fact that Zope shuts down may hint to a core dump
in the ODBC driver you are using. Since the ODBC driver is loaded
into the Zope process as shared library, a core dump will have
the effect of shutting down Zope itself as a result.

In order to get more detailed information, you'd have to turn
on ODBC level logging in the ODBC manager you are using
(probably unixODBC).

In order to enable logging at the ODBC driver manager level,
please follow these instructions:


1. edit the odbc.ini file that defines the data source
   you are using (usually /etc/odbc.ini or ~/.odbc.ini)

2. add two trace options to the data source in question:

[MyDataSourceName]
Trace = On
TraceFile = /tmp/odbc.log
...

3. restart Python and run a query on the connection

You should then see the /tmp/odbc.log file fill up with
ODBC call trace messages. Error messages from the ODBC
driver should also appear in this file.

In some cases you also have to edit the file
/etc/odbcinst.ini (or ~/.odbcinst.ini) and add a section:

[ODBC]
Trace    = On
TraceFile= /tmp/odbc.log

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jan 18 2007)
>>> 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