TMF Introduction (G06.24+)

Transaction Coordination
HP NonStop Transaction Management Facility (TMF) Introduction522414-001
2-9
Physical Transaction Identification
Physical Transaction Identification
Each TMF transaction is distinguished from other transactions by a transaction
identifier or transid. A transaction is a uniquely identified entity known to the system
and exists separately from the application that defines the sequence of operations in
the transaction. A transaction can span processes; therefore, the system associates a
current transaction identifier with each process.
For example, after a SCREEN COBOL program has initiated a new transaction
identifier by issuing BEGIN-TRANSACTION, the terminal control process (TCP) and
server processes cooperate to accomplish the changes required by the transaction, as
illustrated in Figure 2-5.
TCPs and servers communicate through interprocess messages. To ensure that each
action is identified with a specific transaction, the transaction identifier is attached to
each message sent by any of the processes. When a process reads the message, the
message’s transaction identifier becomes the current transaction identifier for that
process.
A TCP supports the overall processing flow of each terminal by sending messages to
the appropriate server processes through the system file $RECEIVE.
Since a single transaction can result in a multistep update requiring several servers,
each server is associated with the transaction identifier of the SCREEN COBOL
program that issued BEGIN-TRANSACTION. All operations on the database are
identified with the transaction, and all locks obtained for database access are owned
by the transaction, allowing several servers to do work concurrently for the same
transaction.
Figure 2-5. Relationship Between TCP and Server Processes
Server Class A
Server Class B
Begin
Trans #1
Begin
Trans #2
TCP
Database
Update
Disk
All work by the selected
server from Server Class A
is identified with Transid .
1
Transid
1
Transid
2
Transid
1
Transid
2
All work by the selected
server from Server Class B
is identified with Transid .
2
VST009.vsd