RE: Defeating mod_perl Persistence

2001-12-12 Thread Jonathan M. Hollin

:: 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

2001-12-11 Thread Eric Cholet

--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

2001-12-11 Thread Perrin Harkins

 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

2001-12-11 Thread [EMAIL PROTECTED]

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

2001-12-11 Thread ed phillips

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