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.