Journaling records redundant copies of database update information to increase protection against loss of information due to hardware and software failure. In GT.M, TSTART and TCOMMIT mark the beginning and end of an application (logical) transaction, which may consist of multiple global variable updates. When a TCOMMIT takes $TLEVEL from one (1) to zero (0), it transfer all of the transaction updates to the journal file, and, except if TRANSACTIONID="BATCH", returns control to the application only after the associated records reach the secondary storage holding the journal file.
The following table summarizes the GT.M language extensions for journaling.