OpenEdge Release 11.7.2 Service Pack includes the following improvement to the OpenEdge DataServer for MS SQL Server:
Support for savepoints — The DataServer for MS SQL Server now supports savepoints for backing out sub-transactions and maintaining sub-transaction boundaries efficiently. From OpenEdge Service Pack Release 11.7.2, ABL sub-transactions are translated to SQL Server savepoints and UNDO of a sub-transaction is handled by SQL Server.
The following describe how rollback of a sub-transaction is handled:
UNDO of sub-transactions with LOBs — In previous releases of OpenEdge, backing out a sub-transaction with LOBs aborted the entire transaction and resulted in the following error:
“Undo of sub-transaction modifying a large object. Backing out transaction. (11599)”
From release 11.7.2, DataServer for MS SQL Server allows you to rollback only that specific sub-transaction with LOBs without backing out the entire transaction using savepoints.
UNDO of DELETE — In previous releases of OpenEdge, submitting a CREATE after performing an UNDO of a DELETE sub-transaction generated a gap in PROGRESS_RECID value. For example, consider that the PROGRESS_RECID value is 1, and you performed an UNDO of a DELETE sub-transaction. If you create a new record after the UNDO, the PROGRESS_RECID value changes to 3 instead of 2—a gap in the value. From release 11.7.2, this gap is not generated in PROGRESS_RECID value using savepoints.