ヘッダをスキップ
Oracle® WebLogic Communication Services 管理ガイド
11g リリース 1 (11.1.1)
B55505-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

17 デプロイ済み SIP アプリケーションのアップグレード

以下の節では、アクティブな呼を失わずに、デプロイ済み SIP Servlets およびコンバージド SIP/HTTP アプリケーションを新しいバージョンにアップグレードする方法について説明します。

17.1 SIP アプリケーションのアップグレードの概要

Oracle WebLogic Communication Services では、アプリケーションで処理中の既存の呼を失わずに、デプロイ済み SIP アプリケーションを新しいバージョンにアップグレードすることができます。このような形でアプリケーションのアップグレードを行うには、新しいバージョンのアプリケーションを以前のバージョンと並行してデプロイします。Oracle WebLogic Communication Services は、新しいリクエストが新しいバージョンに転送されるように SIP サーブレットのマッピングを自動的に管理します。確立されている既存のダイアログへのメッセージは、それ以降も呼が完了するまで以前のバージョンのアプリケーションに転送されます。既存のダイアログがすべて完了し、以前のバージョンのアプリケーションが処理する呼がなくなった後で、そのアプリケーションを安全にアンデプロイすることができます。

Oracle WebLogic Communication Services のアップグレード機能を利用すると、プロダクション アプリケーションのアップグレード中に呼が失われることがなくなります。また、アプリケーションのアップグレード処理を元に戻す (またはロールバックする) こともできます。たとえば、新しいバージョンのデプロイ済みアプリケーションに問題があると判断した場合は、新しいバージョンをアンデプロイして以前のバージョンをアクティブ化することができます。


注意 :

アプリケーションのアクティブなバージョンをアンデプロイすると、以前のアプリケーションのバージョンは管理モードのままになります。アプリケーションに新しいリクエストを転送するには、以前のバージョンを明示的にアクティブ化しなければなりません。

SIP 管理チャネルでアップグレード機能を使用すると、最終テストへのアクセスを制限して新しいアプリケーション バージョンをデプロイすることもできます。管理チャネルを使用して最終テストを行った後、アプリケーションを一般的な SIP トラフィックに開くことができます。

Oracle WebLogic Communication Services アプリケーションのアップグレードは、Oracle WebLogic Server 10g リリース 3 アプリケーションのアップグレードと同一の機能を提供しますが、以下の例外があります。

17.2 デプロイ済みアプリケーションをアップグレードする場合の要件と制約

Oracle WebLogic Communication Services のアプリケーション アップグレード機能を使用する場合の要件と制約は以下のとおりです。

17.3 デプロイ済み SIP アプリケーションをアップグレードする手順

デプロイ済み SIP アプリケーションを新しいバージョンにアップグレードするには、次の手順に従います。

  1. バージョン識別子の割り当て - バージョン識別子を使って新しいバージョンのアプリケーションをパッケージ化します。

  2. 新しいバージョンのアプリケーションのデプロイ - 新しいバージョンのアプリケーションを以前のバージョンと並行してデプロイし、アップグレード処理を開始します。

  3. 以前のバージョンのアプリケーションのアンデプロイ - 確立された呼への SIP メッセージを以前のバージョンのアプリケーションがすべて処理し終わると、そのバージョンを安全にアンデプロイすることができます。それ以降のすべての呼の処理は、新しくデプロイされたアプリケーションに任されます。

以下の節で、それぞれの手順について説明します。新しくデプロイされたアプリケーションで問題が見つかった場合は、アップグレード処理をロールバックすることもできます。複数の SIP サーブレットで構成されるアプリケーションでは、アプリケーション名とバージョン識別子へアクセスするために ApplicationRuntimeMBean を使用する場合もあります。

17.4 バージョン識別子の割り当て

Oracle WebLogic Communication Services では、アプリケーション名の後ろに追加されるバージョン識別子 (文字列値) を使用して、同じアプリケーションの複数のバージョンを区別します。バージョン文字列には最大で 215 文字まで指定できます。表 17-1 に示す有効な文字以外は使用できません。

表 17-1 有効な文字と無効な文字

有効な ASCII 文字 無効なバージョン文字

a-z

..

A-Z

.

0-9


他の文字と組み合わせたピリオド (「.」)、アンダースコア (「_」)、ハイフン (「-」)



デプロイ可能な SIP サーブレット WAR ファイルの場合、アプリケーションの MANIFEST.MF ファイルでバージョン識別子を定義するか、デプロイメント時にコマンド ラインで指定する必要があります。

17.4.1 マニフェストでのバージョンの定義

WAR および EAR のデプロイメントでは、どちらも MANIFEST.MF ファイルでバージョン識別子を指定する必要があります。例 17-1 に、バージョン識別子「v2」を指定したアプリケーションを示します。

例 17-1 マニフェストのバージョン識別子

Manifest-Version: 1.0
Created-By: 1.4.1_05-b01 (Sun Microsystems Inc.)
Weblogic-Application-Version: v2

バージョン識別子を割り当てずにアプリケーションをデプロイし、後からバージョン識別子を割り当ててデプロイした場合、Oracle WebLogic Communication Services はそれらのデプロイメントを同じアプリケーションの異なるバージョンとして認識します。

17.5 新しいバージョンのアプリケーションのデプロイ

