Summary of exit routine processing

In an IMS DB/DC or DCCTL environment, you can use the Automated Operator exit routine (DFSAOUE0) and type-2 Automated Operator exit routines (DFSAOE00 and other AOIE type exit routines).

When an AOIE type exit routine is called as part of a list of AOIE type exits, each AOIE type exit routine is called with the same parameter list. IMS does not refresh the parameter list or use information from the parameter list between calls to the individual AOIE exit routines. If your exit sets the return code parameter (AOEORPLY) to anything other than zero (AOE0IGNR), your exit routine must set the SXPLCNXT exit parameter to SXPL_CALLNXTN so that IMS does not call any more of the AOIE type exit routines in the list. Otherwise, a subsequent AOIE type exit could modify AOE0RPLY and overwrite your modification.

If AOIE type exit routines and DFSAOUE0 are loaded, IMS first calls the AOIE type exit routines sequentially, then calls DFSAOUE0 afterwards. The AOIE type exit routine can process the message or command, or it can pass control to DFSAOUE0 to do the processing.

Processing for a system message using both AO exit routines

Figure 1. Processing for a system message using both AO exit routines
This figure illustrates the steps in processing an IMS system message.

These steps describe the processing that occurs in the previous figure.

  1. IMS generates a system message destined for the master terminal. Both AO exit routines have been specified.
  2. Depending on the specific message, IMS sends a copy of the message to the z/OS® system console.
  3. If you specify that a copy of the message be sent to the secondary master terminal, IMS sends a copy of the message (assuming the secondary master terminal exists and that the logging of system messages to the secondary master terminal is not disabled).
  4. IMS passes the copy of the message destined for the master terminal to the AOIE type exit routine. The AOIE type exit routine determines which exit routine should process the message. When both exit routines are specified, IMS only calls DFSAOUE0 if the AOIE type exit routine determines that DFSAOUE0 should process the message.
  5. The exit routine that processes the message can send a copy of it to any destination. If the exit routine is an AOIE type exit routine, the destination is the AOI token, to which the message is enqueued. If the exit routine is DFSAOUE0, the destination is an LTERM or a transaction. The exit routine can alter or delete any segment of the message.
  6. Unless the message has been deleted, IMS sends it to the master terminal.

Processing for a command using both AO exit routines

Figure 2. Processing for a command using both AO exit routines
This figure illustrates the steps in processing a command.

These steps describe the processing that occurs in the previous figure.

  1. When a command is entered from a terminal, IMS sends a copy of the command to the AOIE type exit routine before executing the command. The AOIE type exit routine determines whether to process the command itself or have DFSAOUE0 process the command.
  2. The exit routine that processes the command can send a copy of the command to any destination. If the exit routine is an AOIE type exit routine, the destination is the AOI token, to which the message is enqueued. If the exit routine is DFSAOUE0, the destination is an LTERM or a transaction.
  3. IMS executes the command and generates a command response.
  4. If the exit routine requested a copy of the command response, before sending the command response, IMS passes it to whichever exit routine processed the command.
  5. The exit routine that handles the command response can send a copy of it to any destination. If the exit routine is an AOIE type exit routine, the destination is the AOI token, to which the message is enqueued. If the exit routine is DFSAOUE0, the destination is an LTERM or a transaction.
  6. IMS sends the command response to the terminal that originated the command.