Upgrading Applications Without Loss of Availability

Upgrading an application to a new version without loss of availability to users is
called a rolling upgrade. Carefully managing the two versions of the application across the
upgrade ensures that current users of the application complete their tasks without interruption, while
new users transparently get the new version of the application. With a rolling
upgrade, users are unaware that the upgrade occurs.

In a clustered environment, a rolling upgrade redeploys an application with a minimal
loss of service and sessions. A session is any artifact that can be
replicated, for example:

HttpSession

SingleSignOn

ServletTimer

DialogFragment

Stateful session bean

A rolling upgrade can take place under light to moderate loads. The procedure
requires about 10-15 minutes for each GlassFish Server instance.

Caution - To prevent the risk of version mismatch when a session fails over, upgrade
all instances in a cluster at the same time. Otherwise a session might
fail over to an instance where different versions of components are running.

Perform this task on each cluster separately. A cluster acts as a safe
boundary for session failover for instances in the cluster. Sessions in one cluster
can never fail over to sessions in another cluster. Therefore, the risk of
version mismatch is avoided.