[Zope] Mysterious Database Error

Dieter Maurer dieter at handshake.de
Thu May 13 16:49:21 EDT 2004


Asad Habib wrote at 2004-5-13 13:34 -0400:
>Hello. Thanks for your input. All I am doing is inserting a record into
>a table and as far as I know, this is not considered to be a transaction.
>A transaction would consist of multiple SQL statements whose execution
>would either be successsfull or unsuccessfull(hence the need to either
>commit or rollback). The funny thing is that I can insert a record using
>this same ZSQL method while attempting to test it via the ZMI. However,
>when called from a DTML method, the NotSupportedError still occurs.
>Suggestions anyone?

This indicates some error during the DTML processing.
This errors raises an exception. This triggers that Zope
want to abort its transaction which aborts the transactions
in all connections. And one of these connections, the MySQL connection,
raises a secondary error informing about the impossible to abort
the transaction.

What you see here is an impedance mismatch between Zope and MySQL:

  Zope has a transaction concept and it wants to perform
  all actions during a request in a single transaction:
  ZODB modifications, relational database modifications.

  However, MySQL cannot fulfill its responsibilities
  in the Zope framework.

As I already suggested:

  *  either use "innodb" tables (which should have transactional behaviour
     (according to documentation))

  *  or disable the error report (telling the connection, it should
     behave non-transactional without warning).

-- 
Dieter



More information about the Zope mailing list