Product Documentation

c-treeACE V10.0 Release Notes

Previous Topic

Next Topic

Removed Savepoint COUNT Limitation

A RVHD_ERR (123) was observed when reading a record from a variable-length data file after the record was updated in a transaction consisting of many operations separated by savepoints. After the update, in the data file only the record body (no record header) existed at the record offset. The transaction had been comprised of more than 32768 savepoints, however, the function that searched preimage space for an entry matching the target record offset cast the savepoint value to a COUNT. As a result, a preimage space entry containing the record image for the current savepoint was not found and a new entry containing only the record body was added to preimage space. Removing the data type cast in the assignment of the savepoint number to a local variable resolves this issue.

Note: There still remains a COUNT size limitation on the return value of the SetSavepoint() API call. Due to this restriction, it is advised to not specify more than 32768 savepoints within a transaction. Using the special rolling savepoint through the ReplaceSavepoint() API call avoids this restriction.

TOCIndex