Nonstop Database, HiRDB Version 9 System Operation Guide
This section explains how to perform transaction determination manually on undetermined transactions.
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 |
Check whether the product used as the HiRDB client is running normally.
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.
Wait for approximately 1 minute, because transaction automatic determination might be underway.
The action to be taken depends on whether the KFPS00992-E message was output during HiRDB termination processing.
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.
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 |
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.
If there are any transactions in READY(p,?) or FORGETTING(?,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 |
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. |
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.
When the KFPS00992-E message was output during HiRDB termination processing, check whether 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.
If there is any transaction that has not terminated, return to step (5) in the procedure.
All Rights Reserved. Copyright (C) 2011, 2015, Hitachi, Ltd.