Defining Transactions [ ALLBASE/SQL Reference Manual ] MPE/iX 5.5 Documentation
ALLBASE/SQL Reference Manual
Defining Transactions
Concurrency control in ALLBASE/SQL operates at the level of the
transaction, which identifies an individual user's unit of work within a
multiuser DBEnvironment. As mentioned in a previous chapter,
transactions are bounded by BEGIN WORK and COMMIT WORK statements. If
you omit the BEGIN WORK statement, ALLBASE/SQL issues one automatically,
using the RR (repeatable read) isolation level. ALLBASE/SQL keeps track
of which transactions are accessing which pages of data at a particular
moment in time. Transactions have unique ID numbers which are listed in
the SYSTEM.TRANSACTION pseudotable in the system catalog.
Transactions can be seen as taking place over time, as in Figure 5-1 .
Figure 5-1. Transactions over Time
In this example, transaction 2 begins before transaction 1 ends;
therefore, transaction 1 and transaction 2 are concurrent transactions.
Transaction 3 begins after transaction 1 has committed; therefore,
transaction 1 and transaction 3 are not concurrent, since they do not
occupy the same time.
Concurrent transactions that need to access the same data pages may be in
contention for a particular table, page, or row at a particular moment.
Suppose transaction 1 needs to access an entire table as part of a
reporting application. If transaction 2 needs to update parts of that
table, it may need to wait until transaction 1 is complete before the
update can proceed.
MPE/iX 5.5 Documentation