Re: Problems with DBI transaction handling

From: "Nigel J(dot) Andrews" <nandrews(at)investsystems(dot)co(dot)uk>
To: Hans-Jürgen Schönig <hs(at)cybertec(dot)at>
Cc: pgsql-interfaces(at)postgresql(dot)org, rlippan(at)remotelinux(dot)com
Subject: Re: Problems with DBI transaction handling
Date: 2003-02-06 23:44:27
Message-ID: Pine.LNX.4.21.0302062334010.10564-100000@ponder.fairway2k.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

On Fri, 7 Feb 2003, Hans-Jürgen Schönig wrote:

> Hi ...
>
> I am using:
>
> DBI-1.21.tar.gz
> DBD-Pg-1.01.tar.gz

The versions I'v been using are DBI 1.30 an DBD::Pg 1.13

>
> my problem is that Perl complains about connections which are not closed
> properly and so forth but the main problem is that transactions don't
> seem to commit although the entire transaction seems to work fine. Maybe
> this has to do with SERIALIZABLE mode but it is hard to say. The only
> thing I am doing is a simple loop doing UPDATEs. I have been using DBI
> for a long time but this is the first time where transactions are used
> that heavily (normally we use Pg instead).

Gotcha. The issue I was having with transactions was messages (can't remember
if warnings or errors now) about active connections. What I was doing was some
queries were basic tests of existance and others I knew returned only one row
so I only read one row. Not fetching until the likes of fetchrow_arrayref
return undef leaves the connection in an active state. Perhaps you have a
similar situation. If so you need to fetch all the data queried _or_ use the
finish() method to signal you have finished with the query.

>
> Maybe I should upgrade to a newer version but it seems as if this does
> not help in my case. I have no idea.

Not sure, it seems pretty old going by version numbers but mine are from a perl
5.8 installation I have no idea what is with the perl 5.05 that was originally
installed.

>
> What we really need: A Perl module accessing LibEasy providing an
> interface to persistent database connections. I am using ApacheDBI at
> the moment (this seems to work well).

As I said before my experience wasn't with the mod_perl and persistent
connections and I don't know how those are controlled. I can well imagine I
will be going that route sometime though so all this is useful for me as
well.

> > Hans
>
>
>
> Nigel J. Andrews wrote:
>
> >On Tue, 4 Feb 2003, Hans-Jürgen Schönig wrote:
> >
> >
> >
> >>Does anybody else have problems with DBI transaction handling? Since
> >>PostgreSQL 7.3 (most likely) the stuff seems to be broken. Errors occur
> >>even if autocommit is set properly and rollbacks are not performed the
> >>way it should be.
> >>
> >>Does anybody have similar problems? This is VERY annoying and should not
> >>happen.
> >>The problem is: There is no other interface around providing persistent
> >>connections with Perl/Apache.
> >>
> >>Maybe it is worth thinking about a Perl implementation of LibEasy with
> >>Apache persistent connections.
> >>
> >>
> >
> >Well I have wasted so much time recently, some of it spent trying to work out
> >what DBI was doing. However, that was my lack of knowledge, although I'm still
> >not convinced my tests don't now pass by luck. I'm also using a 7.2.3 server
> >not 7.3 yet and it's not using the mod_perl persistent connection stuff.
> >
> >So in short, I'm not surprised you're having problems but unfortunately I can't
> >say I experienced the same problem. Perhaps you could give a small test case
> >that shows the problem as I'm sure DBI must have been tested against 7.3.
> >
> >
> >
> >
>
>
>
>
>
>

--
Nigel J. Andrews

In response to

Browse pgsql-interfaces by date

  From Date Subject
Next Message Rudy Lippan 2003-02-07 01:03:14 Re: Problems with DBI transaction handling
Previous Message Hans-Jürgen Schönig 2003-02-06 23:06:20 Re: Problems with DBI transaction handling