Transaction control

Use this information to understand how the Cúram Server Development Environment (SDEJ) abstracts transaction management from the developer.

This section provides a brief overview for the developer and then details what is happening under the hood. This task is difficult task because of multiple database support, which provides different ways of supporting the ACID nature of a transaction. A transaction might be Atomic. Its result seen to be1 be Consistent2, Isolated3, and Durable4.

1 Atomicity requires that all of the operations of a transaction are carried out successfully for the transaction to be considered complete. If all of a transaction's operations cannot be completed, then none of them can be carried out.
2 Consistency refers to data consistency. A transaction must move the data from one consistent state to another. The transaction must preserve the data's semantic and physical integrity.
3 Isolation requires that each transaction seem to be the only transaction currently manipulating the data. Other transactions might run concurrently. However, a transaction should not see the intermediate data manipulations of other transactions until and unless they successfully complete and commit their work. Because of interdependencies among updates, a transaction might get an inconsistent view of the database were it to see just a subset of another transaction's updates. Isolation protects a transaction from this sort of data inconsistency.
4 Durability means that updates that are made by committed transactions persist in the database regardless of failures that occur after the commit operation and it also ensures that databases can be recovered after a system or media failure.