リリース情報


36.5 第 3 章 拡張フィーチャーの使用法

36.5.1 マルチスレッド・アプリケーションの書き込み

以下を「Multi-Threaded Mixed Applications」セクションの終わりに追加します。

注:
デフォルトのスタック・サイズを使用せずに、スタック・サイズを 少なくとも 256 000 に増やすことをお勧めします。DB2 では、DB2 関数の呼び出し時に 必要な最小スタック・サイズは 256 000 です。したがって、お使いのアプリケーションと、 DB2 関数呼び出し時の最小要件の両方を十分に満たす合計スタック・サイズが割り当てられている ことを確認する必要があります。

36.5.2 スクロール可能カーソル

以下の情報は「スクロール可能カーソル」セクションに追加されています。

36.5.2.1 サーバー側のスクロール可能カーソル・サポート (OS/390)

Unix、Windows、および OS/2 プラットフォームの UDB クライアントは、 OS/390 バージョン 7 データベースに対して実行されるとき、 更新可能なサーバー側のスクロール可能カーソルをサポートします。 3 階層環境で OS/390 スクロール可能カーソルにアクセスするには、 クライアントおよびゲートウェイが DB2 UDB バージョン 7.1 フィックスパック 3 またはそれ以降を 実行している必要があります。

スクロール可能カーソルにアクセスできる アプリケーション使用可能化インターフェースには、 ODBC と JDBC の 2 つがあります。 JDBC インターフェースは、静的スクロール可能カーソルにのみアクセスすることが可能で、 ODBC インターフェースは、静的およびキーセット・ドリブンの サーバー側スクロール可能カーソルにアクセスすることが可能です。

カーソル属性

下の表では、ODBC での OS/390 バージョン 7 カーソルの デフォルト属性をリストします。


表 23. ODBC での OS/390 カーソルの デフォルト属性
カーソル・タイプ カーソル感度 カーソル更新可能 カーソル並列性 カーソル・スクロール可能
フォワードのみa 未指定 更新不可 読み取り専用並列性 スクロール不可
静的 反映不可 更新不可 読み取り専用並列性 スクロール可能
キーセット・ドリブン 反映可能 更新可能 値並列性 スクロール可能

a フォワードのみは、FOR UPDATE 文節を使用しない スクロール可能カーソルのデフォルトの振る舞いです。 フォワードのみカーソルで FOR UPDATE を指定すると、 更新可能、ロック並列性、スクロール不可のカーソルが作成されます。

サポートされているフェッチ方向

すべての ODBC フェッチ方向が SQLFetchScroll または SQLExtendedFetch インターフェースで サポートされます。

キーセット・ドリブン・カーソルの更新

キーセット・ドリブン・カーソルは更新可能なカーソルです。 照会が SELECT ... FOR READ ONLY として 実行されている場合、または FOR UPDATE 文節がすでに 指定されている場合を除いて、CLI ドライバーは FOR UPDATE 文節を 照会に追加します。 DB2 (OS/390 版) に実装されたキーセット・ドリブン・カーソルは、値並列性カーソルです。 値並列性カーソルを使用するとオプティミスティック・ロックになります。 更新または削除が試行されるまでロックは行われません。 更新または削除が試行されると、データベース・サーバーは、アプリケーションが検索した 以前の値を基礎表の現行値と比較します。 値が一致する場合、更新または削除は成功します。 値が一致しない場合、操作は失敗します。 失敗した場合、アプリケーションは値をもう一度照会して、 まだ適用可能であれば更新または削除を再実行します。

アプリケーションはキーセット・ドリブン・カーソルを以下の 2 つの方法で更新することができます。

スクロール可能カーソル・サポートの前に作成されたアプリケーションの障害追及

