RE: Defeating mod_perl Persistence
:: You're probably storing it in a global so it never gets cleaned :: up. Don't :: do that. No, it's not a global Perrin - I've learnt that lesson! :-)
Re: Defeating mod_perl Persistence
--On mardi 11 décembre 2001 12:25 + Jonathan M. Hollin [EMAIL PROTECTED] wrote: Hey Gang, When using Mail::Sender only the first email is sent on my mod_perl server. When I investigated, I realised that the socket to the SMTP server was staying open after the completion of that first email (presumably mod_perl is responsible for this persistence). Is there any way to defeat the persistence on the socket while running my script under mod_perl, or do such scripts always need to be mod_cgi? FYI, the script works fine under mod_cgi. maybe you should just call Close() on the Mail::Sender object, from the docs: Close $sender-Close; Close and send the mail. This method should be called automatically when destructing the object, but you should call it yourself just to be sure it gets called. And you should do it as soon as possible to close the connection and free the socket. The mail is being sent to server, but is not processed by the server till the sender object is closed! -- Eric Cholet
Re: Defeating mod_perl Persistence
When using Mail::Sender only the first email is sent on my mod_perl server. When I investigated, I realised that the socket to the SMTP server was staying open after the completion of that first email (presumably mod_perl is responsible for this persistence). Is there any way to defeat the persistence on the socket while running my script under mod_perl, or do such scripts always need to be mod_cgi? You're probably storing it in a global so it never gets cleaned up. Don't do that. - Perrin
Re: Defeating mod_perl Persistence
should one not unlink() after the close? When using Mail::Sender only the first email is sent on my mod_perl server. When I investigated, I realised that the socket to the SMTP server was staying open after the completion of that first email (presumably mod_perl is responsible for this persistence). Is there any way to defeat the persistence on the socket while running my script under mod_perl, or do such scripts always need to be mod_cgi? You're probably storing it in a global so it never gets cleaned up. Don't do that. - Perrin
Re: Defeating mod_perl Persistence
Ged Haywood wrote: Hi there, On Tue, 11 Dec 2001, Jonathan M. Hollin wrote: When using Mail::Sender only the first email is sent on my mod_perl server. When I investigated, I realised that the socket to the SMTP server was staying open after the completion of that first email (presumably mod_perl is responsible for this persistence). Is there any way to defeat the persistence on the socket while running my script under mod_perl, or do such scripts always need to be mod_cgi? The idea is for the mod_perl process to complete its job and get on with another as quickly as possible. Waiting around for nameserver timeouts and such doesn't help things. You might be better off re-thinking the design for use under mod_perl. This is a well-trodden path, have a browse through the archives. Yes, this has come up before. Ideally you want to separate out your mail service and pass your mails to a queue. Then, wholly independent of your app, your smtp server can negotiate with remote hosts and generally do its thing. That is, you shouldn't even make your app wait for your SMTP server to send an email before you free it to handle the next request. This is analagous to using a proxy server to handle slowish clients. See the guide, archives. Ed