|
以下の節では、アクティブな呼を失わずに、デプロイ済み SIP Servlets およびコンバージド SIP/HTTP アプリケーションを新しいバージョンにアップグレードする方法について説明します。
Oracle Communications Converged Application Server では、アプリケーションで処理中の既存の呼を失わずに、デプロイ済み SIP アプリケーションを新しいバージョンにアップグレードすることができます。このような形でアプリケーションのアップグレードを行うには、新しいバージョンのアプリケーションを以前のバージョンと並行してデプロイします。Oracle Communications Converged Application Server は、新しいリクエストが新しいバージョンに転送されるように SIP サーブレットのマッピングを自動的に管理します。確立されている既存のダイアログへのメッセージは、それ以降も呼が完了するまで以前のバージョンのアプリケーションに転送されます。既存のダイアログがすべて完了し、以前のバージョンのアプリケーションが処理する呼がなくなった後で、そのアプリケーションを安全にアンデプロイすることができます。
Oracle Communications Converged Application Server のアップグレード機能を利用すると、プロダクション アプリケーションのアップグレード中に呼が失われることがなくなります。また、アプリケーションのアップグレード処理を元に戻す (またはロールバックする) こともできます。たとえば、新しいバージョンのデプロイ済みアプリケーションに問題があると判断した場合は、新しいバージョンをアンデプロイして以前のバージョンをアクティブ化することができます。
| 注意 : | アプリケーションのアクティブなバージョンをアンデプロイすると、以前のアプリケーションのバージョンは管理モードのままになります。アプリケーションに新しいリクエストを転送するには、以前のバージョンを明示的にアクティブ化しなければなりません。 |
SIP 管理チャネルでアップグレード機能を使用すると、最終テストへのアクセスを制限して新しいアプリケーション バージョンをデプロイすることもできます。管理チャネルを使用して最終テストを行った後、アプリケーションを一般的な SIP トラフィックに開くことができます。
Oracle Communications Converged Application Server アプリケーションのアップグレードは、Oracle WebLogic Server 10g Release 3 アプリケーションのアップグレードと同一の機能を提供しますが、以下の例外があります。
-retiretimeout オプションを weblogic.Deployer に対して使用することによる、タイムアウト ベースのアンデプロイメントのみをサポートします。sips-admin チャネルのコンフィグレーションが必要です。weblogic.xml コンフィグレーション ファイルで save-sessions-enabled 要素が true に設定された場合と同じように動作します。これにより、再デプロイメント処理間のセッションを維持します。
プロダクション アプリケーションの再デプロイメントの概要と手順については、Oracle WebLogic Server 10g Release 3 ドキュメントの「プロダクション環境でのアプリケーションの再デプロイメント」を参照してください。
Oracle Communications Converged Application Server のアプリケーション アップグレード機能を使用する場合の要件と制約は以下のとおりです。
ApplicationRuntimeMBean メソッドが用意されています。詳しくは「アプリケーション名とバージョン識別子へのアクセス」を参照してください。sips-admin チャネルのコンフィグレーションが必要です。ネットワーク リソースのコンフィグレーション の「Oracle Communications Converged Application Server のネットワーク リソースの管理」を参照してください。
デプロイ済み SIP アプリケーションを新しいバージョンにアップグレードするには、次の手順に従います。
以下の節で、それぞれの手順について説明します。新しくデプロイされたアプリケーションで問題が見つかった場合は、「アップグレード処理のロールバック」こともできます。複数の SIP サーブレットで構成されるアプリケーションでは、「アプリケーション名とバージョン識別子へのアクセス」ために ApplicationRuntimeMBean を使用する場合もあります。
Oracle Communications Converged Application Server では、アプリケーション名の後ろに追加されるバージョン識別子 (文字列値) を使用して、同じアプリケーションの複数のバージョンを区別します。バージョン文字列には最大で 215 文字まで指定できます。表 0-1 に示す有効な文字以外は使用できません。
デプロイ可能な SIP サーブレット WAR ファイルの場合、アプリケーションの MANIFEST.MF ファイルでバージョン識別子を定義するか、デプロイメント時にコマンド ラインで指定する必要があります。詳細については、Oracle WebLogic Server 10g Release 3 ドキュメントの「アプリケーション バージョン識別子の指定」を参照してください。
WAR および EAR のデプロイメントでは、どちらも MANIFEST.MF ファイルでバージョン識別子を指定する必要があります。コード リスト 0-1 に、バージョン識別子「v2」を指定したアプリケーションを示します。
Manifest-Version: 1.0
Created-By: 1.4.1_05-b01 (Sun Microsystems Inc.)
Weblogic-Application-Version: v2
バージョン識別子を割り当てずにアプリケーションをデプロイし、後からバージョン識別子を割り当ててデプロイした場合、Oracle Communications Converged Application Server はそれらのデプロイメントを同じアプリケーションの異なるバージョンとして認識します。
アップグレード処理を開始するには、Administration Console または weblogic.Deployer ユーティリティを使用して、新しいアプリケーション アーカイブをデプロイします。一定の時間後に以前のバージョンのアプリケーションを自動的にアンデプロイするには、weblogic.Deployer ユーティリティに -retiretimeout オプションを使用します。次に例を示します。
java weblogic.Deployer -name MyApp -version v2 -deploy -retiretimeout 7
Oracle Communications Converged Application Server は、マニフェスト ファイルでバージョン識別子を調べ、現在アプリケーションの他のバージョンがデプロイされているか確認します。2 つのバージョンがデプロイされている場合、サーバは最後にデプロイされたアプリケーションに自動的に新しいリクエストを転送し始めます。もう一方のアプリケーションには新しい呼を転送せず、現在処理中の呼を完了できるようにします。この処理を、以前のバージョンのアプリケーションの「廃止」と呼びます。最終的に、以前のバージョンのアプリケーションは SIP メッセージを処理しなくなるからです。
Oracle Communications Converged Application Server は、デプロイされている 2 つのアプリケーションの実際のバージョン文字列を比較して、新しい方のバージョンを見分けるわけではありません。新しい呼は、常に最後にデプロイされたアプリケーションに転送されます。
Oracle Communications Converged Application Server は、バージョン識別子が指定されていない (マニフェストにバージョン文字列がない) デプロイメントと、バージョン識別子が指定されたそれ以降のバージョンのデプロイメントとを区別することもできます。このため、「バージョン識別子の割り当て」で説明した方法でバージョン番号を指定し始める前にパッケージ化されたアプリケーションも簡単にアップグレードすることができます。
既存のアプリケーションの新しいバージョンをデプロイした後、元のデプロイメントは、現在処理中の呼 (元のデプロイメントを使って開始された呼) へのメッセージだけを処理するようになります。処理中の呼が完了した後は、元のデプロイメントは新しい SIP メッセージを処理しません。ほとんどのプロダクション環境では、アプリケーションをアンデプロイする前に、元のデプロイメントがメッセージを処理していないことを確認する必要があります。
デプロイ済みアプリケーションがメッセージを処理しているかどうかを確認するには、アプリケーションの SipApplicationRuntimeMBean インスタンスからアクティブなセッション数を取得します。コード リスト 0-2 に、デフォルトの単一サーバ ドメインの findme サンプル アプリケーションのアクティブなセッション数を表示する WLST コマンドの例を示します。
アクティブなセッション数の値に基づいて、アプリケーションを安全にアンデプロイするか (処理中の呼は失われない)、強制的にアンデプロイするか (アンデプロイメントの時点でアクティブなセッションが失われる) を判断します。
適切なデプロイメントをアンデプロイするには、Administration Console または weblogic.Deployer ユーティリティを使用します。
connect()custom()cd ('examples:Location=myserver,Name=myserver_myserver_findme_findme,ServerRuntime=myserver,Type=SipApplicationRuntime')ls()-rw- ActiveAppSessionCount 0
-rw- ActiveSipSessionCount 0
-rw- AppSessionCount 0
-rw- CachingDisabled true
-rw- MBeanInfo weblogic.management.tools.In
fo@5ae636
-rw- Name myserver_myserver_findme_fin
dme
-rw- ObjectName examples:Location=myserver,N
ame=myserver_myserver_findme_findme,ServerRuntime=myserver,Type=SipApplicationRu
ntime
-rw- Parent examples:Location=myserver,N
ame=myserver,Type=ServerRuntime
-rw- Registered false
-rw- SipSessionCount 0
-rw- Type SipApplicationRuntime
-rwx preDeregister void :
アプリケーションの新しいバージョンをデプロイする場合や問題が見つかった場合は、次の手順に従ってアップグレード処理をロールバックすることもできます。
| 注意 : | アプリケーションのアクティブなバージョンをアンデプロイすると、以前のアプリケーションのバージョンは管理モードのままになります。アプリケーションに新しいリクエストを転送するために以前のバージョンを明示的にアクティブ化しなければなりません。 |
代わりに、-start オプションを使用すると、以前のバージョンのアプリケーションが起動されて新しいリクエストを処理し、新バージョンを終了します。
Oracle Communications Converged Application Server のプロダクション アップグレード機能を利用する予定がある場合は、複数の SIP サーブレットで構成されるアプリケーションでアプリケーション名をハードコード化しないでください。アプリケーション名をハードコード化する代わりに、ApplicationRuntimeMBean のいくつかのヘルパー メソッドを使用することにより、アプリケーションからデプロイメント名、またはバージョン識別子に動的にアクセスすることができます。Oracle WebLogic Server 10g Release 3 ドキュメントの「ApplicationRuntimeMBean」を参照してください。
-adminmode オプションと weblogic.Deployer を必要に応じて使用して、管理モードでアプリケーションの新しいバージョンをデプロイすることができます。管理モードでは、TLS 転送を持つ sips-admin というコンフィグレーションされたネットワーク チャネル名を通してのみ SIP トラフィックを受け付けます。sips-admin チャネルがコンフィグレーションされていない場合、または別のチャネルを使用してリクエストを受けた場合は、サーバは 503 メッセージを返してリクエストを拒否します。
管理モードから一般に利用可能なモードにアプリケーションを遷移するには、weblogic.Deployer の -start オプションを使用します。
| 注意 : | お使いのアプリケーションで TLS を使用できない場合は、サーブレット ロール マッピング ルールを変更して 1 ユーザしかアプリケーションの新しいバージョンを使用できないように設定することもできます。これにより、新しいバージョンへのアクセスを制限しながら、以前のバージョンと並行して新しいバージョンをデプロイすることができます。 |
|