Nonstop Database, HiRDB Version 9 System Operation Guide

[Contents][Index][Back][Next]

20.21 Checking the transaction completion type when an error occurs during commit processing (HiRDB parallel server configurations only)

Executor: HiRDB administrator

This section explains the method of checking the transaction completion type when an error occurs during commit processing.

When an error occurs during transaction execution, HiRDB performs commit or rollback processing for each server. When this processing is completed, HiRDB sets information about each transaction and the transaction completion type in a KFPS00990-I message that it outputs to the transaction's server. If an error occurred that caused a transaction to roll back on its own, HiRDB sets the transaction information and transaction completion type in a KFPS00973-I message that it outputs to the server in which updating branching occurred.

The following figure shows how to check the transaction completion type when an error has occurred. You use this procedure also when a commit error is returned for a UAP.

Figure 20-10 Checking the transaction completion type when an error has occurred

[Figure]

#1: Use the pdls command to check if all servers (excluding recovery-unnecessary front-end servers) are running.

#2: Compare the following information:
  • Transaction identifiers that are output in the execution results of the pdls -d trn command
  • Transaction identifiers that are output in the KFPS00973-I or KFPS00990-I messages
Check if any transaction identifier is output to both. If any transaction's identifier is output to both, wait for that transaction to terminate.

#3: Compare the following information:
  • Client process ID, IP address, and UAP identification name output in the execution results of the pdls -d trn -a command
  • Process ID, IP address, and UAP identification name of a UAP for which a commit error occurred
Check if there is any transaction to which both of these apply.
When there is a transaction for which there is a match in all three items of information
Wait for that transaction to terminate.
When there is a transaction for which there is a match in only the UAP identification name, and neither the process ID nor the IP address is displayed
Take action by performing the following procedure.
  1. Check the transaction identifier of the applicable transaction.
  2. Referring to the execution results of the pdls -d trn -a command, check if the transaction identifier found in step 1 is also displayed elsewhere.
  3. If it is also displayed elsewhere, check if the client process ID and IP address of that transaction are displayed. If no transaction is displayed, wait for transactions to terminate.

The following table shows the transaction completion types when an error occurs during commit processing. Note that the transaction completion types in the table apply only in cases in which the front-end server or back-end server unit did not terminate abnormally.

Table 20-25 Transaction completion types when an error occurred during commit processing

Item Error timing Front-end server Back-end or dictionary server Transaction completion type
KFPS00973-I or KPFS00990-I message Completion type that is output in message KFPS00973-I or KPFS00990-I message Completion type that is output in message
1 During commit processing Yes Commit Yes Commit Commit
2 Rollback Rollback
3 No -- Commit
4 Rollback Yes Commit Commit
5 Rollback Rollback
6 No -- Rollback
7 No -- Yes Commit Commit
8 Rollback Rollback
9 No -- Commit
10 Before transaction completion Yes Rollback Yes Rollback Rollback
11 No -- Rollback
12 No Yes Rollback Rollback
13 No -- --

Legend:
--: Not applicable