The DFHREST communications area

The CICS-supplied default transaction restart program is written in assembler and contains logic to:

The communications area is mapped by the XMRS_COMMAREA DSECT, which is supplied in the DFHXMRSD copybook. The equivalent structures for C, COBOL, and PL/1 are contained in the copybooks DFHXMRSH, DFHXMRSO, and DFHXMRSP, respectively.

The information passed in the communications area is as follows:

XMRS_FUNCTION
Indicates, in a 1-byte field, the function code for this call to the restart program. This is always set to 1, which equates to XMRS_TRANSACTION_RESTART, which means that DFHREST is called to handle transaction restart.
XMRS_COMPONENT_CODE
Indicates, in a 2-byte field, the component code of the caller. This is always set to XM, which equates to XMRS_TRANSACTION_MANAGER. The transaction manager is the CICS component that coordinates the decision whether or not to restart a transaction.
XMRS_READ
Indicates, in a 1-byte field, whether the transaction has issued any terminal read requests, other than for initial input.

The equated values for this parameter are:

XMRS_READ_YES
Means a terminal read has been performed by the transaction.
XMRS_READ_NO
Means no terminal read has been performed.

XMRS_WRITE
Indicates, in a 1-byte field, whether the transaction has issued any terminal write requests.

The equated values for this parameter are:

XMRS_WRITE_YES
Means a terminal write has been performed by the transaction.
XMRS_WRITE_NO
Means a terminal write has not been performed by the transaction.
XMRS_SYNCPOINT
Indicates, in a 1-byte field, whether the transaction has performed any syncpoints.

The equated values for this parameter are:

XMRS_SYNCPOINT_YES
Means one or more syncpoints have been performed.
XMRS_SYNCPOINT_NO
Means no syncpoints have been performed.
XMRS_RESTART_COUNT
This indicates, as an unsigned, half-word binary value, the number of times the transaction has been restarted.

It is zero if the transaction has not been restarted. It is not the total number of restarts for the transaction definition. Rather it is the total number of restarts for transactions that are attempting, for example, to process a single piece of operator input.

XMRS_ORIGINAL_ABEND_CODE
Provides the first abend code recorded by the transaction.
XMRS_CURRENT_ABEND_CODE
Provides the current abend code. The values of the original abend code and the current abend code can be different if, for example, a transaction handles an abend and then abends later.
XMRS_RESTART
This is a 1-byte output field that the transaction restart program sets to indicate whether it wants CICS to restart the transaction.

The equated values for this field are:

XMRS_RESTART_YES
Requests a restart.
XMRS_RESTART_NO
Requests no restart.

Related tasks
Writing a transaction restart program
Rewriting user-replaceable programs
Assembling and link-editing user-replaceable programs
Related reference
The CICS-supplied transaction restart program
User-replaceable programs and the storage protection facility
[[ Contents Previous Page | Next Page Index ]]