Skip Menu |

This queue is for tickets about the DBD-InterBase CPAN distribution.

Report information
The Basics
Id: 30812
Status: rejected
Priority: 0/
Queue: DBD-InterBase

People
Owner: epratomo [...] acm.org
Requestors: bnelson [...] onairusa.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



CC: jbroadwater [...] onairusa.com (Jim Broadwater), johnnyschad [...] smartsbroadcast.com (Johnny Schad), pcervasio [...] onairusa.com, cervasio [...] airmail.net, toddmontag [...] smartsbroadcast.com (Todd Montag), janschad [...] smartsbroadcast.com (Jan (Smarts) Schad)
Subject: Version 0.47 and Next transactions
Date: Sat, 17 Nov 2007 19:01:14 -0600 (CST)
To: bug-DBD-InterBase [...] rt.cpan.org
From: nelsonbe [...] earthlink.net
To: bug-DBD-InterBase@rt.cpan.org cc: On Air Tech Staff Fr: Bob Nelson bnelson@onairusa.com, support@onairusa.com Dt: 17 NOV 2007 Re: DBD::InterBase Version 0.47 and Next transactions Edwin Pratomo <edpratomo@cpan.org> and Daniel Ritz <daniel.ritz@gmx.ch>: * Please see this response from Helen Borrie (author of ``The Firebird Book'') concerning a topic I raised concerning the value of ``Next transaction'': http://tech.groups.yahoo.com/group/firebird-support/message/90535 Everything is described in that link (platform and Firebird version). The crux of the problem is that ``DBD::InterBase-0.47'' increments only the value of ``Next transaction'' when ONLY a single ``SELECT'' query is executed. - If more than just one ``SELECT'' execution is added to the test script shown below, the problem vanishes and the Firebird transaction counters all increment accordingly. The simple program shown below illustrates the problem, especially when run in a loop from the shell and the output of ``gstat -h'' is being checked as the program runs. For example: 1). while true ; do ./dbd47-transaction.pl; sleep 1; done 2). gstat -h -user sysdba -pass masterkey \ /opt/firebird/examples/empbuild/employee.fdb -------------------- [ BEGIN dbd47-transaction.pl ] ------------------------- #!/usr/bin/perl -w use strict; use DBI; my $host = 'localhost'; my $db = 'employee'; my $user = 'sysdba'; my $pass = 'masterkey'; my $dbi = "dbi:InterBase:host=$host;db=$db;ib_dialect=3"; my $dbh = DBI->connect($dbi, $user, $pass, { PrintError => 1, RaiseError => 1, AutoCommit => 1 }); die "can't connect to $dbi - $DBI::errstr\n" unless $dbh; my $query = 'SELECT FIRST 1 * FROM country'; my $sth = $dbh->prepare($query); die "dbh->prepare failed - $DBI::errstr\n" unless $sth; $sth->execute; while(my @row = $sth->fetchrow_array) { foreach my $data(@row) { if(defined $data) { print "$data|"; } else { print "NULL|"; } } print "\n"; } $sth->finish; $dbh->disconnect; -------------------- [ END dbd47-transaction.pl ] -------------------------
On Sat Nov 17 20:02:16 2007, bnelson@onairusa.com wrote: Show quoted text
> > http://tech.groups.yahoo.com/group/firebird-support/message/90535 > > Everything is described in that link (platform and Firebird > version). > > The crux of the problem is that ``DBD::InterBase-0.47'' increments > only the > value of ``Next transaction'' when ONLY a single ``SELECT'' query is > executed. >
good day bob nelson a simple C program even simpler than api3.c also exhibits the same behaviour. here I attach my C program along with a shell script to run the demo. the script will compile the C code twice, on the second compile, it will pass -DIDLE_TXN where an idle transaction will be started. rgds, Edwin.
Download stuck-oit-compared.tar.gz
application/x-gzip 1.3k

Message body not shown because it is not plain text.