OpenTP1 Version 7 Operation

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

3.3.2 Forcible determination of transaction

When transaction status is displayed by the trnls command and a transaction's first, second, and third statuses are all READY(p,n) for a prolonged period of time, it may mean that for some reason (such as a communication error) no transaction branch comprising the global transaction is on a status in which it can determine the transaction. OpenTP1 will reattempt to determine the transaction, but if the user cannot wait for the OpenTP1 retry, the affected transaction branch can be terminated forcibly (heuristic decision) by entering an operation command. If the root transaction branch is committed, the transaction branch can be committed by executing the trncmt command. If the root transaction branch is rolled back, the transaction branch can be rolled back by executing the trnrbk command. Whether the root transaction branch is committed or rolled back can be verified either by displaying transaction status with the trnls command or by referencing the message log file with the logcat command.

If transaction branches in the same global transaction are distributed on separate computers, the operation commands must be entered individually. In such a case, all the transaction branches must be determined by the same method (either commitment or rollback).

If the trncmt command executes, the first transaction status displayed by the trnls command is placed on HEURISTIC_COMMIT status; if the trnrbk command is executed, it is placed on HEURISTIC_ROLLBACK status. The status then changes temporarily to HEURISTIC_FORGETTING before the trncmt or trnrbk command's processing terminates.