18.14.2 Performing transaction determination manually on undetermined transactions
(1) Check for KFPS00992-E messages
Search syslogfile for KFPS00992-E messages.
KFPS00992-E Unable to determine commit or rollback for transaction branch.
TRNGID=HRD1unt100020b4d, TRNBID=HRD1unt100020034, server=bes1, service=p_f_sqa_call
KFPS00992-E Unable to determine commit or rollback for transaction branch.
TRNGID=HRD1unt100020b22, TRNBID=HRD1unt100020035, server=bes1, service=p_f_sqa_call
KFPS00992-E Unable to determine commit or rollback for transaction branch.
TRNGID=HRD1unt100020b5a, TRNBID=HRD1unt100020036, server=bes1, service=p_f_sqa_call
KFPS00992-E Unable to determine commit or rollback for transaction branch.
TRNGID=HRD1unt100020b5f, TRNBID=HRD1unt100020037, server=bes1, service=p_f_sqa_call
KFPS00992-E Unable to determine commit or rollback for transaction branch.
TRNGID=HRD1unt100020b64, TRNBID=HRD1unt100020038, server=bes1, service=p_f_sqa_call |
- Explanation
- The KFPS00992-E messages display transaction branches that could not be committed or rolled back. In this example, the transactions with the following transaction identifiers may be undetermined:
- TRNGID=HRD1unt100020b4d
- TRNGID=HRD1unt100020b22
- TRNGID=HRD1unt100020b5a
- TRNGID=HRD1unt100020b5f
- TRNGID=HRD1unt100020b64
(2) Is the client product running?
Check whether the product used as the HiRDB client is running normally.
(3) Start the client product
If the product used as the HiRDB client is not running normally, start it using the procedure appropriate to the particular product.
Do not forcibly start the client product.
(4) Wait for approximately 1 minute
Wait for approximately 1 minute, because transaction automatic determination may be underway.
(5) Was the KFPS00992-E message output during HiRDB termination processing?
The action to be taken depends on whether the KFPS00992-E message was output during HiRDB termination processing.
(6) Check TRNGID that is output in the KFPS00992-E messages
If the KFPS00992-E message was output during HiRDB termination processing, the pdls -d trn command cannot be executed. Therefore, you must check the TRNGID that is output in each KFPS00992-E message.
(7) Use the pdls command to check transaction status
Use the pdls -d trn command to check the status of transactions.
pdls -d trn
HOSTNAME : host1(153415)
TRNGID TRNBID STATUS PID SVID B-SVID
HRD1unt100020b4d HRD1unt100020034 READY(p,n) 0 bes1 fes1
HRD1unt100020b22 HRD1unt100020035 READY(p,n) 0 bes1 fes1
HRD1unt100020b5a HRD1unt100020036 READY(p,n) 0 bes1 fes1
HRD1unt100020b5f HRD1unt100020037 ROLLBACK(u,n) 29799 bes1 fes1
HRD1unt100020b69 HRD1unt100020039 FORGETTING(r,w) 0 bes1 fes1 |
- Explanation
- Check the information listed in the STATUS column.
- The status of the three transactions listed below is READY(p,?).
TRNGID=HRD1unt100020b4d
TRNGID=HRD1unt100020b22
TRNGID=HRD1unt100020b5a
- Transaction TRNGID=HRD1unt100020b5f was rolled back by determination processing because a client product was started. This transaction will be determined automatically.
- Transaction TRNGID=HRD1unt100020b64 was determined by determination processing because a client product was started. For this reason, this transaction is not listed in the execution results of the pdls -d trn command.
- The status of transaction TRNGID=HRD1unt100020b69, which was not output in a KFPS00992-E message, is FORGETTING(?,w).
(8) Are there any transactions in READY(p,?) or FORGETTING(?,w) status?
If the execution results of the pdls -d trn command still show any transactions in READY(p,?) or FORGETTING(?,w) status (in the STATUS column), you must perform determination of those transactions.
If only transactions in statuses other than READY(p,?) or FORGETTING(?,w) remain, wait for those transactions to be determined automatically.
(9) Check the completion type of undetermined transactions
If there are any transactions in READY(p,?) or FORGETTTING(?,w) status, search the KFPS00990-I messages in syslogfile for the TRNGIDs of the transactions to be determined. Each KFPS00990-I message shows the transaction's completion type. Search only the KFPS00990-I messages that have been output since the previous normal startup.
KFPS00990-I Transaction branch recovery complete. TRNGID=HRD1unt100020b5a,
TRNBID=HRD1unt200020015, server=fes1, service=p_f_sqa_cauxi, completion type=c, c
KFPS00990-I Transaction branch recovery complete. TRNGID=HRD1unt100020b4d,
TRNBID=HRD1unt200020014, server=fes1, service=p_f_sqa_cauxi, completion type=r, r |
- Explanation
- The search results and the actions to be taken are explained below:
- Completion type of transaction TRNGID=HRD1unt100020b5a
Because completion type=c is shown, commit must be used to determine the transaction.
- Completion type of transaction TRNGID=HRD1unt100020b4d
Because completion type=r is shown, rollback must be used to determine the transaction.
- Transactions that were not found in the search and the actions to be taken are explained below:
- Completion type of transaction TRNGID=HRD1unt100020b22
Because there is no KFPS00990-I message for this TRNGID, rollback must be used to determine the transaction.
- Completion type of transaction
TRNGID=HRD1unt100020b69
Because the STATUS is FORGETTING(?,w), the transaction must be terminated forcibly.
- You need not check the completion types of transactions identified by the following TRNGIDs:
- TRNGID=HRD1unt100020b5f
- TRNGID=HRD1unt100020b64
(10) Perform determination of the undetermined transactions
Use the following commands to perform determination of undetermined transactions:
Command name | Function and application criteria |
---|
pdcmt | Commits a transaction. |
pdrbk | Rolls back a transaction. |
pdfgt | Terminates a transaction forcibly. This command is executed for a transaction in FORGETTING(?,w) status. |
(11) Wait for transaction determination
If the only remaining transactions are in statuses other than READY(p,?) or FORGETTING(?,w), these transactions are being determined. Therefore, wait for determination processing to be completed.
(12) Check for transaction determination
When the KFPS00992-E message was output during HiRDB termination processing, check whether or not the KFPS02183-I message has been output. When all undetermined transactions have been determined, the KFPS02183-I message is output within 30 seconds. If this message is not output within 30 seconds, an undetermined transaction remains.
If the KFPS00992-E message is output during HiRDB restart, or if the execution of the pdls -d trn command while HiRDB is running identifies an undetermined transaction, use the pdls -d trn command to check if the transaction has been determined.
(13) Have all transactions terminated?
If there is any transaction that has not terminated, return to step (5) in the procedure.