Tim,

I've a pretty well working prototype now. There is one problem though.

Before take_imp_data can be called all $sth must be destroyed. for example the following code:

    my $dbh = DBI->connect('dbi:mysql:test', '', '', {});
    my $sth0 = $dbh->prepare("show tables");
    $sth0->execute();
    while (my @row = $sth0->fetchrow_array) {
        $dbh->do("DROP TABLE $table") if $row[0] eq $table;
    }
    $dbh->disconnect;

fails:

DBD::mysql::db take_imp_data failed: Can't take_imp_data from handle while it still has kids at /home/stas/work/modules/DBI-Pool/blib/lib/DBI/Pool.pm line 96.

since I try to call take_imp_data in the overridden DBI::Pool::disconnect. This fixes the problem in the caller script:

    undef $sth0;
    $dbh->disconnect;

but it requires an unusual modification to the original script and DBI::Pool should be able to work transparently to the user.

So how can we eliminate this problem?

--
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to