Re: cgi to mod_perl question
Brice D Ruth wrote: > Brice D Ruth wrote: > >> Perrin Harkins wrote: >> >> >> It *seems* that the script can run once, but >> >> that the next time it is accessed, it cannot connect to the $server >> >> anylonger, it dies with a 'connection timed out' message ... What >> >> 'gotcha' is causing this? >> >> >> > It sounds like this problem: >> > http://mathforum.org/epigone/modperl/joidwendsmeld/3B30E553.AD3A7DB8@chamas. >> > com >> > >> > In the message, Joshua suggests a workaround of running mod_perl >> > single-threaded (which shouldn't make any difference, since mod_perl on >> > Win32 is already single-threaded). >> > >> > - Perrin >> > >> > >> It certainly seems that this is part of the problem. Making mod_perl >single-threaded fixed my problem *partially* - now at least I can renew the socket >connection on subsequent requests. But, the connection still isn't being taken down >properly ... when the page finishes being served, and after 'close( $server );' has >been called, the socket on the server side (what the mod_perl script is connecting >to) show 'TIME_WAIT' - the server runs five threads to accept connections, once all >of them have been connected to once, I can no longer connect to them - what's going >on? Why is the connection not being dismantled properly?? > have you tried to do shutdown($server) in order to dismantle the connection?? -- ___cliff [EMAIL PROTECTED]http://www.genwax.com/
Re: cgi to mod_perl question
Perrin Harkins wrote: 006101c1571b$7930a850$18020c0a@PerriHar"> By making 'ThreadsPerChild 1' - the entire server runs as a singlethread, mod_perl and any other requests (e.g. images) that come in -this is why the server slows to a snails pace. I've set up twoinstances now, one to handle all incoming requests, the other to serveas a backend proxy pass-thru for mod_perl requests. It seems to beworking out fairly well. Ah, that makes sense. Good idea. People have reported that even with itslimitations on NT, mod_perl is still a lot faster than CGI or ASP withPerlScript.- Perrin I won't take credit for the idea ... it was passed along from some other posts I read. I'm glad that the 'workaround' is actually working acceptably well. I'd like to actually figure out how to load-balance the proxy pass-thru to five instances of Apache running in single-threaded mode w/ mod_perl ... since the server that the Perl scripts are connecting to can handle five simultaneous connections and I'd like to take advantage of that ... that's my next project :) -Brice -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: cgi to mod_perl question
> By making 'ThreadsPerChild 1' - the entire server runs as a single > thread, mod_perl and any other requests (e.g. images) that come in - > this is why the server slows to a snails pace. I've set up two > instances now, one to handle all incoming requests, the other to serve > as a backend proxy pass-thru for mod_perl requests. It seems to be > working out fairly well. Ah, that makes sense. Good idea. People have reported that even with its limitations on NT, mod_perl is still a lot faster than CGI or ASP with PerlScript. - Perrin
Re: cgi to mod_perl question
Perrin Harkins wrote: 001c01c156c1$d5d0eac0$553dfea9@charlotte"> Unfortunately, I've now noticed that my server is unbearably slow -setting 'ThreadsPerChild 1' in my httpd.conf made my server slow to asnails pace (and it really is a pretty quick server on a T1 linededicated to it, pretty much). That's odd. On Win32, mod_perl runs as a single blocking thread. Iwouldn't expect changing that setting to affect anything. Are you sureyou were running your script under Apache::Registry? (Maybe someone whoactually uses Win32 could supply some help here?) By making 'ThreadsPerChild 1' - the entire server runs as a single thread, mod_perl and any other requests (e.g. images) that come in - this is why the server slows to a snails pace. I've set up two instances now, one to handle all incoming requests, the other to serve as a backend proxy pass-thru for mod_perl requests. It seems to be working out fairly well. 001c01c156c1$d5d0eac0$553dfea9@charlotte"> Have I missed something here? Certainlythis isn't the only way mod_perl can run if it needs to makeIO::Socket::INET connections??? I do my mod_perl development on Linux, so I'm just repeating what othershave posted before. I've never heard of an actual solution for thisproblem, just the workaround. I wonder if this is something that has been addressed in Apache 2.x/mod_perl 2.x ... it'd be nice if it were. 001c01c156c1$d5d0eac0$553dfea9@charlotte"> Please help me out here - I'm truly just a Linux/*BSD guy trying to get a poor Win2K box w/ Apache to run the Perl scripts right ... You would certainly get better performance on Linux or BSD. If you haveto use Win32 and need better performance, you may have to look at otheroptions like ActiveState's PerlEx. Yes, I wish it were a Linux/BSD box ... but it isn't and at the moment its not my place to say anything about it. As for ActiveState's PerlEx - I dunno, doesn't seem like a good solution to me :) 001c01c156c1$d5d0eac0$553dfea9@charlotte"> Thanks for the info, guys.-Brice-- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: cgi to mod_perl question
> Unfortunately, I've now noticed that my server is unbearably slow - > setting 'ThreadsPerChild 1' in my httpd.conf made my server slow to a > snails pace (and it really is a pretty quick server on a T1 line > dedicated to it, pretty much). That's odd. On Win32, mod_perl runs as a single blocking thread. I wouldn't expect changing that setting to affect anything. Are you sure you were running your script under Apache::Registry? (Maybe someone who actually uses Win32 could supply some help here?) > Have I missed something here? Certainly > this isn't the only way mod_perl can run if it needs to make > IO::Socket::INET connections??? I do my mod_perl development on Linux, so I'm just repeating what others have posted before. I've never heard of an actual solution for this problem, just the workaround. > Please help me out here - I'm truly just a Linux/*BSD guy trying to get > a poor Win2K box w/ Apache to run the Perl scripts right ... You would certainly get better performance on Linux or BSD. If you have to use Win32 and need better performance, you may have to look at other options like ActiveState's PerlEx. - Perrin
Re: cgi to mod_perl question
Brice D Ruth wrote: [EMAIL PROTECTED]"> Perrin Harkins wrote: 00a601c1568c$224f0a20$18020c0a@PerriHar"> It *seems* that the script can run once, butthat the next time it is accessed, it cannot connect to the $serveranylonger, it dies with a 'connection timed out' message ... What'gotcha' is causing this? It sounds like this problem:http://mathforum.org/epigone/modperl/joidwendsmeld/3B30E553.AD3A7DB8@chamas.comIn the message, Joshua suggests a workaround of running mod_perlsingle-threaded (which shouldn't make any difference, since mod_perl onWin32 is already single-threaded).- Perrin It certainly seems that this is part of the problem. Making mod_perl single-threaded fixed my problem *partially* - now at least I can renew the socket connection on subsequent requests. But, the connection still isn't being taken down properly ... when the page finishes being served, and after 'close( $server );' has been called, the socket on the server side (what the mod_perl script is connecting to) show 'TIME_WAIT' - the server runs five threads to accept connections, once all of them have been connected to once, I can no longer connect to them - what's going on? Why is the connection not being dismantled properly?? Sincerely (and frustrated), Brice Ruth Unfortunately, I've now noticed that my server is unbearably slow - setting 'ThreadsPerChild 1' in my httpd.conf made my server slow to a snails pace (and it really is a pretty quick server on a T1 line dedicated to it, pretty much). Have I missed something here? Certainly this isn't the only way mod_perl can run if it needs to make IO::Socket::INET connections??? Please help me out here - I'm truly just a Linux/*BSD guy trying to get a poor Win2K box w/ Apache to run the Perl scripts right ... -Brice -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: cgi to mod_perl question
Perrin Harkins wrote: 00a601c1568c$224f0a20$18020c0a@PerriHar"> It *seems* that the script can run once, butthat the next time it is accessed, it cannot connect to the $serveranylonger, it dies with a 'connection timed out' message ... What'gotcha' is causing this? It sounds like this problem:http://mathforum.org/epigone/modperl/joidwendsmeld/3B30E553.AD3A7DB8@chamas.comIn the message, Joshua suggests a workaround of running mod_perlsingle-threaded (which shouldn't make any difference, since mod_perl onWin32 is already single-threaded).- Perrin It certainly seems that this is part of the problem. Making mod_perl single-threaded fixed my problem *partially* - now at least I can renew the socket connection on subsequent requests. But, the connection still isn't being taken down properly ... when the page finishes being served, and after 'close( $server );' has been called, the socket on the server side (what the mod_perl script is connecting to) show 'TIME_WAIT' - the server runs five threads to accept connections, once all of them have been connected to once, I can no longer connect to them - what's going on? Why is the connection not being dismantled properly?? Sincerely (and frustrated), Brice Ruth -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: cgi to mod_perl question
Yeah, I thought about that earlier today ... I did that and the script is still crappin' out ... basically, the first time through, it works. The next time, it doesn't seem to be able to build the connection, but it doesn't 'die' at that line, either. I'll go check out the links you sent me (again :)) and see if anything else catches my eye. If you have any other clues, please let me know! -Brice Edward Moon wrote: You're problem is pretty basic. You should read up on issues on movingfrom CGI to mod_perl ()and the mod_perl guide ().You need to declare your variables with 'my' in order to avoid the problemyou are encountering.'use strict' will help catch many issues that can trip you up undermod_perl.On Tue, 16 Oct 2001, Brice D Ruth wrote: I have a perl script that was running fine under IIS/5.0 withActivePerl 6xx - I'll put the salient parts here:use IO::Socket;use CGI;$in = new CGI;$server = IO::Socket::INET->new( PeerAddr=> "...",PeerPort=>...,Proto=>"tcp",Type=> SOCK_STREAM) or die "Error message ... $@";$server->autoflush(1);... (information is gotten from $server via <$server>)... (information is sent to $server via 'print $server ...')... (server's response is read via <$server> and printed to browser via'print')close ($server);That's it - a very simple Perl script that basically takes informationfrom the GET or POST strings, sends it to a server process and reads itsresponse, printing it out to the browser.I've now moved the script to Apache 1.3.20 w/ mod_perl 1.25 (I think its1.25, but it may be 1.26 - the server's not running at the moment, elseI'd find out for sure). It *seems* that the script can run once, butthat the next time it is accessed, it cannot connect to the $serveranylonger, it dies with a 'connection timed out' message ... What'gotcha' is causing this?Any help on this would be greatly appreciated!!Sincerely,Brice D Ruth--WebProjkt, Inc.VP, Director of Internet Technologyhttp://www.webprojkt.com/ -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: cgi to mod_perl question
> It *seems* that the script can run once, but > that the next time it is accessed, it cannot connect to the $server > anylonger, it dies with a 'connection timed out' message ... What > 'gotcha' is causing this? It sounds like this problem: http://mathforum.org/epigone/modperl/joidwendsmeld/3B30E553.AD3A7DB8@chamas. com In the message, Joshua suggests a workaround of running mod_perl single-threaded (which shouldn't make any difference, since mod_perl on Win32 is already single-threaded). - Perrin
OT: Re: cgi to mod_perl question
hi brice, because this particular question is one of basic perl, and not mod_perl. this just alerts all mod_perl readers that they can safely skip this particular question/answer and not miss any relevant mod_perl content. u sound upset - no reason to be - u got the answer u were looking for. cliff Brice D Ruth wrote: > Why OT? I have a script that works under IIS/5 using CGI Perl that doesn't work >under Apache with mod_perl - I'd say that's on-topic for this list! > > -Brice > > ___cliff rayman___ wrote: > >> Brice D Ruth wrote: >> >> >> > What is the difference between doing the following: >> > >> > close( $server ); >> > >> functional interface. flush and close the file handle for this instance >> of the program. >> >> >> > # >> > $server->close(); >> > >> object interface - same as above. >> >> >> > # >> > $server->shutdown(); >> > >> object interface. cause the connection to close at the tcp/ip level. >> any other application instance also using this socket will no longer >> be able to read/write from it. >> >> >> -- >> ___cliff [EMAIL PROTECTED]http://www.genwax.com/ >> >> >> > -- > WebProjkt, Inc. > VP, Director of Internet Technology > http://www.webprojkt.com/ > > -- ___cliff [EMAIL PROTECTED]http://www.genwax.com/
Re: cgi to mod_perl question
Why OT? I have a script that works under IIS/5 using CGI Perl that doesn't work under Apache with mod_perl - I'd say that's on-topic for this list! -Brice ___cliff rayman___ wrote: [EMAIL PROTECTED]"> Brice D Ruth wrote: What is the difference between doing the following:close( $server ); functional interface. flush and close the file handle for this instanceof the program. #$server->close(); object interface - same as above. #$server->shutdown(); object interface. cause the connection to close at the tcp/ip level.any other application instance also using this socket will no longerbe able to read/write from it.--___cliff [EMAIL PROTECTED]://www.genwax.com/ -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
OT: Re: cgi to mod_perl question
Brice D Ruth wrote: > What is the difference between doing the following: > > close( $server ); functional interface. flush and close the file handle for this instance of the program. > > # > $server->close(); object interface - same as above. > > # > $server->shutdown(); object interface. cause the connection to close at the tcp/ip level. any other application instance also using this socket will no longer be able to read/write from it. -- ___cliff [EMAIL PROTECTED]http://www.genwax.com/
Re: cgi to mod_perl question
What is the difference between doing the following: close( $server ); # $server->close(); # $server->shutdown(); ?? Sincerely, Brice Ruth Brice D Ruth wrote: > I have a perl script that was running fine under IIS/5.0 with > ActivePerl 6xx - I'll put the salient parts here: > > use IO::Socket; > use CGI; > > $in = new CGI; > > $server = IO::Socket::INET->new( PeerAddr=> "...",PeerPort=> > ...,Proto=>"tcp",Type=> SOCK_STREAM) or die "Error message ... $@"; > > $server->autoflush(1); > > ... (information is gotten from $server via <$server>) > ... (information is sent to $server via 'print $server ...') > > ... (server's response is read via <$server> and printed to browser > via 'print') > > close ($server); > > That's it - a very simple Perl script that basically takes information > from the GET or POST strings, sends it to a server process and reads > its response, printing it out to the browser. > > I've now moved the script to Apache 1.3.20 w/ mod_perl 1.25 (I think > its 1.25, but it may be 1.26 - the server's not running at the moment, > else I'd find out for sure). It *seems* that the script can run once, > but that the next time it is accessed, it cannot connect to the > $server anylonger, it dies with a 'connection timed out' message ... > What 'gotcha' is causing this? > > Any help on this would be greatly appreciated!! > > Sincerely, > Brice D Ruth > -- WebProjkt, Inc. VP, Director of Internet Technology http://www.webprojkt.com/
Re: CGI to mod_perl
On Sun, 7 May 2000, Pierre J. Nicolas wrote: > I have: > > PerlHandler Apache::Registry > PerlRequire /path/to/perl/startup.pl > where in the startup.pl file I have: > > use lib qw(/path/to/perl/perl-lib); > > and I'm still experiencing those: > "Undefinde subroutine &Apache::Root:perl::script_name::function_name > called at /path/to/perl/scriptname line number" > errors. > > Could someone recommend a solution for me to still > access my original perl library routines with minimal > rewriting. > http://perl.apache.org/guide/troubleshooting.html#Undefined_subroutine_Apache_RO __ Stas Bekman | JAm_pH--Just Another mod_perl Hacker http://stason.org/ | mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] | http://perl.orghttp://stason.org/TULARC/ http://singlesheaven.com| http://perlmonth.com http://sourcegarden.org --
Re: CGI to mod_perl
I have: PerlHandler Apache::Registry PerlRequire /path/to/perl/startup.pl where in the startup.pl file I have: use lib qw(/path/to/perl/perl-lib); and I'm still experiencing those: "Undefinde subroutine &Apache::Root:perl::script_name::function_name called at /path/to/perl/scriptname line number" errors. Could someone recommend a solution for me to still access my original perl library routines with minimal rewriting. Thanks, Pierre Matt Sergeant wrote: > On Fri, 5 May 2000, Doug MacEachern wrote: > > > On Thu, 4 May 2000, Matt Sergeant wrote: > > > > > How do you get at $r in a directive handler? > > > > other way around, you get at directive handler config from a handler, > > which has been passed $r, e.g.: > > > > sub handler { > > my $r = shift; > > my $cfg = Apache::ModuleConfig->get($r, __PACKAGE__); > > > > $cfg would contain the data stashed by the directive handler. > > Ya - got that bit now. See AxKit 0.57 - it has an overloadable class for > getting the configuration, so you can either get it from > ModuleConfig() via .htaccess, or provide another method, such as brian > wants to be able to emulate Cocoon 2's sitemap feature. This allows you to > do that. Gotta love OO. > > For anyone interested, AxKit is proceeding at an incredible rate. We've > now got an almost complete XSLT implementation curtesy of the Sablotron > library, and lots of other excellent things going on. > > -- > > > Fastnet Software Ltd. High Performance Web Specialists > Providing mod_perl, XML, Sybase and Oracle solutions > Email for training and consultancy availability. > http://sergeant.org http://xml.sergeant.org