18.12 Connectionクラス
- 説明
-
Connectionクラスでは,主に次の機能を提供します。
-
Statementクラス,PreparedStatementクラス,およびCallableStatementクラスのオブジェクト生成
-
トランザクションのコミットまたはロールバック
-
オートコミットモードの設定
Connectionクラスの提供する各メソッドの詳細,および使用方法については,JavaSoft提供のJDBC関連ドキュメントを参照してください。
-
- 注意事項
-
-
Connectionのクローズ
Connectionのcloseメソッドを発行しないでアプリケーションを終了すると,DABroker Library側にリソースが残る場合があります。このため,SQL実行などでエラーの発生によって終了する場合は,catchブロックまたはfinallyブロック内でcloseメソッドを発行してください。
Connectionのcloseメソッドの発行でエラーが発生した場合,SQLExceptionをスローしません。また,プーリング使用時(ConnectionPoolDataSourceを使用した接続),およびXA使用時(XADataSourceを使用した接続)はConnectionのcloseメソッド実行でデータベースとの物理的な切断はしません。
-
カタログ
DABroker Libraryでは,接続データベース種別にかかわらず,カタログをサポートしていません。このため,getCatalogメソッドは無条件にnullを返却し,setCatalogメソッドは何もしません。
-
アクセスモード
DABroker Libraryでは,アクセスモードの変更をサポートしていないため,isReadOnlyメソッドは無条件にfalseを返却し,setReadOnlyメソッドは何もしません。
-
トランザクション分離モード
DABroker Libraryでは,トランザクション分離モードの変更をサポートしていません。このため,getTransactionIsolationメソッドでは,常にTRANSACTION_READ_UNCOMMITTEDを返却し(データベースの仕様を表しているものではありません),setTransactionIsolationメソッドはTRANSACTION_READ_UNCOMMITTED以外が指定された場合,SQLExceptionをスローします。
-
データベースアクセスリソース数の制限
DABroker Libraryを利用するアプリケーションでは,一つのコネクションで利用できるリソース数の最大は1024個です。ここでいうリソースとは,Statementクラス,PreparedStatementクラス,CallableStatementクラスのオブジェクト,およびDatabaseMetaDataクラスの中で一覧系情報をResultSetに格納するメソッドの同時実行数を指します。
-
オートコミット
次のすべての条件に一致する更新SQL(INSERT,UPDATEおよびDELETE)を実行する場合は,事前に検索中のResultSetオブジェクトまたは検索中のResultSetオブジェクトを生成したStatement(継承したクラスも含みます)オブジェクトに対してcloseメソッドを実行してください。
-
コネクションプーリングを使用してデータベースに接続している,またはXAを用いてデータベースに接続している場合
-
接続データベースがHiRDBの場合
-
ホールダブルカーソルを使用していない場合
-
StatementクラスのsetExecuteDirectModeメソッドを,引数Modeにfalseを指定して実行している場合
-
オートコミットを有効にしている場合
-
-
- 参考
-
closeメソッドを実行しないで更新SQLを実行した場合,更新SQL実行後ResultSetオブジェクトをクローズした時にHiRDBでエラーが発生することがあります。この場合,SQLExceptionによるエラーの通知はされませんが,HiRDBのエラーログ,SQLトレースおよびDABroker Libraryの拡張データベースアクセストレースにHiRDBのエラーメッセージ(KFPA11501-E)を出力します。
- 制限事項
-
DABroker Libraryで使用するConnectionクラスの制限事項を,次に示します。
表18‒75 Connectionクラスの制限事項 メソッド名
制限事項
JDBC1.0での制限
JDBC2.0での制限
close
通常接続時はデータベースとの接続を解除します。プーリング使用時(ConnectionPoolDataSourceを使用した接続),およびXA使用時(XADataSourceを使用した接続)は物理的な切断はしません。Connection.closeメソッドの実行でエラーが発生した場合はSQLExceptionをスローしません。
○
○
createStatement
更新結果を反映するResultSetをサポートしていないため,ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合,TYPE_SCROLL_INSENSITIVEに切り替え,SQLWarningを設定します。また,並行処理タイプにCONCURE_UPDATABLEを指定した場合,CONCUR_READ_ONLYに切り替え,SQLWarningを設定します。
−
○
getCatalog
無条件にnullを返却します。
○
○
getTransactionIsolation
無条件にTRANSACTION_READ_UNCOMMITTEDを返却します。
○
○
getTypeMap
ユーザ定義型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○
isReadOnly
無条件にfalseを返却します。
○
○
prepareCall
更新結果を反映するResultSetをサポートしていないため,ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合,TYPE_SCROLL_INSENSITIVEに切り替え,SQLWarningを設定します。また,並行処理タイプにCONCURE_UPDATABLEを指定した場合,CONCUR_READ_ONLYに切り替え,SQLWarningを設定します。
−
○
prepareStatement
更新結果を反映するResultSetをサポートしていないため,ResultSetタイプにTYPE_SCROLL_SENSITIVEを指定した場合,TYPE_SCROLL_INSENSITIVEに切り替え,SQLWarningを設定します。また,並行処理タイプにCONCURE_UPDATABLEを指定した場合,CONCUR_READ_ONLYに切り替え,SQLWarningを設定します。
−
○
setCatalog
使用できません。
○
○
setReadOnly
使用できません。
○
○
setTransactionIsolation
使用できません。
○
○
setTypeMap
ユーザ定義型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○