IBM Books

Administrative API Reference


Transaction Manager Log Records

The transaction manager produces log records signifying the completion of transaction events (for example, commit or rollback). The time stamps in the log records are in Coordinated Universal Time (CUT), and mark the time (in seconds) since January 01, 1970.

Normal Commit

This log record is written for XA transactions in a single-node environment, or on the coordinator node in MPP. It is only used for XA applications. The log record is written when a transaction commits after one of the following events:


Table 113. Normal Commit Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Time transaction committed unsigned long 20(4)
Authorization identifier of the applicationa char [ ] 24(9)
Total Length: 33 bytes propagatable (24 bytes non-propagatable)
Note:a If the log record is marked as propagatable

Heuristic Commit

This log record is written when an indoubt transaction is committed.

Table 114. Heuristic Commit Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Time transaction committed unsigned long 20(4)
Authorization identifier of the applicationa char [ ] 24(9)
Total Length: 33 bytes propagatable (24 bytes non-propagatable)
Note:a If the log record is marked as propagatable

MPP Coordinator Commit

This log record is written on a coordinator node for an application that performs updates on at least one subordinator node.

Table 115. MPP Coordinator Commit Log Record Structure
Description Type
Log header LogManagerLogRecordHeader
MPP identifier of the transaction SQLP_GXID
Maximum node number 2 bytes
TNL variable, (max node no / 8) + 1
Authorization identifier char [ ]

MPP Subordinator Commit

This log record is written on a subordinator node in MPP.

Table 116. MPP Subordinator Commit Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
MPP identifier of the transaction SQLP_GXID 20(20)
Authorization identifier char [ ] 40(9)
Total Length: 49 bytes

Normal Abort

This log record is written when a transaction aborts after one of the following events:


Table 117. Normal Abort Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Authorization identifier of the applicationa char [ ] 20(9)
Total Length: 29 bytes propagatable (20 bytes non-propagatable)
Note:a If the log record is marked as propagatable

Heuristic Abort

This log record is written when an indoubt transaction is aborted.

Table 118. Heuristic Abort Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Authorization identifier of the applicationa char [ ] 20(9)
Total Length: 29 bytes propagatable (20 bytes non-propagatable)
Note:a If the log record is marked as propagatable

Local Pending List

This log record is written if a transaction commits and a pending list exists. The pending list is a linked list of non-recoverable operations (such as deletion of a file) that can only be performed when the user/application issues a COMMIT. The variable length structure contains the pending list entries.

Table 119. Local Pending List Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Time transaction committed unsigned long 20(4)
Authorization identifier of the applicationa char [ ] 24(9)
Pending list entries variable 33(variable)
Total Length: 33 bytes plus pending list entries propagatable (24 bytes plus pending list entries non-propagatable)
Note:a If the log record is marked as propagatable

Global Pending List

This log record is written if a transaction involved in a two-phase commit commits, and a pending list exists. The pending list contains non-recoverable operations (such as deletion of a file) that can only be performed when the user/application issues a COMMIT. The variable length structure contains the pending list entries.

Table 120. Global Pending List Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Time transaction committed unsigned long 20(4)
Authorization identifier of the applicationa char [ ] 24(9)
Global pending list entries variable 32(variable)
Total Length: 33 bytes plus pending list entries propagatable (24 bytes plus pending list entries non-propagatable)
Note:a If the log record is marked as propagatable

XA Prepare

This log record is written for XA transactions in a single-node environment, or on the coordinator node in MPP. It is only used for XA applications. The log record is written to mark the preparation of the transaction as part of a two-phase commit. The XA prepare log record describes the application that started the transaction, and is used to recreate an indoubt transaction.

Table 121. XA Prepare Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Log space used by transaction unsigned long 20(4)
XA identifier of the transaction variable 24(140)
Application name char [ ] 164(20)
Application identifier char [ ] 184(32)
Sequence number char [ ] 216(4)
Authorization identifier char [ ] 220(8)
Database alias used by client char [ ] 228(20)
Code page identifier unsigned long 248(4)
Time transaction prepared unsigned long 252(4)
Synclog information variable 256(variable)
Total Length: 256 bytes plus variable

MPP Subordinator Prepare

This log record is written for MPP transactions on subordinator nodes. The log record is written to mark the preparation of the transaction as part of a two-phase commit. The MPP subordinator prepare log record describes the application that started the transaction, and is used to recreate an indoubt transaction.

Table 122. MPP Subordinator Prepare Log Record Structure
Description Type Offset (Bytes)
Log header LogManagerLogRecordHeader 0(20)
Log space used by transaction unsigned long 20(4)
Coordinator LSN unsigned char 24(6)
MPP identifier of the transaction SQLP_GXID 30(20)
Application name char [ ] 50(20)
Application identifier char [ ] 70(32)
Sequence number char [ ] 102(4)
Authorization identifier char [ ] 106(8)
Database alias used by client char [ ] 114(20)
Code page identifier unsigned long 134(4)
Time transaction prepared unsigned long 138(4)
Total Length: 142 bytes

Backout Free

This log record is used to mark the end of a backout free interval. The backout free interval is a set of log records that is not to be compensated if the transaction aborts. This log record contains only a 6-byte log sequence number (complsn, stored in the log record header starting at offset 20). When this log record is read during rollback (following an aborted transaction), complsn marks the next log record to be compensated.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]

[ DB2 List of Books | Search the DB2 Books ]