6.4.1 アプリケーション開始時の処理

ここでは,アプリケーション開始時に実施されるアプリケーションのネゴシエーション処理,およびアプリケーションのネゴシエーション処理で使用するアプリケーション識別子について説明します。

<この項の構成>
(1) アプリケーションのネゴシエーション処理
(2) アプリケーション識別子

(1) アプリケーションのネゴシエーション処理

データベースセッションフェイルオーバ機能を使用するWebアプリケーションでは,アプリケーション開始時にネゴシエーション処理が実行されます。

ネゴシエーション処理では,次の内容が確認されます。

ネゴシエーション処理の結果によってWebアプリケーションが開始されるかどうかが決まります。

ネゴシエーション処理の結果とWebアプリケーションの状態の関係を次の表に示します。

表6-5 ネゴシエーション処理の結果とWebアプリケーションの状態の関係

ネゴシエーション処理の結果Webアプリケーションの状態ネゴシエーションの失敗の要因出力されるメッセージ
成功(確認内容に問題なし)開始されるKDJE34306-I
失敗(確認内容に問題あり)開始されないWebアプリケーションが一致していない。KDJE34340-E
開始されないWebアプリケーションの設定が一致していない。KDJE34307-E
開始されるKDJE34358-I
開始されないJ2EEサーバの設定が一致していない。KDJE34307-E
開始されない必要なテーブルがデータベースに存在していない。KDJE34308-W
開始されない存在するテーブルの内容がデータベースセッションフェイルオーバ機能用のテーブルの内容ではない。KDJE34309-E
開始されない存在するテーブルがほかのアプリケーションで使用されている。KDJE34340-E

(凡例)-:該当なし

注※ 次の確認項目について,開始するWebアプリケーションと,そのほかのJ2EEサーバ上の同一Webアプリケーションとで異なる値が設定されていた場合,Webアプリケーションの開始処理を続行するか中止するかを,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグにwebserver.dbsfo.negotiation.high_levelパラメタを指定することで選択できます。

これ以外の確認項目について一致していない場合は,Webアプリケーションは開始されません。

なお,Webアプリケーションの開始処理を中止する設定にした場合,HttpSessionオブジェクト数の上限値に1以上の有効な値を必ず設定してください。


ネゴシエーションの処理中にデータベースアクセスでエラーが発生した場合,KDJE34312-Wのメッセージがメッセージログに出力されます。

(a) ネゴシエーションで確認される内容(データベースセッションフェイルオーバ機能)

ネゴシエーションで確認される内容の詳細について説明します。

(b) ネゴシエーションで確認されるWebアプリケーションの設定内容

最初にネゴシエーション処理に成功したWebアプリケーションの設定内容は,データベースのアプリケーション情報テーブルに保存されます。保存された設定内容はネゴシエーションの確認で使用される,正しい設定情報として扱われます。

このため,Webアプリケーションの設定内容を変更する場合は,すでにデータベースに保存されている,変更対象のWebアプリケーションに関連する設定情報を削除する必要があります。設定の変更手順については,「6.10 データベースセッションフェイルオーバ機能に関する設定の変更」を参照してください。

(2) アプリケーション識別子

アプリケーション識別子とは,データベースセッションフェイルオーバ機能使用時にクラスタリングされたWebアプリケーションを認識するための名称です。デフォルトの設定では,システムによって自動的に生成されます。

アプリケーション識別子は,ネゴシエーションでWebアプリケーションが一致しているかどうかの確認に使用されます。そのため,次の条件を満たしている必要があります。

システムによって自動的に生成されるアプリケーション識別子が条件を満たさない場合,条件を満たす値を定義する必要があります。定義方法については「6.5 cosminexus.xmlでの定義」を参照してください。

アプリケーション識別子の自動生成規則,および自動生成されるアプリケーション識別子の例について説明します。

注意
異なるWebアプリケーションに同じアプリケーション識別子が設定されている場合,二つ目のWebアプリケーション開始時にネゴシエーションに失敗して,Webアプリケーションが開始されません。
(a) アプリケーション識別子の自動生成規則

デフォルトの設定では,アプリケーション識別子にはコンテキストルート名を基にした文字列が自動的に設定されます。アプリケーション識別子が自動的に生成された場合,Webアプリケーション開始時に,適用した値がKDJE34302-Iのメッセージでメッセージログに出力されます。

コンテキストルート名を基にしたアプリケーション識別子の自動生成には,次に示す規則が適用されます。

自動生成規則を適用した結果,アプリケーション識別子がシステム内で一意でなくなる場合があります。この場合,同じアプリケーション識別子が設定されている二つ目のWebアプリケーション開始時にネゴシエーションに失敗して,Webアプリケーションが開始されません。そのため,Webアプリケーションに対してシステム内で一意になるアプリケーション識別子を設定する必要があります。

(b) 自動生成されるアプリケーション識別子の例

コンテキストルート名から自動生成されるデフォルトのアプリケーション識別子の例を次の表に示します。

表6-10 自動生成されるデフォルトのアプリケーション識別子の例

項番コンテキストルート名アプリケーション識別子作成時に適用されるルール
1/examplesexamples先頭の"/"を削除する
2/App01/test1App01_test1
  • 先頭の"/"を削除する
  • 途中の"/"を"_"に置換する
3/WebApplication_001WebApplication_0
  • 先頭の"/"を削除する
  • 17文字以降を削除する
4/examples/WebApplicationexamples_WebAppl
  • 先頭の"/"を削除する
  • 途中の"/"を"_"に置換する
  • 17文字以降を削除する
5/ROOTルートコンテキストのため"ROOT"とする