アプリケーションの新しいバージョンと古いバージョンとの間に互換性がない場合、次の手順を実行します。アプリケーションの互換性に必要な条件については、「アプリケーションの互換性」を参照してください。互換性のないアプリケーションは、2 つ以上のクラスタでアップグレードする必要があります。クラスタが 1 つしかない場合は、後述の説明に従って、アップグレードのための「シャドウクラスタ」を作成します。
互換性のないアプリケーションをアップグレードする場合は、次の手順を実行します。
新しいバージョンのアプリケーションに、古いバージョンのアプリケーションとは別の名前を付けます。このあとの手順は、アプリケーションの名前が変更されていることを前提にしています。
データスキーマに互換性がない場合は、データの移行を計画したあとに、別の物理データソースを使用します。
新しいバージョンを、古いバージョンが配備されているクラスタとは別のクラスタに配備します。
アプリケーションへの要求は新しいクラスタに処理を引き継がないため、クラスタをオフラインにする前に、古いアプリケーションを実行しているクラスタには適切な長いタイムアウトを設定します。これらのユーザーセッションは、単純に失敗します。
旧バージョンのアプリケーションを保存するか、ドメインをバックアップします。
ドメインをバックアップするには、asadmin backup-domain コマンドを使用します。
同じマシンセットまたは別のマシンセットに、既存のクラスタとして「シャドウクラスタ」を作成します。2 番目のクラスタがすでに存在する場合、この手順はスキップします。
管理コンソールを使用して、既存のクラスタで名前を付けられている設定から新しいクラスタと参照を作成します。
既存のアクティブポートとの競合を回避するために、各マシンで新しいインスタンスのポートをカスタマイズします。
asadmin create-resource-ref を使用して、クラスタに関連付けられたすべてのリソースについて、新しく作成されたクラスタにリソース参照を追加します。
asadmin create-application-ref を使用して、新しく作成されたクラスタから、クラスタに配備されているほかのすべてのアプリケーション (現在再配備されているアプリケーションを除く) への参照を作成します。
asadmin configure-ha-cluster を使用して、クラスタを高可用性に設定します。
asadmin create-http-lb-ref を使用して、ロードバランサ設定ファイル内の新しく作成されたクラスタへの参照を作成します。
新しいバージョンのアプリケーションに、古いバージョンとは別の名前を付けます。
新しいクラスタをターゲットとして、新しいアプリケーションを配備します。別のコンテキストルートを使用します。
asadmin enable-http-lb-application を使用して、クラスタに対して配備した新しいアプリケーションを有効にします。
ほかのクラスタが実行している間に、新しいクラスタを起動します。
起動すると、クラスタはドメインと同期し、新しいアプリケーションで更新されます。
新しいクラスタ上でアプリケーションをテストして、正しく動作していることを確認します。
asadmin disable-http-lb-server を使用して、ロードバランサから古いクラスタを無効にします。
無応答のセッションに対するタイムアウト時間を設定します。
asadmin enable-http-lb-server を使用して、ロードバランサから新しいクラスタを有効にします。
asadmin export-http-lb-config を使用して、ロードバランサ設定ファイルをエクスポートします。
エクスポートした設定ファイルを Web サーバーインスタンスの構成ディレクトリにコピーします。
たとえば、Sun Java System Web Server の場合、コピー先は web-server-install-dir/ https-host-name/config/loadbalancer.xml となります。新しいロードバランサ設定ファイルが自動的にロードされるように、ロードバランサ設定の reloadinterval を設定して、ロードバランサの動的再設定を有効にする必要があります。
タイムアウト期間が経過するか、または古いアプリケーションのすべてのユーザーが終了したら、古いクラスタを停止し、古いアプリケーションを削除します。