6.13.3 DB Connectorの環境設定

データベースセッションフェイルオーバ機能は24時間連続稼働を実現するための機能です。連続稼働を実現するには,データベースに障害が発生した場合もシステムに影響を与えないために,コネクションの障害検知などの設定が必要です。障害回復に必要な時間を考慮して,値を設定してください。

コネクションの障害検知については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.1 コネクションの障害検知」を参照してください。

DB Connectorに設定するプロパティおよび設定方法の詳細については,マニュアル「Cosminexus アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2.2 DB Connectorのプロパティ定義」を参照してください。

DB Connectorに設定が必要なプロパティについて説明します。

<この項の構成>
(1) <config-property>タグで設定するプロパティ
(2) <property>タグに指定するプロパティ

(1) <config-property>タグで設定するプロパティ

<config-property>タグで設定するプロパティについて使用するデータベースごとに示します。なお,ここで示していないプロパティについては,データベースセッションフェイルオーバ機能に関する設定は不要です。

注意
データベースセッションフェイルオーバ機能を使用する場合,ステートメントプーリングを設定する必要があります。ステートメントプーリングは,J2EEサーバのメモリ使用量に大きく影響を与えます。そのため,コネクションプーリングの設定も考慮して,PreparedStatementPoolSizeプロパティの指定値を決定してください。
ステートメントプーリングについては,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.4 ステートメントプーリング」を参照してください。コネクションプーリングについては,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1 コネクションプーリング」を参照してください。PreparedStatementPoolSizeプロパティに指定できる値については,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「4.1.10 DB Connectorに設定する<config-property>タグに指定できるプロパティ」を参照してください。なお,ステートメント一つ当たりの使用するメモリサイズについては,JDBC関連ドキュメントを参照してください。
(a) HiRDBを使用する場合に設定するプロパティ

HiRDBを使用する場合に設定するプロパティについて次の表に示します。

表6-53 HiRDBを使用する場合に設定するプロパティ

<config-property-name>タグに指定する値<config-property-type>タグに指定する値<config-property-value>タグに指定する内容または値必須/任意
descriptionjava.lang.Stringデータベースへの接続に必要な接続付加情報を指定します。
DBHostNamejava.lang.String接続するHiRDBのホスト名を指定します。
loginTimeoutjava.lang.IntegergetConnectionメソッドでConnectionオブジェクトを取得する際の,HiRDBサーバとの物理接続確立の最大待ち時間(秒)を指定します。
LONGVARBINARY_Accessjava.lang.String「LOCATOR」を指定します。
PreparedStatementPoolSizejava.lang.Integer30×<J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーション数>で求められる数値を指定します。
CancelStatementjava.lang.Boolean「true」を指定します。
logLeveljava.lang.StringDB Connectorが出力するログトレースのレベルについて,任意のレベルを指定します。

(凡例) ○:必須 △:任意


注意
データベースセッションフェイルオーバ機能を使用する場合,次に示すクライアント環境定義を設定すると,正常な運用を続けることができなくなります。デフォルト値のまま使用してください。
  • PDISLLVL(デフォルト値:2)
  • PDFORUPDATEEXLOCK(デフォルト値:NO)
クライアント環境定義の設定については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
(b) Oracleを使用する場合に設定するプロパティ

Oracleを使用する場合に設定するプロパティについて次の表に示します。

表6-54 Oracleを使用する場合に設定するプロパティ

<config-property-name>タグに指定する値<config-property-type>タグに指定する値<config-property-value>タグに指定する内容または値必須/任意
databaseNamejava.lang.StringOracleサーバ上の特定のデータベース名(SID)を指定します。
serverNamejava.lang.StringOracleサーバのホスト名またはIPアドレスを指定します。
portNumberjava.lang.IntegerOracleのサーバが要求をリスニングするポート番号を指定します。
urljava.lang.StringOracle JDBC Thin Driverがデータベースに接続するために必要なJDBC URLを指定します。
loginTimeoutjava.lang.Integerデータベースへの接続試行のタイムアウト(単位:ミリ秒)を指定します。
PreparedStatementPoolSizejava.lang.Integer30×<J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーション数>で求められる数値を指定します。
logLeveljava.lang.StringDB Connectorが出力するログトレースのレベルについて,任意のレベルを指定します。

(凡例) ○:必須 △:任意

注※ databaseName,serverNameおよびportNumberのすべての値を指定するか,urlの値を指定してください。


(2) <property>タグに指定するプロパティ

<property>タグで設定するプロパティについて次の表に示します。なお,ここで示していないプロパティについては,データベースセッションフェイルオーバ機能に関する設定は不要です。

<property-name>タグに指定する値<property-type>タグに指定する値<property-default-value>タグの値<property-value>タグに指定する内容または値必須/任意
MaxPoolSizeint10コネクションプールの最大値※1を指定します。
MinPoolSizeint10コネクションプールの最小値※1を指定します。
LogEnabledbooleantrue「true」を指定します。
User※2Stringユーザ名を指定します。
PasswordStringパスワードを指定します。
ValidationTypeint1「1」を指定します。
RetryCountint0コネクション取得リトライ回数を指定します。
データベースの設定やネットワーク環境に合わせて,障害発生時にデータベースの回復が有効になるような値を指定してください。
RetryIntervalint10コネクション取得リトライ間隔を指定します。
データベースの設定やネットワーク環境に合わせて,障害発生時にデータベースの回復が有効になるような値を指定してください。
RequestQueueEnablebooleantrue「true」を指定します。※3
RequestQueueTimeoutint30コネクション枯渇時のコネクション取得待ち行列のとどまることのできる最大値を指定します。※4※3
WatchEnabledbooleantrueコネクションプール監視を有効にするかどうかを指定します。
WatchIntervalint30コネクションプール監視間隔を指定します。
WatchThresholdint80コネクションプール使用状態を監視するしきい値を指定します。
WatchWriteFileEnabledbooleantrue「true」を指定します。
(凡例) ○:必須 △:任意 -:なし
注※1
コネクションプールの値は,次の式で算出します。なお,コネクションプールの最大値と最小値は同じ値にしてください。
Webアプリケーション単位,またはURL単位の同時実行スレッド数を設定した場合
J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーションの同時実行数の和+2
J2EEサーバ単位の同時実行スレッド数を設定した場合
J2EEサーバの同時実行スレッド数+2以上
コネクションプールの最大値を超えてJ2EEサーバがリクエストを受信すると,そのリクエストはコネクション枯渇時のコネクション取得待ち行列で待ち状態となります。
注※2
DB Connectorに設定するユーザには,テーブルの作成者を登録してください。
注※3
Webアプリケーション単位の同時実行スレッド数の制御機能が無効の場合,設定は不要です。
注※4
次に示す範囲で値を指定してください。
Webサーバ連携機能を使用している場合
1 < RequestQueueTimeout < リダイレクタ側で設定するWebコンテナからのデータ受信のタイムアウト
リダイレクタ側で設定するWebコンテナからのデータ受信のタイムアウトとは,ワーカ定義ファイルのworker.<ワーカ名>.receive_timeoutキーに指定した値です。
インプロセスHTTPサーバ機能を使用している場合
1 < RequestQueueTimeout