|
以下の節では、RAM を保存するために Oracle または MySQL RDBMS を SIP データ層クラスタと使用する場合、Oracle Communications Converged Application Server ドメインをどのようにコンフィグレーションするかについて説明します。
Oracle Communications Converged Application Server では、長期間維持する呼状態データを Oracle または MySQL RDBMS に格納して RAM を節約することができます。RDBMS 永続性を有効にすると、SIP データ層は、呼の接続が確立された後、呼状態データをデフォルトで RDBMS に保存します。それ以降のダイアログ境界で、呼状態を変更したり、削除する必要がある場合は、RDBMS に保存した呼状態データを抽出したり、削除します。
Oracle では、アプリケーション設計者用の API を用意し、どのようなときに呼状態データを SIP データ層に保持すべきかについてのヒントを提供しています。呼状態データを頻繁に RDBMS で永続性したり、一定の呼び出しの永続性を無効にするためにこれらのヒントを使用できます。
Oracle Communications Converged Application Server は、インメモリ レプリケーション機能の SIP データ層に追加するためだけに RDBMS を使用します。RDBMS の使用時にレイテンシ パフォーマンスを改善するため、SIP データ層はアクティブに変更されている呼状態 (たとえば、設定中の新しい呼に対応している状態) と共に、メモリにある SIP タイマーを維持します。呼状態はダイアログが確立された後に自動的に保持され、それ以降のダイアログ境界で呼は進行中か、アプリケーション開発者が加えた保持に関するヒントに対応しているかのどちらかです。
RDBMS と組み合わせて使用した場合、SIP データ層はデータベースに書き込む (またはデータベースから削除する) 呼状態を処理するために、レプリカ サーバ インスタンスを 1 つ選択します。使用可能なレプリカならどれでも、次の読み込みのために必要に応じて永続的な保持から呼状態を検索するために使用できます。
ドメインがエンジン層への接続を管理するため SIP 対応ロード バランサを使用している場合、RDBMS への呼状態の格納をエンジン層キャッシュと組み合わせて使用することができます。「エンジン層キャッシュの使用」を参照してください。
以下のすべての基準に一致した場合のみ、RDBMS への呼状態の格納が有効になります。
RDBMS への呼状態データの格納を選択する前に、特にレイテンシ要件をよく理解しておく必要があります。RDBMS への呼状態の格納のオプションは、SIP データ層クラスタを使用する場合と比較すると、SIP メッセージ処理を行うためにレイテンシがある程度増加します。システムで短い応答時間で多数の存続期間の短い SIP トランザクションを処理しなければならない場合、データ層に呼状態データを格納することをお勧めします。
| 注意 : | RDBMS の永続性は、大規模な長期間維持する呼状態の SIP データ層で RAM 要件を抑えるように設計されています。永続性されたデータは、障害が発生した SIP データ層パーティションやレプリカを復元する目的では使用できません。 |
RDBMS への呼状態の格納機能を使用するためには、Oracle Communications Converged Application Server ドメインに必要な JDBC コンフィグレーション、SIP サーブレット コンテナ コンフィグレーション、および呼状態の格納に必要なスキーマを持つデータベースが含まれている必要があります。RDBMS 呼状態テンプレートと共に新しいドメインを設定するコンフィグレーション ウィザードを使用して、ほとんどの必須コンフィグレーションを自動化できます。「コンフィグレーション ウィザード RDBMS 格納テンプレートの使用」を参照してください。
既存の Oracle Communications Converged Application Server ドメインがある場合、RDBMS ストアをユーザ自身がコンフィグレーションする場合、JDBC および RDBMS 格納を使用する WebLogic SIP Server のコンフィグレーション方法については、「RDBMS への呼状態の格納の手動コンフィグレーション」参照してください。
コンフィグレーション ウィザードでは、RDBMS への呼状態の格納の使用とテストを簡単に行うための単純なテンプレートを提供します。テンプレートから新しいドメインを作成するには、以下の手順に従います。
cd ~/bea/wlserver_10.3 /common/bin
./config.sh
replicateddomain.jar という名前のテンプレートを選択し、[OK] をクリックします。
テンプレートはクラスタに 2 つのエンジン層サーバと SIP データ層サーバ、および管理サーバ (AdminServer) を持つ新しいドメインを作成します。エンジン層クラスタには、以下のリソースおよびコンフィグレーションが含まれます。
wlss.callstate.datasource。お使いの RDBMS サーバのデータソースをコンフィグレーションするには、このコンフィグレーションを変更する必要があります。「JDBC データソース接続情報の変更」を参照してください。
新しいドメインのインストール後、RDBMS サーバの接続情報を含めるようテンプレート JDBC データソースを変更します。
既存の Oracle Communications Converged Application Server ドメインを変更して Oracle または MySQL RDBMS で呼状態データを格納するためには、必要な JDBC データソースをコンフィグレーションし、Oracle Communications Converged Application Server コンフィグレーションを編集し、データベースに必要なスキーマを追加しなければなりません。Oracle データベースをコンフィグレーションするには、以下の節にある手順に従います。
ドメインに必要な JDBC リソースを作成するため、以下の手順に従います。
RDBMS への呼状態の格納を使用するために Oracle Communications Converged Application Server の永続性オプションをコンフィグレーションするには、以下の手順に従います。
Oracle Communications Converged Application Server には呼状態情報の格納に必要なテーブルを作成するために使用可能な callstate.sql SQL スクリプトが含まれています。コンフィグレーション ウィザードを使用してレプリケートされたドメインをコンフィグレーションした場合、スクリプトはドメイン ディレクトリの user_staged_config サブディレクトリにインストールされます。スクリプトは WLSS_HOME/common/templates/scripts/db/oracle ディレクトリでも使用可能です。
callstate.sql SQL スクリプトの内容をコード リスト 4-1 に示します。
drop table callstate;
create table callstate (
key1 int,
key2 int,
bytes blob default empty_blob(),
constraint pk_callstate primary key (key1, key2)
);
SQL*Plus を使用してスクリプト コマンドを実行するには、以下の手順に従います。
utils ディレクトリに移動します。cd ~/bea/wlcserver_10.3/common/templates/scripts/db/oraclesqlplus username/password@connect_identifier
connect_identifier を使って JDBC 接続プールで指定されたデータベースに接続します。
callstate.sql を実行します。callstate.sql を起動します。
終了
Oracle Communications Converged Application Server では簡単な API を用意し、どのようなときに呼状態データを SIP データ層に保持すべきかについてのヒントを提供しています。特定の呼び出しまたは SIP リクエストの永続性を無効にしたり、デフォルト設定より (ダイアログ境界で) 頻繁にデータを永続性したりする場合には、API を使用できます。
API を使用するには、WlssSipApplicationSession インスタンスを取得して、永続性の有効化と無効化を行う setPersist メソッドを使用します。RDBMS 格納または地理的に冗長な Oracle Communications Converged Application Server インストールに対して永続性を有効化または無効化できます (「地理的に冗長なインストールのコンフィグレーション」を参照してください)。
たとえば、いくつかの SIP 対応ロード バランサ製品では、SIP サーバがアクティブであるかどうかを確認するために SIP OPTIONS メッセージが使用されています。これらのメッセージの RDBMS および地理的に冗長なサイトへの永続性を回避するには、サーブレットは doOptions コード リスト 4-2 に示すように、メソッドを実装して、リクエストをエコーし、永続性を無効にする可能性があります。
protected void doOptions(SipServletRequest req) throws IOException {WlssSipApplicationSession session =
(WlssSipApplicationSession) req.getApplicationSession();
session.setPersist(WlssSipApplicationSession.PersistenceType.DATABASE,
false);
session.setPersist(WlssSipApplicationSession.PersistenceType.GEO_REDUNDANCY, false);
req.createResponse(200).send();
}
|