Application Server Solutions for Microsoft IIS and ASP.NET
       solutions   products   partners   company   support   downloads         store
ServletExec Self-Help: FAQ
Back to Search >  Back to Search Results

Faq ID 309
Product BlueDragon
Category Admin Console, Supported Features, Web Application
Question Does BlueDragon support clustering and session replication?
Answer It is indeed possible to do clustering with BlueDragon, and even enable session replication across servers in a cluster with the J2EE and .NET editions. Such clustering support is not enabled by features of BlueDragon but rather by those of the platform on which BlueDragon is installed (in the case of session replication, it's enabled by the underlying J2EE server or .NET framework).

Clustering servers is typically done using hardware or software mechanisms that offer load balancing and fail-over. Such mechanisms have been used with all editions of BlueDragon.

A common limitation with ColdFusion's built-in clustering (and indeed with some other clustering solutions) is that it forces the use of what are called "sticky sessions", meaning that once a user with a given session is on a given machine, they must stay on that machine. This reduces reliability, since if that one machine goes down, the user and their session cannot be "failed over" to another server in the cluster.

With the J2EE and .NET editions of BlueDragon, this issue can be eliminated. The platform on which BD is deployed will control whether clustering and failover works, and if the platform also supports session replication (between servers in the cluster), then CFML sessions created in these editions will benefit from that session replication.

In the BlueDragon Admin console, one can declare that "j2ee sessions" (or ".net sessions" on .net) should be used, which means that BlueDragon does not manage the sessions but instead the underlying platform does.

No other change is required of your CFML code. You continue to set and get session variables the same way you do already.

If you then enable clustering and/or replication of sessions between servers, your CFML sessions will be replicated. (The use of such session replication has been found to fail with ColdFusion MX 6.1 and certain J2EE servers, including WebSphere Network Deployment edition, among others. BlueDragon has been found to support session replication in all environments tested.)

Note that BlueDragon supports persistence of CFC instances to sessions, and those can be replicated as well. (This is possible because BlueDragon supports serialization of ColdFusion Components, where ColdFusion does not.)

Many shops have switched to using Client variables instead to support persistence of a user's data across servers. BlueDragon certainly supports client variables, but note that sessions can be set to timeout in a timeframe of minutes while client variables timeout in a timeframe of days (so people have to build custom solutions to clear out a user's client variables to simulate a timeout). The ability to return to using sessions in such cases can relieve some challenging problems.

To learn more about the mechanisms for session replication supported in a particular J2EE server, see that server's documentation. In .NET, sessions can be persisted to either a database or "state server", as configured in the machine.config or web.cong files with the .NET sessionState directive, as discussed in such resources as:

Additionally, .NET users should also consider the commercial product, ScaleOut State Server, which offers many improvements over .NET's built-in session State Server mechanisms (and was built by former Microsoft engineers responsible for the state server feature).

company media information terms of use privacy policy contact us