GDSX Manual

Service Routines
Extended General Device Support (GDSX) Manual134303
8-66
^RESUMETRANSACTION
Consideration
The ^REPLYX procedure differs from the Guardian counterpart in having a sixth input
parameter, iocb-tag. The procedure syntax is:
The message-tag parameter is for a message tag returned from ^RECEIVEINFO. The
tag associates this reply with a message previously received. When this parameter is
used, iocb-tag must not be used.
The iocb-tag parameter is declared as an INT(32):value. When used, this parameter
holds the address of the IOCB returned when ^SIGNALTIMEOUT or
^SIGNALINTERRUPT was called. When this parameter is used, message-tag must not
be used.
^RESUMETRANSACTION
This procedure suspends or activates the processing of a TMF transaction. For example,
when TSCODE deactivates a user task that has started a TMF transaction, it calls
^RESUMETRANSACTION with trans-begin-tag set to 0D to suspend the user task’s
transaction. Before activating the user task, TSCODE calls ^RESUMETRANSACTION
with trans-begin-tag set to the transid of the transaction to give the TMF transaction an
active status.
A user task can call ^RESUMETRANSACTION too, but it must own the current
transaction. It is the responsibility of the user task to return the suspended transaction to
active status by calling ^RESUMETRANSACTION with trans-begin-tag set to the
transid of the transaction. The transid of the transaction is stored in the variable transtag
of tcb^template.
A trace record is written after a successful call to ^RESUMETRANSACTION if bit 3 of
trace^control^flags in DCCBDECS is set to 1. The trace records contain the calling task
number of the user task and the TMF transaction identifier of the transaction to become
the current transaction. See “Tracing GDSX” on page 2-77 for more information.
Except for the following consideration, the syntax, condition code settings, and
considerations regarding this procedure are the same as the counterpart in the NonStop
TM/MP Application Programmer’s Guide.
Consideration
Because GDSX does not support multithreaded user tasks that use TMF,
^RESUMETRANSACTION cannot be used to switch back and forth between different
transactions within one user task.
CALL ^REPLYX ( [ buffer ]
,[ write-count ]
,[ count-written ]
,[ message-tag ]
,[ error-return ]
,[ iocb-tag ] );