アプリケーションが DB2® for Linux, UNIX, and Windows サーバー、DB2 for i サーバー、または DB2 for z/OS® サーバーに接続されている場合に、MERGE ステートメントに対して実行できる再試行の回数を指定します。
DB2 for i サーバーへの接続では、RetryOnMERGE キーワードは DB2 for i V7R1 以降のリリースでサポートされます。
- 同等の CLI キーワード
- RetryOnMERGE
- 同等の IBM® Data Server Provider for .NET 接続ストリング・キーワード
- なし
- IBM データ・サーバー・ドライバー構成ファイル (db2dsdriver.cfg) 構文
- <parameter name="RetryOnMERGE" value="0 | 1 | 2 | 3 | 4 | 5 | 6"/>
- デフォルト設定:
- 0
- 同等の接続およびステートメント属性:
- SQL_ATTR_RETRY_ON_MERGE
- 使用上の注意:
- CLI ドライバーは、RetryOnMERGE キーワードを使用して、配列入力チェーニングが有効であったために失敗した MERGE ステートメントを再試行できます。
このような状態は、2 つの MERGE ステートメントが同じ検索条件で同時に同じターゲット・オブジェクトに影響を与えたことにより、MERGE ステートメントの一方が成功し、もう一方が失敗した場合に発生します。DB2 for Linux, UNIX, and Windows、DB2 for i、または DB2 for z/OS サーバーへの接続に対して、配列入力チェーニング・フィーチャーを有効にすることができます。
ColumnwiseMRI キーワードまたは SQL_ATTR_COLUMNWISE_MRI 属性を使用して、DB2 for z/OS サーバーへの接続時に配列入力チェーニング・フィーチャーを有効にすることができます。
DB2 for Linux, UNIX, and Windows または DB2 for i サーバーへの接続時に配列入力チェーニング・フィーチャーを有効にするには、ArrayInputChain キーワードを SQL_ATTR_CHAINING_BEGIN および SQL_ATTR_CHAINING_END ステートメント属性と共に使用します。
CLI ドライバーは、SQLBindParameter() または SQLExtendedBind() 関数を使用したときに指定したパラメーターごとに 100 個の要素で構成される配列バッファーを割り振ります。
サーバー上のリソース競合問題が原因でエラーが発生すると、CLI ドライバーは失敗した行の配列を構成し、RetryOnMERGE キーワードで設定された反復の回数だけステートメントを再実行します。
- 0
- デフォルト値。再試行は行われません。
- 1 から 6
- 実行可能な再試行の回数。最大再試行回数は 6 回です。
以下の条件下では、
RetryOnMERGE キーワードを設定しても効果がありません。
- MERGE 操作にパラメーターとして以下のいずれかのデータ・タイプがバインドされている場合。
- SQL_CLOB
- SQL_BLOB
- SQL_LONGVARBINARY
- SQL_LONGVARGRAPHIC
- SQL_DBCLOB
- SQL_XML
- SQLPutData() および SQLParamData() 関数の呼び出しを必要とする MERGE 操作の SQL_DATA_AT_EXEC 引数にパラメーターがバインドされている場合。
- MERGE 操作に以下のいずれかのステートメント属性が指定されている場合。
- SQL_ATTR_INTERLEAVED_PUTDATA
- SQL_ATTR_INTERLEAVED_STREAM_PUTDATA
- SQL_ATTR_USE_LOAD_API
- MERGE 操作に配列パラメーターが指定されている場合。
- DB2 for Linux, UNIX, and Windows サーバーへの接続で SQL_ATTR_INSERT_BUFFERING ステートメント属性が有効になっている場合。
- CLI ドライバーが、アプリケーション・データを保管するために必要な内部バッファーを割り振ることができない場合。