6.6.4 DB Connectorの設定
データベースセッションフェイルオーバ機能を使用する場合,アプリケーションで使用するものとは別に,DB Connectorを新規に作成します。DB Connectorは,J2EEサーバごとに一つ必要です。データベースセッションフェイルオーバ機能を使用するアプリケーションは,すべて同一のDB Connectorを使用します。
DB Connectorのインポートから開始までの手順については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2 データベースと接続するための設定」を参照してください。
この節では,データベースセッションフェイルオーバ機能で使用するDB Connectorに必要な次の設定について説明します。
-
トランザクションサポートのレベルの設定
-
DB Connectorの別名の設定
-
DB Connectorの環境設定
(1) トランザクションサポートのレベルの設定
データベースセッションフェイルオーバ機能ではトランザクションサポートのレベルを設定する必要があります。Connector属性ファイルの<hitachi-connector-property>-<resourceadapter>-<outbound-resourceadapter>タグ以下の<transaction-support>タグにNoTransactionを指定します。
(2) DB Connectorの別名の設定
データベースセッションフェイルオーバ機能ではDB Connectorに別名を設定する必要があります。デフォルトでは"COSMINEXUS_SFO_DBCONNECTOR"がDB Connectorに別名として設定されます。
設定する名称をデフォルトの名称から変更する場合,Connector属性ファイルの<hitachi-connector-property>-<resourceadapter>-<outbound-resourceadapter>-<connection-definition>-<connector-runtime>-<resource-external-property>タグ以下の<optional-name>タグに任意の名称を指定します。DB Connectorの別名の設定については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6 Enterprise BeanまたはJ2EEリソースへの別名付与(ユーザ指定名前空間機能)」を参照してください。
また,J2EEサーバに定義するDB Connectorの別名も同じ値に変更する必要があります。J2EEサーバのDB Connectorの別名の設定については「6.6.1 J2EEサーバの設定」を参照してください。
(3) DB Connectorの環境設定
データベースセッションフェイルオーバ機能は24時間連続稼働を実現するための機能です。連続稼働を実現するには,データベースに障害が発生した場合もシステムに影響を与えないために,コネクションの障害検知などの設定が必要です。障害回復に必要な時間を考慮して,値を設定してください。
コネクションの障害検知については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.15.1 コネクションの障害検知」を参照してください。
DB Connectorに設定するプロパティおよび設定方法の詳細については,マニュアル「アプリケーションサーバ アプリケーション設定操作ガイド」の「4.2.2 DB Connectorのプロパティ定義」を参照してください。
DB Connectorに設定が必要なプロパティについて説明します。
(a) <config-property>タグで設定するプロパティ
<config-property>タグで設定するプロパティについて使用するデータベースごとに示します。なお,ここで示していないプロパティについては,データベースセッションフェイルオーバ機能に関する設定は不要です。
- 注意事項
-
データベースセッションフェイルオーバ機能を使用する場合,ステートメントプーリングを設定する必要があります。ステートメントプーリングは,J2EEサーバのメモリ使用量に大きく影響を与えます。そのため,コネクションプーリングの設定も考慮して,PreparedStatementPoolSizeプロパティの指定値を決定してください。
ステートメントプーリングについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.4 ステートメントプーリング」を参照してください。コネクションプーリングについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.14.1 コネクションプーリング」を参照してください。PreparedStatementPoolSizeプロパティに指定できる値については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「4.1.10 DB Connectorに設定する<config-property>タグに指定できるプロパティ」を参照してください。なお,ステートメント一つ当たりの使用するメモリサイズについては,JDBC関連ドキュメントを参照してください。
- ●HiRDBを使用する場合に設定するプロパティ
-
HiRDBを使用する場合に設定するプロパティについて次の表に示します。
表6‒47 HiRDBを使用する場合に設定するプロパティ <config-property-name>タグに指定する値
<config-property-type>タグに指定する値
<config-property-value>タグに指定する内容または値
必須/任意
description
java.lang.String
データベースへの接続に必要な接続付加情報を指定します。
必須
DBHostName
java.lang.String
接続するHiRDBのホスト名を指定します。
必須
loginTimeout
java.lang.Integer
getConnectionメソッドでConnectionオブジェクトを取得する際の,HiRDBサーバとの物理接続確立の最大待ち時間(秒)を指定します。
任意
LONGVARBINARY_Access
java.lang.String
「LOCATOR」を指定します。
必須
PreparedStatementPoolSize
java.lang.Integer
30×<J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーション数>で求められる数値を指定します。
必須
CancelStatement
java.lang.Boolean
「true」を指定します。
必須
logLevel
java.lang.String
DB Connectorが出力するログトレースのレベルについて,任意のレベルを指定します。
任意
- 注意事項
-
データベースセッションフェイルオーバ機能を使用する場合,クライアント環境定義で次の値を設定してください。
環境変数名
値
PDISLLVL
2
PDFORUPDATEEXLOCK
NO
PDDBLOG
ALL
- ●Oracleを使用する場合に設定するプロパティ
-
Oracleを使用する場合に設定するプロパティについて次の表に示します。
表6‒48 Oracleを使用する場合に設定するプロパティ <config-property-name>タグに指定する値
<config-property-type>タグに指定する値
<config-property-value>タグに指定する内容または値
必須/任意
databaseName
java.lang.String
Oracleサーバ上の特定のデータベース名(SID)を指定します。
必須※
serverName
java.lang.String
Oracleサーバのホスト名またはIPアドレスを指定します。
必須※
portNumber
java.lang.Integer
Oracleのサーバが要求をリスニングするポート番号を指定します。
必須※
url
java.lang.String
Oracle JDBC Thin Driverがデータベースに接続するために必要なJDBC URLを指定します。
必須※
loginTimeout
java.lang.Integer
データベースへの接続試行のタイムアウト(単位:ミリ秒)を指定します。
任意
PreparedStatementPoolSize
java.lang.Integer
30×<J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーション数>で求められる数値を指定します。
必須
logLevel
java.lang.String
DB Connectorが出力するログトレースのレベルについて,任意のレベルを指定します。
任意
(b) <property>タグに指定するプロパティ
<property>タグで設定するプロパティについて次の表に示します。なお,ここで示していないプロパティについては,データベースセッションフェイルオーバ機能に関する設定は不要です。
<property-name>タグに指定する値 |
<property-type>タグに指定する値 |
<property-default-value>タグの値 |
<property-value>タグに指定する内容または値 |
必須/任意 |
---|---|---|---|---|
MaxPoolSize |
int |
10 |
コネクションプールの最大値※1を指定します。 |
必須 |
MinPoolSize |
int |
10 |
コネクションプールの最小値※1を指定します。 |
必須 |
LogEnabled |
boolean |
true |
「true」を指定します。 |
必須 |
User※2 |
String |
− |
ユーザ名を指定します。 |
必須 |
Password |
String |
− |
パスワードを指定します。 |
必須 |
ValidationType |
int |
1 |
「1」を指定します。 |
必須 |
RetryCount |
int |
0 |
コネクション取得リトライ回数を指定します。 データベースの設定やネットワーク環境に合わせて,障害発生時にデータベースの回復が有効になるような値を指定してください。 |
任意 |
RetryInterval |
int |
10 |
コネクション取得リトライ間隔を指定します。 データベースの設定やネットワーク環境に合わせて,障害発生時にデータベースの回復が有効になるような値を指定してください。 |
任意 |
RequestQueueEnable |
boolean |
true |
「true」を指定します。 |
必須※3 |
RequestQueueTimeout |
int |
30 |
コネクション枯渇時のコネクション取得待ち行列のとどまることのできる最大値を指定します。※4 |
必須※3 |
WatchEnabled |
boolean |
true |
コネクションプール監視を有効にするかどうかを指定します。 |
任意 |
WatchInterval |
int |
30 |
コネクションプール監視間隔を指定します。 |
任意 |
WatchThreshold |
int |
80 |
コネクションプール使用状態を監視するしきい値を指定します。 |
任意 |
WatchWriteFileEnabled |
boolean |
true |
「true」を指定します。 |
任意 |
- 注※1
-
コネクションプールの値は,次の式で算出します。なお,コネクションプールの最大値と最小値は同じ値にしてください。
- Webアプリケーション単位,またはURL単位の同時実行スレッド数を設定した場合
-
J2EEサーバ内のデータベースセッションフェイルオーバ機能を使用するWebアプリケーションの同時実行数の和+2
- J2EEサーバ単位の同時実行スレッド数を設定した場合
-
J2EEサーバの同時実行スレッド数+2
コネクションプールの最大値を超えてJ2EEサーバがリクエストを受信すると,そのリクエストはコネクション枯渇時のコネクション取得待ち行列で待ち状態となります。
- 注※2
-
DB Connectorに設定するユーザには,テーブルの作成者を登録してください。
- 注※3
-
Webアプリケーション単位の同時実行スレッド数の制御機能が無効の場合,設定は不要です。
- 注※4
-
次に示す範囲で値を指定してください。
- Webサーバ連携を使用している場合
-
1 < RequestQueueTimeout <リバースプロキシで設定するWebコンテナからのデータ受信のタイムアウト
リバースプロキシで設定するWebコンテナからのデータ受信のタイムアウトとは,ProxyPassディレクティブのtimeoutキーまたはTimeoutディレクティブに指定した値です。
- Webサーバを経由しないでJ2EEサーバに直接リクエストを送受信する場合
-
1 < RequestQueueTimeout