Upgrading Incompatible Applications
If the new version of the application is incompatible with the old version,
use the following procedure. For information on what makes applications compatible, see Application Compatibility.
Also, you must upgrade incompatible application in two or more clusters. If you
have only one cluster, create a “shadow cluster” for the upgrade, as described
When upgrading an incompatible application:
Give the new version of the application a different version identifier from the old version of the application. The steps below assume that the application has a new version identifier.
If the data schemas are incompatible, use different physical data sources after planning for data migration.
Deploy the new version to a different cluster from the cluster where the old version is deployed.
Set an appropriately long timeout for the cluster running the old application before you take it offline, because the requests for the application won’t fail over to the new cluster. These user sessions will simply fail.
To Upgrade an Incompatible Application by Creating a Second Cluster
- Create a “shadow cluster” on the same or a different set of machines
as the existing cluster. If you already have a second cluster, skip this
- Use the Administration Console to create the new cluster and reference the existing
cluster’s named configuration.
Customize the ports for the new instances on each machine to avoid conflict with
existing active ports.
- For all resources associated with the cluster, add a resource reference to the
newly created cluster using asadmin create-resource-ref.
- Create a reference to all other applications deployed to the cluster (except the
current upgraded application) from the newly created cluster using asadmin create-application-ref.
- Configure the cluster to be highly available using asadmin configure-ha-cluster.
- Create reference to the newly-created cluster in the load balancer configuration file using
- Give the new version of the application a different version identifier from the
- Deploy the new application version with the new cluster as the target. Use
a different context root or roots.
- Start the new cluster while the other cluster is still running.
The start causes the cluster to synchronize with the domain and be updated
with the new application.
- Test the application on the new cluster to make sure it runs correctly.
- Disable the old cluster from the load balancer using asadmin disable-http-lb-server.
- Set a timeout for how long lingering sessions survive.
- Enable the new cluster from the load balancer using asadmin enable-http-lb-server.
- Export the load balancer configuration file using asadmin export-http-lb-config.
- Copy the exported configuration file to the web server instance’s configuration directory.
For example, for Sun Java System Web Server, the location is web-server-install-dir/https-host-name/config/loadbalancer.xml.
- After the timeout period expires or after all users of the old application
have exited, stop the old cluster and undeploy the old application version.