JDBC アプリケーションのカーソル保持機能のサポート

カーソル保持機能 (Cursor holdability) は、リレーショナル・データベースとの JDBC の対話のオーバーヘッドを減少させるため、 アプリケーション・パフォーマンスの向上につながります。

カーソル保持機能 (Cursor holdability) を活動化することにより、ユーザーはトランザクションの境界を越えて使用可能な結果セットを保持し、複数の JDBC 呼び出しで使用できるようにすることができます。 保持機能の設定はデータベースのカーソルを起動し、新規値または結果セットを生成したトランザクションの確定を超えて新たに更新した行をアクティブのまま保持します。 このようにして、カーソルは結果セットを以降のトランザクションのステートメントで使用できるようにします。

カーソル保持機能 (Cursor holdability) の設定

以下のいずれかの技法を使用して、カーソル保持機能 (Cursor holdability) を設定します。 詳細については、Oracle の Web サイト (http://www.oracle.com/technetwork/java/index.html) で入手できる JDBC 3.0 仕様を参照してください。
  • createStatement、prepareStatement、または prepareCall メソッドを仕様してステートメントを作成または準備する場合は、ResultSet.HOLD_CURSORS_OVER_COMMIT パラメーターを指定します。
  • Connection オブジェクトの setHoldability メソッドを呼び出します。このメソッドで設定するカーソル保持機能 (Cursor holdability) がデフォルトになります。 Statement オブジェクトにカーソル保持機能 (Cursor holdability) を指定すると、その値は Connection に指定した値をオーバーライドします。

    共有可能接続が 2 番目のハンドルにより参照された後で、その接続にカーソル保持機能 (Cursor holdability) を指定することはできません。 この時点で保持機能メソッドを呼び出すと、例外が生成されます。 共有可能接続にカーソル保持機能 (Cursor holdability) を設定する場合は、その接続をリストに入れる前にメソッドを呼び出します。 そうでない場合、共有可能接続は、以前のリスト化で適用したものと同じ保持機能の値を保持します。

  • データベースの資料を確認して、製品がデータ・ソース・プロパティーとしてカーソル保持機能 (Cursor holdability) をサポートしているかどうか、調べてください。 例えば、データ・ソースのカスタム・プロパティーとして保持機能トリガーを設定している場合、DB2® は保持機能トリガーに応答します。詳しくは、トピック『カスタム・プロパティー設定』を参照してください。

接続とトランザクションの動作のカーソル保持機能 (Cursor holdability) への影響

WebSphere® Application Server でカーソル保持機能 (Cursor holdability) を設定すると、異なるトランザクション・イベントについて次の動作が起こります。
  • 接続がクローズされると、すべてのステートメントおよび結果セットは、カーソル保持機能 (Cursor holdability) を設定してあってもクローズされます。
  • トランザクションをロールバックすると、すべての結果セットはカーソル保持機能 (Cursor holdability) を設定してあってもクローズされます。
  • ローカル・トランザクションをコミットすると、共有可能および共有不能の両方の接続が、トランザクションの境界を越えてオープンな結果セットを持つことができます。
  • グローバル・トランザクションをコミットすると、共有不能な接続がトランザクションの境界を越えてオープンな結果セットを持つことができます。 共有可能な接続の場合、ステートメントおよび結果セットは、カーソル保持 機能 (Cursor holdability) を設定してあってもクローズされます。カーソル 保持機能 (Cursor holdability) の値は、グローバル・トランザクションに参 加している共有可能接続に影響しません。
  • ローカル・トランザクションの有効範囲が終了すると、メソッド・レベルまたはアクティビティー・セッション・レベルのいずれかで、共有可能な接続のすべてのステートメントおよび結果セットがクローズされます。 共有できない接続のステートメントおよび結果セットは、クローズ・メソッドが接続で呼び出されるまでオープンのまま残ります。
注: 共有不可接続とのグローバル・トランザクションの場合は、バックエンド・データベースがカーソル保持機能 (Cursor holdability) のサポートを担当します。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_cursorhold
ファイル名:rdat_cursorhold.html