Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 拡張編


6.6.3 データベースの設定

この節では,データベースセッションフェイルオーバ機能を使用する場合に必要となる,テーブルの作成,および環境設定について説明します。

注意事項

テーブルを作成する際,テンプレートファイルについてここで説明しない変更をした場合,データベースセッションフェイルオーバ機能の動作は保障されません。

〈この項の構成〉

(1) データベース接続に必要な権限

データベースのテーブルを操作するには権限が必要です。また,条件を満たす必要があります。データベースごとのテーブルの操作に必要な権限および条件について説明します。ここでは,データベースに接続するユーザのことをデータベース接続ユーザといいます。

(2) データベースのテーブルの作成

データベースセッションフェイルオーバ機能では,データベース上に3種類のテーブルを作成する必要があります。作成するテーブルと,作成手順の参照先について次の表に示します。

表6‒42 作成するテーブルと,作成手順の参照先

テーブル名

データベース上の物理名称

作成手順の参照先

アプリケーション情報テーブル

SFO_<APPLICATION_ID>_APP_INFO

6.6.3(3)

セッション情報格納テーブル

SFO_<APPLICATION_ID>_SESSIONS

6.6.3(4)

空きレコード情報テーブル

SFO_<APPLICATION_ID>_REC_INFO

データベースセッションフェイルオーバ機能で使用するデータベースのテーブル作成用のテンプレートファイルは次の場所に格納されています。

Windowsの場合:

<Application Serverのインストールディレクトリ>\CC\sfo\sql\

UNIXの場合:

/opt/Cosminexus/CC/sfo/sql/

テーブル作成用のテンプレートファイルは使用するデータベースごとに2種類ずつあります。使用するデータベース,ファイル,および作成するテーブルの種類の対応を次の表に示します。

表6‒43 テーブル作成用テンプレートファイルと作成するテーブル

使用するデータベース

テンプレートファイル

作成するテーブルの種類

アプリケーション情報テーブル

セッション情報格納テーブル

空きレコード情報テーブル

HiRDB

hirdb_create_apptbl.sql

hirdb_create_sessiontbl.sql

Oracle

oracle_create_apptbl.sql

oracle_create_sessiontbl.sql

(凡例)○:作成できる −:作成できない

以降で,使用するデータベースごとにテンプレートファイルの詳細について示します。

また,DB Connectorに設定するユーザには,テーブルの作成者を登録してください。

(3) アプリケーション情報テーブルの作成

アプリケーション情報テーブルは,Webアプリケーションに設定したデータベースセッションフェイルオーバ機能に関する設定を格納するテーブルです。

アプリケーション情報テーブルの作成手順を次に示します。

  1. テンプレートファイルを任意の場所にコピーします。

    テーブル作成用のSQLファイルとして,テンプレートファイルが用意されています。テンプレートファイルの格納場所を,使用するデータベースごとに次に示します。

    • HiRDBを使用する場合のテンプレートファイルの格納場所

      Windowsの場合:<Application Serverのインストールディレクトリ>\CC\sfo\sql\hirdb_create_apptbl.sql

      UNIXの場合:/opt/Cosminexus/CC/sfo/sql/hirdb_create_apptbl.sql

    • Oracleを使用する場合のテンプレートファイルの格納場所

      Windowsの場合:<Application Serverのインストールディレクトリ>\CC\sfo\sql\oracle_create_apptbl.sql

      UNIXの場合:/opt/Cosminexus/CC/sfo/sql/oracle_create_apptbl.sql

  2. テンプレートファイルを編集します。

    Webアプリケーションの設定情報に合わせて,テンプレートファイルを編集して,テーブル作成用SQLファイルを作成します。

    テンプレートファイル内の変更個所と変更内容を次の表に示します。

    表6‒44 テンプレートファイル内の変更個所と変更内容

    変更個所

    変更対象

    変更内容

    HiRDB

    Oracle

    • 1行目

    • 5行目

    • 1行目

    • 5行目

    <APPLICATION_ID>

    使用するアプリケーションのアプリケーション識別子に変更してください。

    なし

    • 1行目

    • 5行目

    <SCHEMA_NAME>

    データベース接続ユーザのスキーマ名に変更してください。

    6行目

    6行目

    <HTTP_SESSION_NO>

    データベースに格納するグローバルセッション情報の数に変更してください。

  3. 作成したテーブル作成用SQLファイルを実行します。

    SQLファイルの実行には,HiRDBを使用する場合はSQL Executer,Oracleを使用する場合はSQL*Plusなどを使用してください。

(4) セッション情報格納テーブルおよび空きレコード情報テーブルの作成

セッション情報格納テーブルは,グローバルセッション情報を格納するテーブルです。空きレコード情報テーブルは,セッション情報格納テーブルの未使用レコードを管理するテーブルです。セッション情報格納テーブルおよび空きレコード情報テーブルは,一つのテーブル作成用のSQLファイルを実行することで同時に作成されます。

