On Thu, 16 May 2002, James Luberda wrote:

> I have installed Randy Kobes' 5-10-2002 Apache-2/modperl-2 Win32
> binaries on a Win2k Professional P3 uniprocessor development machine. I
> have left all of the startup.pl script as is. Everything works
> great--however, with some scripts I seem to still suffer from 1.3-style
> locks on the perl interpeter that prevent some other scripts from being
> served until a given dynamic request completes. I've poked around a bit
> and found that simple scripts (ones not using modules) will still be
> executed while another long-running process is executing (thus
> multithreading properly)--so I'm figuring it's probably a module issue
> (or I'm simply confused). The two modules I'm running predominantly are
> DBI 1.14 (with DBD::DB2 .74) and CGI 2.74, and I have verified that two
> scripts running simultaneously with these two modules will result in one
> blocking until the other completes.
>
> Any/all ideas most welcome--and my sincerest thanks to Randy for his 1.3
> and 2.0 binaries and other incredibly helpful docs/builds/info/etc.

Thanks :) ... Is this a registry script you're finding the
blocking with, or within your own custom handler? I just tried
the following script (Win2000, ActivePerl 631):
===============================================================
use strict;
use DBI;
use CGI qw(:all);
print header, start_html, h3('TEST'), '<UL>';
my $dbh = DBI->connect('DBI:mysql:what', 'user', 'passwd',
                              {RaiseError => 1, PrintError => 1});
my $query = "SELECT x FROM y WHERE z LIKE 'ABC%'";
my $sth = $dbh->prepare($query);
$sth->execute;
while (my $name = $sth->fetchrow_array) {
   print "<LI>$name</LI>\n";
}
$sth->finish;
sleep(10);
print "</UL>", end_html;
===============================================================
under ModPerl::Registry, with the following directives:
===============================================================
<Location /perl>
   SetHandler perl-script
   PerlResponseHandler ModPerl::Registry
   Options +ExecCGI
   PerlOptions +GlobalRequest
   PerlOptions +ParseHeaders
</Location>
===============================================================
and didn't see any blocking ... Does an equivalent of the above
work for you?

If not, you might try the most recent Apache2 stuff (May 13) -
Doug made a whole bunch of enhancements to the Win32 side of
mod_perl-2 recently, and perhaps one of those is related to this.

Are you using Apache::DBI? If so, try disabling it and seeing
if that helps.

best regards,
randy

Reply via email to