gtpd1m1z | Database Reference |
TPF transaction services includes support for a transaction manager, resource managers, log manager, and recovery log to ensure a consistent view of the database. A consistent view of the database ensures that either all or none of the file changes have been completed; there is no such thing as a partially updated database.
The transaction manager (TM) provides a set of application program interfaces (APIs) for the application to define both the scope of a transaction as well as actions to be taken for the transaction. The TM coordinates resource managers and determines which resources are written to the recovery log at commit time and which resources are recovered at restart time. The TM is aware of which resource managers are participating in TPF transaction services processing as well as what transactions are active. The TM also understands both nested and suspended commit scopes and uses a set of XA functions, defined by the X/Open specification, to interface with the resource managers.
The following resource managers (RMs) supplied by IBM work with the TM to identify and harden (write to the recovery log) resources used by the application in a commit scope:
During normal processing, RMs do the following:
You can write your own RM provided that it adheres to the architected TM and RM interface. Adhering to the interface means that the user-written RM can participate in all TPF transaction services actions controlled by the TM and all log and recovery actions controlled by the log manager (LM).
The log manager controls the recovery log and recovery actions.
The recovery log is written to DASD and holds the data necessary to recover resources following a system failure without compromising the integrity of the database. The recovery log is defined as vertically allocated, processor unique, fixed file records. This permits the log to be striped (written one track at a time, indexing across all of the modules for the device type) across the TPF database, which gives the TPF system the ability to handle an arbitrarily large data rate.