Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


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メソッドを実行してください。

    1. コネクションプーリングを使用してデータベースに接続している,またはXAを用いてデータベースに接続している場合

    2. 接続データベースがHiRDBの場合

    3. ホールダブルカーソルを使用していない場合

    4. StatementクラスのsetExecuteDirectModeメソッドを,引数Modeにfalseを指定して実行している場合

    5. オートコミットを有効にしている場合

参考

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をスローします。

(凡例)

○:該当します。

−:該当しません。