CSVDYNEX terminology
An exit is a set of information defined by
the exit provider. That set of information includes:
- Characteristics of (or rules for) exit routines that are to get control at the exit point
- Directions for how the system is to transfer control to an exit routine, process the exit routine, and handle recovery.
Control passes to exit routines when the exit provider issues a
call; the location of that call request is known as the exit
point. The exit provider code defines an exit and later issues
the call, as the following diagram shows:
exit provider setup
_____
_____
define the exit
_____
exit provider processing
_____
_____ exit point
_____ / exit routine
issue the call v--------------------------- ______
_____ ______
_____ ______
return
You will find the macro easier to use if you understand some facts about exits, exit routines, and callers in CSVDYNEX terms.
An exit that is defined through
CSVDYNEX:
- Has a name unique within the system
- Can have one or more exit routines associated with it
- Is invoked by a caller
- When invoked, causes exit routines associated with it to run
- Exists over a defined span of time: for the life of the defining task, the life of the defining address space, or the life of the IPL
- Consists of exit criteria, the characteristics of (or rules for) exit routines that can get control when the exit is invoked
- Can be enabled for FASTPATH processing, which means there is less system processing
- Can have its definition removed through CSVDYNEX.
An exit routine that is associated
through CSVDYNEX with an exit:
- Can be in an active or inactive state. An active routine is called; an inactive routine is not.
- Can have any valid exit routine name
- Can be added to an exit (or associated with an exit) at any time; likewise, it can be deleted from the exit
- Will not be called if it does not conform to the exit criteria specified when it was added to the exit
- Can get control with specific GPRs containing specific information
- Can return information to the caller in registers and a caller-provided parameter list according to the documented interface.
A caller (that is, the exit provider)
that invokes an exit through CSVDYNEX:
- Causes the active exit routine or routines associated with the exit to run
- Processes the return codes from the exit routines
- Receives information from the exit routines in a return area
- Receives information about exit routine processing
- Can specify what the contents of certain GPRs are to be when the exit routines get control
- Can request that the CALL request for the exit have FASTPATH processing.
You can do three main tasks through the CSVDYNEX requests: defining
an exit, calling an exit routine, and adding an exit routine to an
exit. The first parameter on the CSVDYNEX macro specifies the request.
For example, the ADD request is CSVDYNEX REQUEST=ADD, with appropriate
parameters. The requests, listed by task, are as follows:
- Defining an Exit; see Defining an exit
- DEFINE request
- UNDEFINE request
- ATTRIB request
- Calling an Exit Routine or Routines; see Calling an exit routine or routines
- CALL request
- RECOVER request
- QUERY request with QTYPE=CALL
- Associating an Exit Routine with an Exit; see Associating an exit routine with an exit
- ADD request
- MODIFY request
- DELETE request
- QUERY request with QTYPE=ADD
An additional request, the LIST request, is useful for obtaining information about the exits that are defined through the CSVDYNEX macro.