On the CALL and RECOVER requests, CSVDYNEX provides a return area
for the caller to receive information relating to successful and unsuccessful
processing of one or more exit routines. As it processes an exit,
the system places information (called
return information) in
that return area. Before you issue the CALL request, you obtain the
storage for the return area; on both the CALL and RECOVER requests,
you specify its address on the RETAREA parameter and its length on
the RETLEN parameter. The following illustration shows the return
information from two exit routines associated with EX1, where the
CALL specified RETINFO=ALL.
For description of CSVEXRET, see z/OS MVS Data Areas in
the z/OS Internet library.
The caller might not want to receive all the return information
from all the exit routines. The RETINFO parameter on the CALL request
tells the system which information the caller should receive. If
the caller wants the system to receive return information from only
one of the potentially many exit routines, the DEFINE request with
RCFROM, RCTO, RCCOMPARE, and RCCVAL parameters can specify how the
system is to choose which return information to return. The process
of choosing involves merging return codes.
On the CALL request, you choose which return information
the system places in the return area:
- The caller receives return information from all routines (the
RETINFO=ALL parameter). In this case the system does not need to
merge the return codes and none of the RCxx parameters on the DEFINE
request apply. The caller must provide a large enough return area
for all the information; if the area becomes full, the system does
not call any more exit routines and returns to the caller with a token
in the NEXTTOKEN parameter. The caller can reissue the CALL request,
using the NEXTTOKEN parameter. The system then continues calling
the exit routines where it left off.
- The caller receives return information from only the last routine
(the RETINFO=LAST parameter). In this case the system does not need
to merge the return codes and none of the RCxx parameters on the DEFINE
request apply.
- The caller receives return information from the exit routine that
returns with the highest return code or the exit routine that returns
with the lowest return code. In this case, the RCFROM, RCCOMPARE,
RCTO, and RCCVAL parameters on the DEFINE request tell the system
to compare and possibly modify return codes, before choosing the lowest
or highest. Merging return codes contains more information
about this topic.