セッション情報格納テーブルおよび空きレコード情報テーブルの作成手順を次に示します。

  1. テンプレートファイルを任意の場所にコピーします。

    テーブル作成用のSQLファイルとして,テンプレートファイルが用意されています。テンプレートファイルの格納場所を,使用するデータベースごとに次に示します。

    • HiRDBを使用する場合のテンプレートファイルの格納場所

      Windowsの場合:<Application Serverのインストールディレクトリ>\CC\sfo\sql\hirdb_create_sessiontbl.sql

      UNIXの場合:/opt/Cosminexus/CC/sfo/sql/hirdb_create_sessiontbl.sql

    • Oracleを使用する場合のテンプレートファイルの格納場所

      Windowsの場合:<Application Serverのインストールディレクトリ>\CC\sfo\sql\oracle_create_sessiontbl.sql

      UNIXの場合:/opt/Cosminexus/CC/sfo/sql/oracle_create_sessiontbl.sql

  2. テンプレートファイルを編集します。

    Webアプリケーションの設定情報に合わせて,テンプレートファイルを編集して,テーブル作成用SQLファイルを作成します。

    テンプレートファイル内の,使用するデータベースごとの変更個所と変更内容について次の表に示します。

    表6‒45 テンプレートファイル内の変更個所と変更内容

    変更個所

    変更対象

    変更内容

    HiRDB

    Oracle

    • 1行目

    • 13行目

    • 18行目

    • 19行目

    • 23行目

    • 48行目

    • 50行目

    • 57行目

    • 60行目

    • 74行目

    • 1行目

    • 13行目

    • 18行目

    • 19行目

    • 23行目

    • 49行目

    • 51行目

    • 58行目

    • 61行目

    • 74行目

    <APPLICATION_ID>

    使用するアプリケーションのアプリケーション識別子に変更してください。

    なし

    • 1行目

    • 13行目

    • 18行目

    • 19行目

    • 23行目

    • 49行目

    • 51行目

    • 58行目

    • 60行目

    • 74行目

    <SCHEMA_NAME>

    データベース接続ユーザのスキーマ名に変更してください。

    7行目

    なし

    <ATTRIBUTE_DATA_SIZE_MAX>

    HTTPセッションの属性情報の最大サイズ(単位:バイト)に変更してください。

    74行目

    74行目

    <HTTP_SESSION_NO>

    データベースに格納するグローバルセッション情報の数に変更してください。

  3. 作成したテーブル作成用SQLファイルを実行します。

    SQLファイルの実行には,HiRDBを使用する場合はSQL Executer,Oracleを使用する場合はSQL*Plusなどを使用してください。

(5) データベースの環境設定

データベースセッションフェイルオーバ機能を使用する場合,データベースにはタイムアウト(HiRDBの場合UAP処理時間監視機能)の設定をしてください。

データベースセッションフェイルオーバ機能が有効の場合,機能の処理の中で操作対象となるデータベースのテーブルのレコードが排他制御されます。そのため,J2EEサーバのホストでの障害発生時などに,操作対象となっていたレコードが排他されたままになる場合があります。このとき,HTTPセッションの新規作成や,J2EEサーバとデータベースとの接続に失敗するおそれがあります。

タイムアウトの設定をしておくと,このような状況を検知してタイムアウト時にトランザクションがロールバックされ,レコードが排他制御される前の状態に戻るため,システムへの影響はなくなります。

なお,誤動作を防ぐために,データベースのタイムアウトの値にはDB Connectorに設定するタイムアウトの値よりも大きな値を設定してください。データベースの設定内容,手順については,HiRDBを使用する場合はマニュアル「HiRDB UAP開発ガイド」を,Oracleを使用する場合はOracleのマニュアルを参照してください。

レコードが排他制御される処理,処理中に操作対象となるテーブル,処理中にJ2EEサーバで障害が発生した場合のシステムへの影響,および出力されるメッセージを次の表に示します。

表6‒46 レコードが排他制御される処理と処理中にJ2EEサーバで障害が発生した場合のシステムへの影響

項番

レコードが排他制御される処理

操作対象のテーブル

障害が発生した場合のシステムへの影響

出力されるメッセージ

1

Webアプリケーション開始時のネゴシエーション処理

アプリケーション情報テーブル

アプリケーションのネゴシエーションに失敗するため,データベースセッションフェイルオーバ機能を使用するWebアプリケーションの開始に失敗します。

出力されない

2

グローバルセッション情報の作成処理

空きレコード情報テーブル

システムで作成できるHTTPセッションの数が全体の90%になります。このあと,HTTPセッションの作成,または削除処理に失敗する場合があります。

  • 完全性保障モード無効時:KDJE34368-W

  • 完全性保障モード有効時:KDJE34312-W

3

グローバルセッション情報の削除処理

空きレコード情報テーブル

システムで作成できるHTTPセッションの数が全体の90%になります。このあと,HTTPセッションの作成,または削除処理に失敗する場合があります。

  • 完全性保障モード無効時:KDJE34377-E

  • 完全性保障モード有効時:KDJE34312-W

4

グローバルセッション情報の更新処理

セッション情報格納テーブル

システムで作成できるHTTPセッションの数が1個分減少します。このあと,減少したHTTPセッションを操作するリクエストを受信すると,HTTPセッションの取得に失敗します。

  • 完全性保障モード無効時:KDJE34368-W

  • 完全性保障モード有効時:KDJE34312-W

5

グローバルセッション情報の有効期限監視処理

アプリケーション情報テーブル

データベース上のグローバルセッション情報の有効期限が監視されなくなります。

  • 完全性保障モード無効時:排他処理を行わない

  • 完全性保障モード有効時:KDJE34336-W