Manager The transaction manager maintains the state of a single transaction and the correposing save points. All objects which shall be used with the transaction manager have to be derived from this package. Any implementation required the implemention of only two basic procedure for the transaction management. The working principle is best understood by looking at the test code proving the basic features of the package. In the example below, a transaction is opened on the object item and a scratch version of the object is created for further processing.
All processing is done on the scratch object.
After the savepoint 1, the object is manipulted. At a certain point in the processing, it will be decided, that is makes sense to fall back to state of item at savepoint 1. This will restore the contents of the scratch object to the state at savepoint 1 which means the employee number will be 77 again. This has to be done, because till Commit or Cancel the object is locked for other transaction. If the exception is not catched correctly, the transaction would end up hanging for ever.