アップグレード処理を開始するには、Administration Console または weblogic.Deployer ユーティリティを使用して、新しいアプリケーション アーカイブをデプロイします。一定の時間後に以前のバージョンのアプリケーションを自動的にアンデプロイするには、weblogic.Deployer ユーティリティに -retiretimeout オプションを使用します。次に例を示します。

java weblogic.Deployer -name MyApp -version v2 -deploy -retiretimeout 7

Oracle WebLogic Communication Services は、マニフェスト ファイルでバージョン識別子を調べ、現在アプリケーションの他のバージョンがデプロイされているか確認します。2 つのバージョンがデプロイされている場合、サーバは最後にデプロイされたアプリケーションに自動的に新しいリクエストを転送し始めます。もう一方のアプリケーションには新しい呼を転送せず、現在処理中の呼を完了できるようにします。この処理を、以前のバージョンのアプリケーションの「廃止」と呼びます。最終的に、以前のバージョンのアプリケーションは SIP メッセージを処理しなくなるからです。

Oracle WebLogic Communication Services は、デプロイされている 2 つのアプリケーションの実際のバージョン文字列を比較して、新しい方のバージョンを見分けるわけではありません。新しい呼は、常に最後にデプロイされたアプリケーションに転送されます。

Oracle WebLogic Communication Services は、バージョン識別子が指定されていない (マニフェストにバージョン文字列がない) デプロイメントと、バージョン識別子が指定されたそれ以降のバージョンのデプロイメントとを区別することもできます。このため、節 17.4「バージョン識別子の割り当て」で説明した方法でバージョン番号を指定し始める前にパッケージ化されたアプリケーションも簡単にアップグレードすることができます。

17.6 以前のバージョンのアプリケーションのアンデプロイ

既存のアプリケーションの新しいバージョンをデプロイした後、元のデプロイメントは、現在処理中の呼 (元のデプロイメントを使って開始された呼) へのメッセージだけを処理するようになります。処理中の呼が完了した後は、元のデプロイメントは新しい SIP メッセージを処理しません。ほとんどのプロダクション環境では、アプリケーションをアンデプロイする前に、元のデプロイメントがメッセージを処理していないことを確認する必要があります。

デプロイ済みアプリケーションがメッセージを処理しているかどうかを確認するには、アプリケーションの SipApplicationRuntimeMBean インスタンスからアクティブなセッション数を取得します。例 17-2 に、デフォルトの単一サーバ ドメインの findme サンプル アプリケーションのアクティブなセッション数を表示する WLST コマンドの例を示します。

アクティブなセッション数の値に基づいて、アプリケーションを安全にアンデプロイするか (処理中の呼は失われない)、強制的にアンデプロイするか (アンデプロイメントの時点でアクティブなセッションが失われる) を判断します。

適切なデプロイメントをアンデプロイするには、Administration Console または weblogic.Deployer ユーティリティを使用します。

例 17-2 セッション数を調べる WLST セッションの例

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 :

17.7 アップグレード処理のロールバック

アプリケーションの新しいバージョンをデプロイする場合や問題が見つかった場合は、次の手順に従ってアップグレード処理をロールバックすることもできます。

  1. アクティブなバージョンのアプリケーションをアンデプロイします。

  2. 以前のバージョンのアプリケーションをアクティブ化します。次に例を示します。

    java weblogic.Deployer -name MyApp -appversion v1 -start
    

    注意 :

    アプリケーションのアクティブなバージョンをアンデプロイすると、以前のアプリケーションのバージョンは管理モードのままになります。アプリケーションに新しいリクエストを転送するために以前のバージョンを明示的にアクティブ化しなければなりません。

代わりに、-start オプションを使用すると、以前のバージョンのアプリケーションが起動されて新しいリクエストを処理し、新バージョンを終了します。

17.8 アプリケーション名とバージョン識別子へのアクセス

Oracle WebLogic Communication Services のプロダクション アップグレード機能を利用する予定がある場合は、複数の SIP サーブレットで構成されるアプリケーションでアプリケーション名をハードコード化しないでください。アプリケーション名をハードコード化する代わりに、ApplicationRuntimeMBean のいくつかのヘルパー メソッドを使用することにより、アプリケーションからデプロイメント名、またはバージョン識別子に動的にアクセスすることができます。

17.9 管理モードの使用

-adminmode オプションと weblogic.Deployer を必要に応じて使用して、管理モードでアプリケーションの新しいバージョンをデプロイすることができます。管理モードでは、TLS 転送を持つ sips-admin というコンフィグレーションされたネットワーク チャネル名を通してのみ SIP トラフィックを受け付けます。sips-admin チャネルがコンフィグレーションされていない場合、または別のチャネルを使用してリクエストを受けた場合は、サーバは 503 メッセージを返してリクエストを拒否します。

管理モードから一般に利用可能なモードにアプリケーションを遷移するには、weblogic.Deployer-start オプションを使用します。


注意 :

お使いのアプリケーションで TLS を使用できない場合は、サーブレット ロール マッピング ルールを変更して 1 ユーザしかアプリケーションの新しいバージョンを使用できないように設定することもできます。これにより、新しいバージョンへのアクセスを制限しながら、以前のバージョンと並行して新しいバージョンをデプロイすることができます。