Ditto to Nate's comments. When you think about it you can imagine the challenges for yourself. To truly do session replication you need enough physical memory to devise heaps big enough for any one instance in the cluster to store all the sessions (it's own and the replicated ones) for all the other instances in the cluster. So if your sessions take up a modest 256 megs (for example) and you have 4 machines then each machine will need a gig just for replicated sessions. Meanwhile, network traffic increases exponentially with each cluster member due to session info flying back and forth between the various instances... so you probably should put session traffic on it's own network (multi-homed machines and private subnet perhaps).... then there is the computation power it takes to keep it all in synch... over all it's functional on a small scale but does not scale upward very well - as each new instance has an exponential increase on the resource required.
-Mark Mark Kruger - CFG CF Webtools www.cfwebtools.com www.coldfusionmuse.com O: 402.408.3733 x105 E: [email protected] Skype: markakruger -----Original Message----- From: Nathan Strutz [mailto:[email protected]] Sent: Monday, October 10, 2011 1:06 PM To: cf-talk Subject: Re: ColdFusion 9 Session Replication So the spirit of your question seems to be "can you replicate sessions without software load balancing?" The basic answer is that you can't. Session replication is a function of the CF load balancing features. However, there are other ways to read your question. If you are asking if you can swap sessions around without allowing your coldfusion servers to have software-based failover, I am not completely sure about that. It seems like something that should be possible, but I can't think of how, it's been a couple versions and a few years since I've managed clustered servers. Do you really want to disable software failover, though? It will be more intelligent than your hardware failover. Finally, I want to point out that session replication is typically a bad idea. It will eat up your network bandwidth and feast on your CPUs. It will have all your available memory for dessert. If one of your servers crashes because it is out of RAM, the other one will do the same. So how do you get around it? Obviously sticky sessions on your HWLB is the first step. But assuming your servers will crash, how do your replicate session data? There are lots of ways, and it depends on your application and what the application rules are for what data to store where. Sometimes session data can just be discarded and lost - things like saved search criteria. Sometimes you can rebuild it from data in your database - you just need a link from the session to the user information; you could use a cookie or put it in your database. You can also take advantage of CF's caching engine, Ehcache, which can do clustered cache, in memory, on disk, even state servers, and combinations of these all. Don't use client variables... just... don't. nathan strutz [www.dopefly.com] [hi.im/nathanstrutz] [about.me/nathanstrutz] On Sun, Oct 9, 2011 at 5:30 PM, Brad Parker <[email protected]> wrote: > > Here's a question hopefully someone can answer. Is it possible to use > session replication to multiple instances on different physical servers > without having to use CF load-balancing? We have a hardware load balancer > in front of the web servers. I would like hardware appliance to handle the > load-balancing and failover in the event a failure. All I want CF to do is > replicate the sessions so they are available on the other servers if the > load balancer marks a server as unavailable. Is this possible? > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:348038 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

