I wondered whether EJB can provide better session tracking for servelts when multiple web servers is used for one web site.
Suppose we have 10 web servers to serve one website due to large traffic on this site. If one of servers is down, the users on that server will be sent to one of the other nine servers. The users still can get their session from the other web servers since we have a Session Manager Server
sitting on a separate server which keeps all the session information for all the web servers. Actually all the web server will update the sesions on Session Manager Server, and also get the info from it. So the Session Manager Server is the central to the whole site.
I was wondering whether EJB (or application server) provide the central seesion management service functionality in it.
What is the best way here to manage the session if many web servers is used for one website?
GemStone/J has excellent HTTPS session tracking because of the integration of NewAtlanta with the PCA. Supposedly it is supposed to scale really well. I have not had to do this yet but, I think there is information on the website about it. (www.gemstone.com)
In a nutshell, Gemstone/J keeps the HttpSession in the persistent cache like any other persisted object, and can then be accessed using transactions from any VM. (So this mechanism is really independent of EJB... and would probably have good performance irrespective of EJB.)
The distributed session tracking comes with a complete timestamping mechanism and some system/HttpSession maintenance utilities. I have never used this with multiple VMs on multiple machines though, we are currently using simple session tracking on one server for user authentication purposes only.