Subject Commit retaining
Author Josh Higgs
Morning

Can someone please explain what CommitRetaining is meant to be used for:

a) Iterating through a dataset, and making updates in the same txn context,
while periodically CommitRetaining, so that the main iterating dataset does
not close and maintains its cursor position and "old" snapshot view of it's
data. The TXN is fully committed and must be immediately followed by a
txn.StartTransaction

or

b) Iterating through a dataset, making updates in the same txn context,
while periodically CommitRetaining in order to save the work, but the
Transaction is not fully finished yet. A rollback will rollback to the most
recent CommitRetaining.

I get the feeling b) is actually describing a SavePoint, and a) is the true
description of a CommitRetaining.

So,

1) What exactly is "Retained" in a CommitRetaining - obviously not the
Transaction.

2) Since the txn is fully committed in a CommitRetaining, where does the
dataset that is kept open get's it's remaining data from?

Thanks




Josh