Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-interfaces by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group