Has anyone tried running a Web Connection app in a load balanced server environment - with say, 3 or 4 servers handling web requests in a round robin sequence? We're looking at options for a customer who experiences bursts of very high traffic that overwhelm their current server. (Our app handles online class registrations and they have groups of highly popular courses that all open up on a set date - resulting a big rush to get seats before they fill up.)
For starters we're going to have them switch from Fox data to a SQL Server back end. It seems like trying to maintain wwsession or wwrequestlog records as shared files would be a nightmare, and it should help with overall performance. Any other suggestions/advice? Any feedback would be appreciated...
i have two products applications in Round Robin With FoxInCloud / w-Connect / VFP9SP2 / PostGreSql 9.3 since 5 years (one with 3 servers and a second with 6 servers). This is very cool!
It really depends on what you're doing but beyond the actual load balancing via router or software based load balancing solution, Web Connection is pretty easy to deal with in a load balanced environment because everything that is shared already lives in a database that is shared (unless your application). Sessions and logs are the only real shared resources and so it's relatively easy to have it all just work as long as your data all lives on the network and is shareable.
Even so it's often useful to have the load balancer use machine affinity to send users back to the same machine they were on if for nothing else than better resource caching for the data you are dealing with. FoxPro keeps stuff in memory and does a better with previously loaded data.
As to load balancing tools: I've had good success with IIS ARR (IIS Application Request Routing) which is a built in feature for doing software load balancing. It's pretty easy to setup. Alternatively there are a slew of (expensive) router based solutions available that have many additional features.
+++ Rick ---