Full Transaction Processing (referred to a TRNLOG or “tran-log”) provides for complete data integrity with full ACID compliance.
TRNLOG files may be updated only within an active transaction. The server stores TRNLOG file updates in memory known as “pre-image space” until the transaction is committed or aborted. It logs transaction "begin" and "commit" operations and file updates to disk-based transaction log files. The use of pre-image space guarantees atomicity and isolation of transaction operations: Changes are made on an all-or-nothing basis and other clients do not see changes until the transaction is committed. The use of transaction logs guarantees recoverability of transactions in the event of an abnormal server termination.
The server ensures TRNLOG files are in a consistent state by performing automatic recovery at server startup. Full Transaction Processing supports both transaction atomicity and transaction recoverability.
Recovery of all committed transactions from any software or hardware failure not involving storage media damage is fully automatic.
The Server can guarantee recoverability of TRNLOG files in the event of an abnormal server termination because it logs to disk the transaction state and updated buffers necessary to guarantee recoverability. At startup, the automatic recovery procedure applies the necessary changes to TRNLOG data and index files to ensure the system is in a consistent transaction state.
In those cases where media damage has occurred, many times the database can be recreated if the appropriate backups and/or logs survived the catastrophe.
Create data and index files as TRNLOG files when operations on the files must be atomic and updates must be recoverable in the event of an abnormal server termination. If only atomicity is needed, PreImage Transaction Processing may be more appropriate.
The performance impact of checkpoint operations, transaction log flushing, and transaction file buffer flushing can be minimized using transaction-related server configuration options such as: