On Tue, 5 Feb 2002, Jeff wrote: > Date: Tue, 5 Feb 2002 19:21:39 -0500 > From: Jeff <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: perl cgi's and apache > > I am having a problem getting my cgi script to complete processing > when it is launched via apache server. The script itself runs fine > from the command line. It is a script that processes a long array > of values and interacts with a database per value. When the array > is relatively short, the program will complete and everything is > fine (even when launched through the browser). When the array is > larger, and only when launched through the browser, the perl.exe on > the Windows 2000 machine just seems to hang after about 30 seconds > or so and if I stop apache server, it will start processing again > and finish its job. I think I have all the apache timeout > parameters set long enough. Can anyone help me out on this? > Thanks
Jeff, The browser may be what's timing out the process. There are many things you can do to work around such problem. Did you look in the guide (http://perl.apache.org/guide)? I searched for "timeout," and the first suggestion is this: http://thingy.kcilink.com/modperlguide/debug/Handling_Server_Timeout_Cases_an.html However, you never mentioned that you're using mod_perl -- just Perl -- so the guide may not help all that much. (This is a *mod_perl* list you wrote to, you know. :) Regardless, one thing you can always do is to throw more hardware at the problem (bigger, faster machine; more memory; split up the load to a dedicated database server/light-weight frontend mod_perl-less Apache/big, fat mod_perl server backend). Or try to streamline your code -- maybe make one big SQL query for all your values rather than individual calls for each one. If none of that works for you, you may need to pass off the long-running process to a queue for a cronjob to pick up (well, maybe not cron if you're on Windows) or you spin it off to an external script to do the work. Search the guide. HTH, ky