EXECRPL—Execute a request
Purpose
When an RPL-based request fails for a temporary reason and the request might succeed if reissued, VTAM® returns a recovery action return code of 8 in register 0 and in the RPL's RTNCD field. The portion of the application program receiving control (the SYNAD exit routine or the next sequential instruction) has the address of the RPL available to it in register 1. The program can issue an EXECRPL macroinstruction to retry the request without having to modify the request's RPL.
Usage
The operation performed by EXECRPL depends on the request code that is set in the RPLs REQ field. If the REQ field indicates a RECEIVE request, for example, the effect of EXECRPL is identical to that of a RECEIVE macroinstruction. (The REQ field is described in the RPL macroinstruction.) EXECRPL can be used to execute any RPL-based request except CHECK or another EXECRPL macroinstruction.
When EXECRPL is used for its intended purpose—that is, to re-execute a request that has failed with a recovery action return code of 8—the application program need not concern itself with the RPL contents when EXECRPL is issued. But if EXECRPL is used to retry a request that has failed with some other recovery action return code (or to repeat a request that has not failed at all), close attention must be paid to RPL fields that can be set by the application program and then modified by VTAM while the request is being processed.
For example, the RPL's RESPOND field for a SEND request is set by the application program (to indicate whether a response is to be returned) and is then reset by VTAM (to indicate the type of response returned). EXECRPL should not be issued for this RPL unless the RESPOND field is reset to its intended setting.
AVunder the appropriate macroinstruction.
We recommend that the application program establish a suitable limit on the number of times it uses the EXECRPL macroinstruction in an error recovery attempt.
Before issuing the EXECRPL macroinstruction, the application program must set register 13 to the address of an 18-word save area. Refer to Summary of register usage, for information pertaining to the register contents upon return of control.
VTAM receives control from and returns control to the EXECRPL macroinstruction in the addressing mode of the application program that issued the macroinstruction.
Syntax
Input parameters
- RPL=rpl_address
- Indicates the location of the RPL defining the request to be reexecuted.
- rpl field name=new_value
- Indicates a field of the RPL to be modified and the new value
that is contained or represented within it. Format: For rpl_field_name, code the keyword of the RPL macroinstruction operand that corresponds to the RPL field to be modified. The new_value can be any value that could have been supplied with the keyword had the operand been issued in an RPL macroinstruction, or it can indicate a register that contains such a valid value.
Examples
RETRY1 EXECRPL RPL=(1) A SYNAD exit routine has been entered for a retrievable error (register 0 is set to 8). The request is reexecuted as defined by the current contents of the RPL.
Completion information
After the EXECRPL operation is completed, the action taken by VTAM depends on the type of request that EXECRPL has processed. The manner in which the application program is notified of completion (ECB or EXIT), the RPL fields and return codes that are returned, and the data areas (if any) that are used depend on the contents of the RPL when EXECRPL was executed. If the request is successfully accepted, then registers 0 to 15 at the next sequential instruction after EXECRPL are set exactly as expected when the original macroinstruction was issued.
