Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Making IW Sessions persistent among servers or in a database
#1
Hi all,

Short story: is there anyone who has experience with persisting IntraWeb sessions on different server machines? 

Long story: we have an IntraWeb ISAPI application which is deployed on multiple servers, using a load balancer (and cookies) to distribute the users over the didferent server machines. Normally, this works great. However, when one of the servers goes down, the users have to restart their session on another server. We wonder if it's possible to store the server information (IntraWeb forms, data modules), the User Session information, etc. and to restart a new session at another server re-creating everything that was alive in the original server right before the crash. 

This would mean storing everything in the user session (as well as the formlist and details) in a database for example, and reading it when needed. Hopefully, not often.

Although this certainly sounds doable, I wonder if people have tried this before, and/or have strong doubts about the feasibility of this endavour.  Note that we still plan to continue using the load balancer, so the sessions will be redirected to the correct server most of the time, it's just that we want to have a failover mechanism so people can continue their work (perhaps after a few seconds of reloading/recreating everyting).

And yes, preventing the crash (or "ping timeout" in our case) should be the best solution, but if never hurts to have a failover option in the first place.

Thanks in advance for any comments, hints or feedback.

Groetjes, Bob Swart
Reply
#2
We have multiple servers behind a load balancer too, but we have never tried to take it this far and recreate the users session if something happens. Of course we save often so if something does happen they would not lose much work. We do setup IIS to recycle the app pools in the middle of the night just to have a new start every day.

I am not sure this helps you.
Reply
#3
Hi Dr. Bob,

Coincidentally, I've been thinking about this for some time now and this is in our radar.

I think this is feasible, at least in part. It would be certainly possible to recreate the session on demand, recreating/reloading all existing forms, DataModules if existing, and the user session. Maybe not exactly containing all the data that the users sees on the browser, but the experience would be much better.
Another point is when/where this persistent data would be saved. If the goal is recovering from a system crash, this would need to be continuous. On the other hand, if the goal is to just allow application restart with iminimal impact (e.g. when installing a new version), then this could be done on demand, triggered by user code....
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)