Control Block Format
Because Submit exits are invoked before a Process is submitted, some control block fields may not be filled in. This section presents control blocks used with Process statements and NETMAP entries.
Upon entry to the Submit exit, Register 1 points to a parameter list (PLIST) as shown in the following figure. This list contains the addresses of the following components:
- TCQE
- SQCB
- Composite NETMAP record
- A full-word that contains 1 or 2 indicating whether this is a Stage 1 or Stage 2 exit
- UICB (User Interface Control Block)

If the Process submission is rejected, the exit must set a positive non-zero value in Register 15 and the return code field (TQRTNCD) of the TCQE. A message ID in the TQMSGID field in the TCQE should also be set.
The only modifiable field in the UICB are UIERRM1 and UIERRM1 for which you can return your own message text to Connect:Direct, the exit must put up to 64 bytes of text into UIERRM1. If desired, up to 64 more bytes can be put into UIERRM2. If nothing is returned in UIERRM1, then both UIERRM1 and UIERRM2 will be ignored.
The following figure illustrates the layout of the TCQE. In the Process contained in the Statement Control Block, DMxxxxxx represents the macro name for the statement (COPY, RUN JOB, RUN TASK, SUBMIT, etc.).
TCQ Header | macro= DMTCQE DSECT= TCQE |
Command Statement Header Section | macro= DGA$TQSH DSECT= TCQSH |
Statement Control Block | macro= DMxxxxxx |
Displacement values found in the TCQE and pointers in the TCQSH to the next or previous TCQSH are from the top of the TCQE and may need to be multiplied by 16 (if the Process is larger than 64K). Displacement values found in the statement control blocks are from the top of the TCQSH associated with that statement control block.
The following figure illustrates the layout of the composite NETMAP record.
COMPOSITE NETMAP RECORD $$NN - displacement to ADJACENT NODE Record $$AA - displacement to ALT.COMM Record $$BA - displacement to BATCH.APPLI Record $$CA - displacement to CICS.APPLID $$DN - displacement to LDNS Record $$NA - displacement to APPLIDS Record $$ND - displacement to LUPOOL Record $$NT - displacement to TCP.API Record $$TA - displacement to TSO.APPLIDS Record $$N6 - displacement to IPv6 Record $$NU - displacement to UDT Record $$CM - displacement to COMMENT 13 Record |
macro= DGA$NETE DSECT= $$REC |
ADJACENT NODE Record | macro= DGA$NETD DSECT= NNODEREC |
ALT.COMM Record | macro= DGA$NETL DSECT= ALTADDRH |
LDNS Record | macro= DGA$NET$ DSECT= DNREC |
APPLIDS Record | macro= DGA$NETA DSECT= NAAPLREC |
LUPOOL Record | macro= DGA$NET@ DSECT= NDLUPREC |
TCP.API Record | macro= DGA$NETT DSECT= NTAPIREC |
IPv6 Record | macro= DGA$NET6 DSECT= N6TCPREC |
Displacement values found in the composite network map record are from the top of the composite network map.
Example of Created Control Block
This sample section shows how a Process is submitted and the control block that is created when the Submit exit is invoked. The following figure shows the submitted Process.
|
The following figure illustrates the resulting layout of the Process control block after submitting the Process named TEST01.
