Flow of the DGAXPRCT Exit

First you tell DGAXPRCT which IBM® Connect:Direct® Processes to run and not run by storing your preferences as text records in a parameter table stored as a Partitioned Data Set (PDS) member. You can specify the following criteria for DGAXPRCT to use to find matches for one or more Processes to include (using the “I” command code) or exclude (“X” command code) from execution:

  • A partial or full Process name
  • A partial or full remote node name
  • A partial or full IBM Connect:Direct submitter ID and submitter node combination
  • A combination of Process name, remote node name and submitter ID/submitter node, all of which must match

In addition to telling IBM Connect:Direct which Processes to run, you tell the system what to do with the Processes which do not get executed. You can specify the following dispositions for Processes not permitted to run:

  • Place the Process in the Hold queue
  • Place the Processes in the Timer queue for session retry
  • Flush the Processes from the queue

To see different ways the DGAXPRCT exit can be used, see Sample Test Scenarios.

The DGAXPRCT exit is invoked by the Stage 2 Security exit before the security checks for a IBM Connect:Direct Process about to be executed have been performed. For information on how the Stage 2 Security exit is processed, see Stage 2 Security Exit.

The Process Exit for Testing reads and validates the DGAXPRCT parameter table each time it is invoked when a Process is executed. If a syntax or other error occurs, IBM Connect:Direct places the Processes in the hold queue and returns a non-zero return code and error message ID. If the table is valid, DGAXPRCT scans the parameter table looking for a pattern that matches the Process that is about to be executed. If a match is found, the Process is permitted to execute if the "I" (Include) command code is in effect. If command code "X" (Exclude) is in effect, the process is not permitted to execute. If a match is not found in the table, DGAXPRCT performs the opposite processing from the case where a match is found, that is, if no match is found and command code "I" is in effect, the Process is not permitted to execute, whereas if command code "X" is in effect, the Process is permitted to execute.

Note: To reverse an action taken, use the “R” (Reverse) command code. If a match is found in an Include list and the “R” command code is also in effect, the Process is excluded. Conversely, if a match is found in an Exclude list and the “R” command code is also in effect, the Process is included.

If a Process is not to be permitted to execute, DGAXPRCT uses the disposition specified in the DGAXPRCT parameter table to either hold, retry, or flush the Process after the DGAXPRCT exit returns with a non-zero return code.

Note: For Processes initiated on remote nodes, the DGAXPRCT exit functions in the same manner as it does for Processes submitted on the local IBM Connect:Direct node. The DGAXPRCT Parameter Table is searched for a matching entry and the remotely initiated Process is either permitted to execute or excluded from execution. However, because the local node is the SNODE for this type of transfer, it cannot enforce the Process disposition setting in the DGAXPRCT Parameter Table. The remote PNODE determines how the Process is handled. Typically, the remote node places the Process in the Hold queue with a status of "HE" (Held in Error) if SECURITY.NOTIFY=HOLD is specified or the DGAXPRCT exit is supported on the remote node. If the remote node does not support SECURITY.NOTIFY=HOLD or the DGAXPRCT exit, the Process terminates.

When both the PNODE and the SNODE invoke the DGAXPRCT exit and the SNODE excludes a Process from executing, the PNODE automatically places the Process in the Timer queue for session retry regardless of the disposition setting in the DGAXPRCT Parameter Table on the PNODE. This processing is necessary because of technicalities in the handling of an SNODE error at the point in the IBM Connect:Direct protocol.