I'm implementing a Manager (session management) that stores sessions on shared 
servers (that is, a distributed manager, but not the default one that comes 
with tomcat).  A key difference between the implementation that I'm working on 
and the ClusteredManager is that the entire session is distributed when it 
changes, rather than sending individual parameters around over the network.

The problem that I'm having is that the Manager needs to be notified when the 
request has finished with the session.  I'm aware that I can create a 
ServletRequestListener, and I think that the requestDestroyed method would be a 
reasonable time for me to be telling the manager that it should distribute the 
session.  However, I can't for the life of me figure out how to get a reference 
to the Manager from a ServletRequestListener.

I've tried:
- having the ServletRequestListener also be a ServletContextListener, but I 
can't navigate to the manager from there.
- finding the Manager through the session, but that's a StandardSessionFacade, 
which doesn't reveal the manager.
- having the ServletRequestListener also be a ContainerListener, but I can't 
make the same instance of the Listener be registered as both (since 
registerting a ServletRequestListener through the StandardContext doesn't allow 
me to register an object, I can only tell it what class to use).

Any suggestions?  Either for how I can have my ServletRequestListener get a 
reference to the Manager, or for other strategies for knowing when the Request 
is finished with the Session so that I can distribute it.

Thanks.

Nolan



      

Reply via email to