[ic] InnoDB and autocommit

Philip S. Hempel interchange-users@icdevgroup.org
Sat May 24 02:32:01 2003


Please let me know if I am wrong in the following. I searched on Mysql's
web site for autocommmit and auto commit and came back the same results.
I thought that autocommit would be a configuration that could be set in
my.cnf but it looks as if it is not.

My understanding of the problem is as follows:

Since the addition of InnoDB (and transactions), this error occurs when
ever there is a failure during an order (that I have tested). 

I am not (nor do I profess to be) a Mysql guru, but from reading the
docs about transactions I think that that autocommit is to be done
in-line before a transact is started. I read that to support the
rollback states you need to pass autocommit = 0 at the start of each
session and commit is to be done when writes are desired or at the
completion of a session. I have not looked at the code for this but I
would have to believe that this should be trivial to fix.

One other thing is that when this error occurs I get this error kicked
out to the users web page instead of an actual error that had caused it.
In this case the error happened to be a failure on inputting a correct
CC number. Other errors that returned this happened to be failure to
connect to the card processor, or any error related to a failure with
the card purchase. 

I have not attempted to produce any other errors yet but I would suspect
that this also will be reproducible with other errors as well if there
is any writes pending to the DB. Temp fix is to not enable transactions
in the catalog.cfg.


partial error is...

rolling back inventory ...
rolling back userdb .....

rollback ineffective with AutoCommit enabled at
/usr/lib/interchange/Vend/Table/DBI.pm line 867

Similar error occurs on line 866 as well.

Thanks, love the ability to use transactions now, looks like it will
save on programming.

-- 
Philip S. Hempel

Give a man a fish and he will feed himself for a day.
Teach a man to fish and he will feed himself for a lifetime.

http://linuxhardcore.com/