Robert Segall escribió:
On Tue, 2007-02-06 at 13:55 +0100, Francisco Ruiz wrote:
  
Hello,

I'm new with Pound, so I'm looking for some clue for a concrete problem.

We are using the session control based on cookies, and whenever a 
backend dies all the sessions assigned to it are removed, so if the 
client tries to access again the site it is redirected to any of the 
alive backends inmediatly. Since it has his session open on the dead 
backend the user should close it browser and open it again in order a 
new session cookie to be created, but pound just redirect it and the 
application does not work correctly.

What I'm looking for is for something like a "Zombie" directive in the 
Session section.  If this directive is defined, the sessions should not 
be removed when the backend dies, instead of this pound should send a 
redirect to a new page (defined in the directive).  The zombie sessions 
should be removed when their TTL is reached.


For example:
 
  Session
    Type COOKIE
    TTL 7200
    ID "ASPSESSIONID.*"
    Zombie "http://server/error.html"
  End

or

  Session
    Type COOKIE
    TTL 7200
    ID "ASPSESSIONID.*"
    Zombie "http://server/relogin.html"
  End


Thanks in advance. Regards

Francisco Ruiz
    

These really are two separate issues.

1. Keeping sessions for a dead back-end: why would you want to do that?
Once a server is dead, in all likelihood the sessions are gone as well,
so there is no advantage to it.
  
That's true, but the client's doesn't know that the backend is gone and try to access again with the same session cookie, pound has forgotten the session associated to this cookie and simply create a new session assigned to a new backend. When the application receive the request it doesn't know the sessions and fails to give a correct answer.
2. Showing a "special" page: you have two possibilities: either use the
custom error pages to return it in Pound, or have your application
redirect to a special page if the request contains an invalid session
key (which is good practise anyway).
  
Your are right, my application could redirect to a special page if the request contains an invalid session, but it was not done in the original design and now is pretty hard to change all, so I was looking for this kind of support inside Pound as I thought it could be useful in many cases, no just for me.

Regards,

Francisco Ruiz