PURPOSE

TPABORT - abort current TUXEDO System/T transaction

SYNOPSIS


01  TPTRXDEF-REC.
    COPY TPTRXDEF.
01  TPSTATUS-REC.
    COPY TPSTATUS.
CALL "TPABORT" USING TPTRXDEF-REC TPSTATUS-REC.

DESCRIPTION

TPABORT signifies the abnormal end of a transaction. When this call returns, all changes made to resources during the transaction are undone. Like TPCOMMIT(3cbl), this routine can be called only by the initiator of a transaction. Participants (that is, service routines) can express their desire to have a transaction aborted by calling TPRETURN(3cbl) with TPFAIL.

If TPABORT is called while communication handles exist for outstanding replies, then upon return from the routine, the transaction is aborted and those communications handles associated with the caller's transaction are no longer valid. Communications handles not associated with the caller's transaction remain valid.

For each open connection to a conversational server in transaction mode, TPABORT will send a TPEV-DISCONIMM event to the server, whether or not the server has control of a connection. Connections opened before TPBEGIN(3cbl) or with the TPNOTRAN setting (that is, not in transaction mode) are not affected.

Currently, TPABORT's argument, TPTRXDEF-REC, is reserved for future use.

RETURN VALUES

Upon successful completion, TPABORT sets TP-STATUS to [TPOK].

ERRORS

Under the following conditions, TPABORT fails and sets TP-STATUS to:

[TPEINVAL]

Invalid arguments were given. The caller's transaction is not affected.
[TPEHEURISTIC]

Due to a heuristic decision, the work done on behalf of the transaction was partially committed and partially aborted.
[TPEHAZARD]

Due to some failure, the work done on behalf of the transaction could have been heuristically completed.
[TPEPROTO]

TPABORT was called in an improper context (for example, by a participant).
[TPESYSTEM]

A System/T error has occurred. The exact nature of the error is written to a log file.
[TPEOS]

An operating system error has occurred.

NOTICES

When using TPBEGIN(3cbl), TPCOMMIT(3cbl) and TPABORT to delineate a System/T transaction, it is important to remember that only the work done by a resource manager that meets the XA interface (and is linked to the caller appropriately) has transactional properties. All other operations performed in a transaction are not affected by either TPCOMMIT(3cbl) or TPABORT.

SEE ALSO

TPBEGIN(3cbl),
TPCOMMIT(3cbl),
TPGETLEV(3cbl),