Re: [Resin-interest] Question on db based distributed session
Corrections below: On 1/8/07, Josh Rehman [EMAIL PROTECTED] wrote: ... While there are [[hacky]] ways to notify the offline server of state changes ... How can you have your cake and eat it too? You need some way for nodes to see if they are participating in a distributed session [[on startup]] and if they are and if there is an active node, ignore any persisted session state and get state from the distributed session. If there is no active node, then load session from disk. ... Peace, Josh ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Question on db based distributed session
what are your specific session settings? does resin know about your load balanced cluster? or are you managing the load balancer outside of resin and using resin to tie them together thru the db persistence? are you using 'always-load-session? Jacky wrote: Dear all, I have implemented resin's distributed session along with apache. Apache is the entry point, which will use mod_caucho plugin to dispatch requests to resin. Now it is working fine and i'm happy about it. After a few test run on this, i found out something which i'm not sure if its my implementation problem or bug. I have server A and server B running resin on default srun port 6802. Unhappy case 1: 1. I start server A and login to my application 2. I stop Server A and start Server B 3. I continue to work in the browser, my session stays intact and i can proceed normally 4. I stop Server B and start Server A 5. I continue to work in the browser, my session stays intact and i can proceed normally 6. I logout from my application and logout successfully cleared my session variables (notice this from app log) 7. I try to type a password protected page in the browser and i am forced to login 8. I stop Server A and start Server B 9. I try to type a password protected page in the browser and i *CAN ACCESS* the protected page Unhappy case 2: 1. I start server A and login to my application 2. I stop Server A and start Server B 3. I continue to work in the browser, my session stays intact and i can proceed normally 4. I logout from my application and logout successfully cleared my session variables (notice this from app log) 5. I stop Server B and start Server A 6. I try to type a password protected page in the browser and i *CAN ACCESS* the protected page So to sum it all up, if i login to Server A and try to log out in Server B, the session is still available to server A and not Server B. Does anyone here encounter this before? Thanks. -- Warm regards, Jacky Wong -- This message has been scanned for viruses and dangerous content by *MailScanner* http://www.mailscanner.info/, and is believed to be clean. ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Question on db based distributed session
Hmm. I was reading: http://www.caucho.com/resin-3.1/doc/tcp-sessions.xtp Particularly the section under recovery which states: When Host C restarts, possibly with an upgraded version of Resin, it needs to use the most up-to-date version of the session; its file-saved session will probably be obsolete. When a new session arrives, Host C loads the saved session from both the file and from Host D. It will use the newest session as the current value. Once it's loaded the new session, it will remain consistent as if the server had never stopped. So Resin actually implements have your cake and eat it too but it's not working in your case. Perhaps there is some error when the comparison is made - perhaps the clocks on the two systems are not in sync. Or something. :) Peace, Josh On 1/8/07, Josh Rehman [EMAIL PROTECTED] wrote: Corrections below: On 1/8/07, Josh Rehman [EMAIL PROTECTED] wrote: ... While there are [[hacky]] ways to notify the offline server of state changes ... How can you have your cake and eat it too? You need some way for nodes to see if they are participating in a distributed session [[on startup]] and if they are and if there is an active node, ignore any persisted session state and get state from the distributed session. If there is no active node, then load session from disk. ... Peace, Josh ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Question on db based distributed session
1. I start server A and login to my application At this point, A will get your request and will become your primary server, and B will be your secondary server. 2. I stop Server A and start Server B 3. I continue to work in the browser, my session stays intact and i can proceed normally At this point, you are using secondary server B. Your session updates are saved on B. 4. I logout from my application and logout successfully cleared my session variables (notice this from app log) 5. I stop Server B and start Server A 6. I try to type a password protected page in the browser and i *CAN ACCESS* the protected page At this point, A (the primary) will contact B to try to get any updates to the session that have been made. Since B is down, A cannot get the session from it. So it has to go with the outdated session that it has, because it cannot get the updated session from B. -- Sam ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest