User Manual

Configuring Automatic Transaction Processing
HP NonStop AutoTMF Software User’s Guide429952-014
4-18
Setting Transaction Time Out
Eventually, a long running transaction can reach the TMF AutoAbort limit, at which
point the transaction is unilaterally aborted and uncommitted updates are rolled back,
causing potentially irrecoverable data loss.
While forcing a commit before a program has released locks is tantamount to altering
the program’s logic and would leave the program in an uncertain state, failing to
commit the transactions before reaching the unilateral abort is not an option.
To prevent the loss of data in cases where the program’s behavior causes a unilateral
abort, AutoTMF uses a configurable AUTOCOMMIT timer. The AutoTMF runtime
monitors automatic transactions to determine if any have been active for more than the
AUTOCOMMIT time limit.
The process must be active, either receiving messages on $RECEIVE or performing
database positioning operations. Processes in a "wait" state are not monitored for long
transactions.
If there are outstanding automatic transactions when the AUTOCOMMIT time limit is
reached, the NonStop AutoTMF runtime takes the following actions:
1. Forces the commit of all automatic transactions,
2. Issues an EMS message,
3. Terminates the process with an abend.
The program has to be restarted but no data is lost.
To use the AUTOCOMMIT feature effectively, the time limit should be set to be lower
than the TMF AutoAbort time limit by at least 5 minutes. The default value for
AUTOCOMMIT is 115 minutes, based on the default TMF AUTOABORT time limit of
120 minutes. If you set the TMF AUTOABORT limit to a different value, you must set
the AutoTMF AUTOCOMMIT accordingly (AUTOABORT - 5 minutes).
Setting Transaction Time Out
As mentioned in Reducing causes of unilateral aborts above, some programs might
need to hold locks for a longer period than is permitted by the TMF AutoAbort setting.
An alternative to increasing the AutoAbort time limit for all transactions is configuring a
time out value for automatic transaction, provided your system is running TMF version
3.6 or later.
To specify how long an automatic transaction can live, set the TXTIMEOUT file or
program attribute or the ATMFTXTIMEOUT global parameter. Defining a TXTIMEOUT
value effectively sets the TMF AutoAbort time limit, but only for a specific program, a
specific file or for all automatic transactions.
TXTIMEOUT value can be set as follows:
to a value between 5 and 515 minutes
to NEVER, to ignore the TMF AutoAbort setting