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.
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) | ||||
|
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) | ||||
|
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 [ ] |
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 |
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) | ||||
|
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) | ||||
|
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) | ||||
|
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) | ||||
|
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 |
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 |
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.