In the current release of FDO, the following long transaction interfaces are supported:
- FDOIActivateLongTransaction
- FDOIDeactivateLongTransaction
- FDOIRollbackLongTransaction
- FDOICommitLongTransaction
- FDOICreateLongTransaction
- FDOIGetLongTransaction
These interfaces are summarized below. For more information about their usage, supported methods, associated enumerations and readers, see the FDO API Reference Help.
The FdoIActivateLongTransaction interface defines the ActivateLongTransaction command, which activates a long transaction where feature manipulation and locking commands operate on it. Input to the activate long transaction command is the long transaction name. The Execute operation activates the identified long transaction.
The FdoIDeactivateLongTransaction interface defines the DeactivateLongTransaction command, which deactivates the active long transaction where feature manipulation and locking commands operate on it. If the active long transaction is the root long transaction, then no long transaction will be deactivated.
The FdoIRollbackLongTransaction interface defines the RollbackLongTransaction command, which allows a user to execute rollback operations on a long transaction. Two different rollback operations are available: Full and Partial.
The operation is executed on all data within a long transaction and on all its descendents. The data is removed from the database and all versions involved in the process deleted.
The FdoICommitLongTransaction interface defines the CommitLongTransaction command, which allows a user to execute commit operations on a long transaction. Two different commit operations are available: Full and Partial.
The commit operation can be performed on a leaf long transaction only. A long transaction is a leaf long transaction if it does not have descendents.
The FdoICreateLongTransaction interface defines the CreateLongTransaction command, which creates a long transaction that is based on the currently active long transaction. There is always an active long transaction. If the user has not activated a user-defined long transaction, then the root long transaction is active.
Input to the CreateLongTransaction command includes a name and description for the new long transaction. The long transaction name submitted to the command has to be unique. If it is not unique, an exception is thrown.
The FdoIGetLongTransactions interface defines the GetLongTransactions command, which allows the user to retrieve long transaction information. If a long transaction name is submitted, the command returns the information for the named long transaction only. If no long transaction name is given, the command retrieves the names of all available long transactions.
For each returned long transaction, the user has the option to retrieve a list of descendents and/or ancestors.