significance of register settings on return are either described in your resource
manager’s documentation, or defined locally.
Addressing-mode implications
The task-related user exit is invoked in the AMODE of the caller, unless the exit has
been enabled with the LINKEDITMODE option of the EXEC CICS ENABLE
command. This option enables the task-related user exit in its link-edit AMODE.
Therefore, if the TRUE has been link-edited AMODE 31 and is enabled with the
LINKEDITMODE option, it can be placed above the 16MB line. For programming
information about the LINKEDITMODE option of the EXEC CICS ENABLE
command, refer to the
CICS System Programming Reference
manual.
Important
You should avoid the use of the LINKEDITMODE option where the TRUE has
been link-edited AMODE 24. This combination forces the TRUE
always
to run
AMODE 24, which is unwise because:
v An AMODE 24 TRUE cannot be invoked from a transaction running with
TASKDATALOC(ANY). This results in an ‘AEZB’ abend.
v Enabling an AMODE 24 TRUE for task start causes CICS to force all
transactions to run with TASKDATALOC(BELOW).
v On a CICS termination call, CICS ignores LINKEDITMODE and invokes the
TRUE in AMODE 31, if it detects that the TCA it is running under is above
the 16MB line. (This is because, for some types of termination, such as a
cancel, the TCA under which the TRUE will run is not predetermined.)
It is recommended that TRUEs are:
v Written so that they can always run AMODE 31
v Link-edited AMODE 31
v Enabled with the LINKEDITMODE option.
If the task-related user exit has not been enabled with the LINKEDITMODE option
of EXEC CICS ENABLE, it is invoked in the AMODE of the caller. For example, in
the case of an application request, if the application is AMODE 24 at the time of the
DFHRMCAL, the task-related user exit is invoked in AMODE 24. For this reason,
task-related user exits which have been enabled without the LINKEDITMODE
option must reside below the 16MB line.
Exit programs and the CICS storage protection facility
When you are running CICS with the storage protection facility, there are two points
you need to consider for task-related user exits:
1. The execution key in which your task-related user exit programs run
2. The storage key of data storage obtained for your exit programs.
Execution key for task-related user exit programs
When you are running with storage protection active, CICS always invokes
task-related user exit programs in CICS key. Even if you specify EXECKEY(USER)
on the program resource definition, CICS forces CICS key when it passes control to
the TRUE. However, if a task-related user exit program itself passes control to
the task-related user exit program
Chapter 2. Task-related user exit programs 267