スクロール可能カーソル・サポートは新しい機能であるため、 UDB (OS/390 版) または UDB (Unix 版、Windows 版、および OS/2 版) の前のリリースを 使用していた一部の ODBC アプリケーションでは、振る舞いまたはパフォーマンスが変わる 可能性があります。 スクロール可能カーソルを要求したアプリケーションは、 スクロール可能カーソルがサポートされる前は フォワードのみカーソルを受け取っていたために、 このようなことが起こります。 スクロール可能カーソル・サポート前のアプリケーションの振る舞いを復元するには、 次の構成キーワードを db2cli.ini ファイルに設定します。

表 24. スクロール可能カーソル・サポート前のアプリケーションの振る舞いを復元する 構成キーワード値
構成キーワード設定 記述
PATCH2=6 スクロール可能カーソル (キーセット・ドリブンおよび静的) がサポートされていない というメッセージを返します。 CLI は、スクロール可能カーソルの要求をフォワードのみカーソルに 自動的にダウングレードします。
DisableKeysetCursor=1 サーバー側とクライアント側の両方のキーセット・ドリブン・スクロール可能カーソルを使用不可にします。 これは、キーセット・ドリブン・カーソルが要求されたときに、CLI ドライバーによって アプリケーションが静的カーソルを提供することを強制するために使用されます。
UseServerKeysetCursor=0 クライアント側のキーセット・ドリブン・カーソル・ライブラリーを使用して キーセット・ドリブン・カーソルをシミュレートするアプリケーションに対してサーバー側の キーセット・ドリブン・カーソルを使用不可にします。 サーバー側のキーセット・ドリブン・カーソルで問題が発生した場合のみ、このオプションを使用します。 クライアント側のカーソルは大量のオーバーヘッドを発生させ、 通常、サーバー側のカーソルよりパフォーマンスが劣ってしまうためです。

36.5.3 複合 SQL の使用

以下の注釈がブックから欠落しています:

      動的に用意できる SQL ステートメントは、照会の場合を除いて、
   複合ステートメント内のステートメントとして実行できます。
 
   注釈: アトミック複合 SQL 内で、保管点、リリース保管点、および SQL ステートメントの
   保管点へのロールバックもまた許可されません。逆に、アトミック複合 SQL は
   保管点で許可されません。

36.5.4 ストアード・プロシージャーの使用

36.5.4.1 CLI でのストアード・プロシージャーの記述

以下は、CLI ストアード・プロシージャーで文書化されていない制限です:

   複数 CLI ストアード・プロシージャーへの呼び出しを行う場合、
   次のストアード・プロシージャーを呼び出す前に、アプリケーションは
   ストアード・プロシージャーからオープン・カーソルをクローズする必要があります。
   具体的には、オープン・カーソルの最初のセットを、次のストアード・プロシージャーが
   カーソルをオープンする前にクローズしなければなりません。

36.5.4.2 CLI ストアード・プロシージャーおよび自動バインド

以下は、ブックの補足情報です。

CLI/ODBC ドライバーは、CLI/ODBC アプリケーションが、データベースに対して SQL を 初めて実行した時に、ユーザーに適切な特権または許可がある 場合、CLI パッケージを自動バインドします。CLI パッケージの自動バインドは、 ストアード・プロシージャー内から実行できません。そのため、アプリケーションが最初に 行うことが CLI ストアード・プロシージャーの呼び出しである場合、この自動バインドは起きません。新しい DB2 データベースに対して CLI ストアード・プロシージャーを呼び出す CLI アプリケーションを実行する前に、 次のコマンドで、一度 CLI パッケージをバインドする必要があります。

UNIX
db2 bind <BNDPATH>/@db2cli.lst blocking all

Windows および OS/2
db2bind "%DB2PATH%\bnd\@db2cli.lst" blocking

お勧めするアプローチとしては、データベースが、実行時に自動バインドするのを回避する ために作成される時に、このパッケージを常にバインドする方法があります。自動バインドは、ユーザーに 特権がない場合、または別のアプリケーションが同時に自動バインドを行っている場合には失敗します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]