Calling an exit routine or routines
exit provider setup
_____
_____
_____
CSVDYNEX REQUEST=DEFINE,EXITNAME==CL16'EX1'...
_____
exit provider processing
_____
CSVDYNEX REQUEST=CALL,EXITNAME==CL16'EX1'... routine or routine
_____ associated with the
exit named EX1
Specifying the CALL request is somewhat determined by the definition of the exit. For example, you cannot issue a call specifying that the routines get FASTPATH processing if the exit is not enabled for FASTPATH processing. In other words, you cannot specify FASTPATH=YES on the CALL request if the exit was defined with FASTPATH=NO. However, if the exit was defined with FASTPATH=YES, you can specify either FASTPATH=YES or FASTPATH=NO on the CALL request. There is no requirement that all CALL requests be of the same FASTPATH type.
- How is the system to return information
to the caller? One of the decisions you make on the CALL request is what return information the system returns. Does it return the return information from all exit routines or from one exit routine. Parameters on the CALL request are RETINFO, RETAREA, and RETLEN.
- RETINFO specifies whether the caller receives return information from the exit routine with the LOWEST return code (RETINFO=LOWEST), from the exit routine with the HIGHEST return code (RETINFO=HIGHEST), from all exit routines (RETINFO=ALL), or from the last exit routine to run (RETINFO=LAST).
- RETAREA and RETLEN tell the system where the return area is and how large it is.
If you specify LOWEST or HIGHEST on RETINFO, you can also specify related parameters on the DEFINE request. For more information about this topic, see Returning information from multiple exit routines.
- Is the CALL request for the exit to
have FASTPATH processing?
To have FASTPATH processing, the definer of the exit must have enabled the exit for FASTPATH processing. Then, the caller can request that the CALL request for the exit have FASTPATH processing. For more information, see FASTPATH processing and Recovery for the CALL request.
- Are the GPRs to contain certain values
at entry to the exit routines?
You most likely want the exit routines to get control with certain values placed in certain GPRs. The RUB parameter provides an area where you tell the system which GPRs are to contain the data and what the data is to be. z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN describes the format of the RUB and contains an example of its use.
- Did any exit routines get control
at an exit?
Appropriate return and reason codes indicate that an exit routine ran.
- Did all exit routines get control
at an exit? If one or more one exit routines didn't run (usually because the return area was not large enough to contain all the return information):
- The appropriate reason code indicates that fact.
- The area provided on the NEXTTOKEN parameter contains a token that identifies the next exit routine that the system is to call.
- The return area contains return information for any exit routine that ended, or contains the return information that the DEFINE and ADD requests specified. You provided this area for the system to return information needed if not all exit routines were called.
The caller can reissue the CALL request, using the value in NEXTTOKEN. The system will pass control to the exit routine that is the next to run.