3.6.5 HiRDBと接続する場合の前提条件と注意事項
ここでは,HiRDBと接続する場合の前提条件と注意事項について説明します。HiRDBのバージョンによって,使用できるJDBCドライバが異なります。
- 〈この項の構成〉
(1) 前提条件
-
使用できるJDBCドライバ
使用できるJDBCドライバはHiRDB Type4 JDBC Driverとなります。
-
接続方法
次のどちらかのRARファイルを使用します。
-
DBConnector_HiRDB_Type4_CP.rar
-
DBConnector_HiRDB_Type4_XA.rar
RARファイルの種類に応じて,指定できるトランザクションサポートレベルが異なります。また,ライトトランザクションを使用できるかどうかも異なります。
RARファイルごとに指定できるトランザクションサポートレベルを次の表に示します。
表3‒25 RARファイルごとに使用できるトランザクションサポートレベル 使用するDB Connector
(RARファイル)
トランザクションサポートレベル
ライトトランザクション
有効
無効
DBConnector_HiRDB_Type4_CP.rar
NoTransaction
LocalTransaction
○
○
DBConnector_HiRDB_Type4_XA.rar
XATransaction
−
○
-
(2) HiRDBと接続するときの注意事項
HiRDBと接続する場合の注意を次に示します。
-
HiRDBの自動再接続機能を使用すると,データベースネットワーク障害などでHiRDBサーバとの接続が切断された場合に,コネクションが自動的に再接続されます。ただし,トランザクション中に接続が切断されると,SQLException例外が発生します。J2EEアプリケーションでSQLException例外を受け取ったときには,処理を続行しないでください。続けてDBMSにアクセスするとデータの不整合などの問題が発生するおそれがあります。
-
コネクションプール機能とステートメントプーリング機能を有効にして,Statement.cancel()を使用すると,SQLException例外が発生することがあります。この場合,コネクションプール機能,またはステートメントプーリング機能のどちらかを無効にすることをお勧めします。
-
J2EEアプリケーションが次の条件をすべて満たす場合は,コネクションが二つ使用され,HiRDBへの接続が同時に利用しているユーザ数の2倍になります。HiRDBのシステム共通定義のpd_max_usersオペランドに,同時に利用しているユーザ数の2倍の値を指定してください。pd_max_usersオペランドについては,マニュアル「HiRDB システム定義」を参照してください。
-
トランザクションサポートレベルがXATrasactionのDB Connectorを使用する。
-
アプリケーションサーバが管理するトランザクション内でコネクション※を使ってデータベースにアクセスする。
-
2.のトランザクションが決着する前に,トランザクション外でコネクション※を使ってデータベースにアクセスする。
注※ このコネクションは1.のDB Connectorから取得したコネクションで,かつ同一コネクションです。
-
-
J2EEアプリケーションが次の条件をすべて満たす場合は,エラーが発生します。
-
トランザクションサポートレベルがXATrasactionのDB Connectorを使用する。
-
アプリケーションサーバが管理するトランザクション内でコネクション※を使ってデータベースにアクセスする。
-
2.のトランザクションが決着する前に,トランザクション外でコネクション※を使ってデータベースにアクセスする。
注※ このコネクションは1.のDB Connectorから取得したコネクションで,かつ同一コネクションです。
-
-
次の条件をすべて満たす場合,同一コネクションを複数の異なるグローバルトランザクションに同時に参加させることはできません。トランザクションごとに使用するコネクションを分けてください。
-
トランザクションサポートレベルがXATrasactionのDB Connectorを使用する。
-
アプリケーションサーバが管理するトランザクション内でコネクション※を使ってデータベースにアクセスする。
-
2.のトランザクションが決着する前に,トランザクション外でコネクション※を使ってデータベースにアクセスする。
注※ このコネクションは1.のDB Connectorから取得したコネクションで,かつ同一コネクションです。
-
-
HiRDBのコネクション自動再接続機能およびステートメントプール機能を有効にすると,自動再接続機能によってコネクションが再接続されたあとのSQL実行でメッセージ「KFPA11901-E」を含んだSQLException例外が発生することがあります。トランザクションサポートレベルがLocalTransaction,またはNoTransactionのDB Connectorでステートメントプール機能を有効にしてHiRDBに接続する場合は,HiRDBのコネクション自動再接続機能は使用しないでください。障害が発生した場合は,コネクションの障害検知機能,またはcjclearpoolコマンドを実行してください。