Try OpenEdge Now
skip to main content
Database Administration
Protecting Your Data : Distributed Transaction Processing : Two-phase commit with ABL clients : Transaction log area
 
Transaction log area
A separate transaction log (TL) storage area holds the transaction log data generated when two-phase commit is in use. You must create and maintain a TL area for your database in order to use two-phase commit.
The transaction log contains the transaction number of all committed distributed transactions. When there is an in-doubt transaction, this log is scanned for the transaction number to determine if the transaction committed or not. If the transaction number is found in the log, it means the transaction committed. If the transaction number is not found in the log, it means the transaction aborted.
When the last block of the TL area is written, PROUTIL automatically resets the current write position to the first block of the area. Thus, the oldest transaction recorded in the log is in the block after the current write position once the write pointer has wrapped around for the first time. The record of the transaction commit written to the log is the 32-bit transaction id of the committed transaction. Aborted transactions do not have a record written to the log.
The TL area can be composed of one or more fixed-length extents. The TL area cannot have a variable-length extent. The TL block size is 16K. Each 16K block can contain the commit record for 4,000 distributed transactions. The transaction log should contain enough space so that the record of a committed transaction is not overwritten before a database containing an in-doubt transaction can be brought back online.
To determine how large the TL area should be, use the PROMON utility to determine the average number of transactions in a 24-hour period. Multiply that number by 1.2, then round up to the nearest multiple of 16KB. The result is the number of bytes you should specify for your TL extents.
For example, if a site commits 1,000,000 transactions per day, the TL extent size needed is calculated as shown:
1,000,000 * 1.2 = 1,200,000
1,200,000/16384 = 73.242 (rounded up to 74)
74 * 16384 = 1212416
1212416/1024 = 1184 KB
This indicates that the total extent length of the TL area should be set to 1184K.