プールされたコネクションを再利用した場合のコネクションオブジェクトの設定情報について
- Connection.setTransactionIsolation()を使って トランザクションアイソレーションレベルを設定し、コネクションをプールしたあと、プールされたコネクションを再利用すると、再利用前に設定された情報は継続されますか?
- JDBCドライバは、コネクションオブジェクトをプールする際に、以下の情報をデータベースの初期値に戻します
。
- 自動コミットモード (初期値 : 自動コミットが有効)
- トランザクションアイソレーションレベル (初期値 : TRANSACTION_SERIALIZABLE)
- 読み込み専用モード (初期値 : 読み込み専用モードが無効)
多数のユーザーがコネクション要求を行うシステムの場合、どのユーザーがプールされたコネクションオブジェクトを再利用するのか、特定することが困難なケースが考えられます。
コネクションオブジェクトに設定された情報を初期化しないで再利用すると、再利用したユーザーにとって、本来設定しないはずの情報が既に設定されているため、予期しない動作が発生してしまう恐れがあります。
このような運用上の誤動作を防止するため、JDBCドライバでは、コネクションオブジェクトをプールする際に、コネクションオブジェクトに関する情報を初期化してから、オブジェクトをプールしています。
製品・サービス区分 | Symfoware | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 技術サポート |