Specifies the number
of retry attempts that can be made for a MERGE statement when the
application is connected to Db2®, Db2 for IBM® i,
or Db2 for z/OS® servers.
For
connection to a Db2 for IBM i server,
the RetryOnMERGE keyword is supported on Db2 for IBM i V7R1
and later releases.
- Equivalent CLI keyword
- RetryOnMERGE
- Equivalent IBM data server
provider for .NET connection string keyword
- N/A
- IBM data server driver configuration
file (db2dsdriver.cfg) syntax
<parameter name="RetryOnMERGE" value="0 | 1 | 2 | 3 | 4 | 5 | 6"/>
- Default setting:
- 0
- Equivalent connection and statement attribute:
- SQL_ATTR_RETRY_ON_MERGE
- Usage notes:
- The CLI
driver can use the RetryOnMERGE keyword to retry the MERGE statement that
failed because the array input chaining was enabled. This situation occurs when two MERGE statements
affect the same target object with the same search condition at the same time, causing one of the
MERGE statements to succeed and the other to fail. You can enable the array input chaining feature
for the connection to Db2, Db2 for IBM i, or Db2 for z/OS servers.
- You can use the ColumnwiseMRI keyword or the SQL_ATTR_COLUMNWISE_MRI
attribute to enable the array input chaining feature when you are connecting to Db2 for z/OS servers. Use the
ArrayInputChain keyword with the SQL_ATTR_CHAINING_BEGIN and
SQL_ATTR_CHAINING_END statement attributes to enable the array input chaining feature when you are
connecting to Db2 or Db2 for IBM i servers.
-
The CLI
driver allocates an array buffer that consists of 100 elements for each parameter that you provide
when you use the SQLBindParameter() or SQLExtendedBind()
function. When an error is encountered due to a resource contention issue on the server, the
CLI driver
constructs an array of failed rows and reruns the statement again for the number of iterations set
with the RetryOnMERGE keyword.
- 0
- The default value. No retry attempt is made.
- 1 - 6
- Number of retry attempts that can be made. The maximum number of retry attempts is six.
-
The
RetryOnMERGE keyword setting has no effect under the following conditions:
- If any of the following data types are bound as a parameter in a MERGE operation:
- SQL_CLOB
- SQL_BLOB
- SQL_LONGVARBINARY
- SQL_LONGVARGRAPHIC
- SQL_DBCLOB
- SQL_XML
- If a parameter is bound with the SQL_DATA_AT_EXEC argument in a MERGE
operation, which requires calls to the SQLPutData() and
SQLParamData() functions.
- If any of the following statement attributes are specified in a MERGE operation:
- SQL_ATTR_INTERLEAVED_PUTDATA
- SQL_ATTR_INTERLEAVED_STREAM_PUTDATA
- SQL_ATTR_USE_LOAD_API
- If array parameters are specified for a MERGE operation.
- If the SQL_ATTR_INSERT_BUFFERING statement attribute is enabled in a
connection to a Db2 server.
- If the CLI
driver is unable to allocate required internal buffers to store application data.