z/OS JES2 Macros
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Implementing $SCAN tables

z/OS JES2 Macros
SA32-0996-00

The $SCANTAB macro should be used to generate a scan table. Your installation can define, for example, a table that describes the keywords and input allowed on a JES2 job control statement and use $SCAN and that table from a JES2 HASPRDR Exit 4 to implement your own JES2 job control statements.

As mentioned, the JES2 initialization options, initialization parameter statements, and some operator commands are now implemented using $SCAN. (See z/OS JES2 Commands for a list of these commands.) Scan tables in the HASPSTAB module make up the JES2 half of the table pairs that define those options and parameters. Your installation can define its own scan tables to add to or replace any or all of the JES2 scan table entries.

Each of the pairs of table addresses used in the implementation of the initialization statements is defined in the MCT in HASPTABS. Your can include your table by using one of the following techniques:
  • Specify $SCANTAB TABLE=(DYNAMIC,pair-offset). When the module containing the tables is loaded (through the LOAD(xxxxxxxx) initialization statement), the tables will be associated with the specified table pair. Multiple tables may be listed if your tables are to be associated with multiple statements or commands. Valid table pair names take the form of MCTxxxTP, where xxx is listed in Table 1.
  • Your installation can locate the MCT while running in a JES2 initialization exit (for example, Exit 0) and store the addresses of its tables in the MCTxxxTU fields of the MCT, or you can point to your installation-defined UCT that contains a pair of table addresses.
  • The linkage editor can be used to define these table addresses to JES2 by linkediting them (and possibly the UCT) into HASJES20. This is possible because the MCTxxxTU and $UCT fields are defined as the weak external symbol names. The installation must name its scan tables with those specific names (listed in Table 1) in order to use this method of providing user scan tables for the initialization statements.

The installation tables can provide entries that define new initialization options or statements, new parameters on JES2-defined statements, or new commands. Since the installation table is searched first, JES2-defined entries can be functionally replaced as well. The following scan tables are involved with the JES2 initialization statements. In each case, the xxx described indicates the MCT labels for the table address pair (MCTxxxTP), the installation table address (MCTxxxTU), and the JES2 table address (MCTxxxTH).

To access $SCAN table pairs at the highest level of scan use:
Table Name
To Access
OPT
Initialization Options
MPS
Main Parameter Statements (initialization/command statements)
MG
Message Generation
There are two table pairs that need to be considered for message generation:
MCTMGTP
This table pair in the $MCT processes message is built in the JES2 main task environment.
CCTMGTP
This table pair in the $HCCT processes message is built in other environments.
When creating messages, you need to be aware of which environments the messages will be built in, and add them to the appropriate table pair (possibly both).
Be aware that although the main initialization parameter statement (MPS) tables are used for JES2 initialization statements and for processing the object of several command verbs, not all command verb processing checks the MPS $SCAN tables before trying to process a command with non-$SCAN code. Entries in the installation-defined or JES2-defined MPS table are used for initialization processing if:
  • the CALLERS= keyword on the $SCANTAB macro is not specified or
  • the CALLERS= keyword on the $SCANTAB macro includes the correct initialization $SCAN caller id, as follows:
    $SCAN Caller ID Equate
    Initialization Statement Source
    $SCIRPL
    Parmlib or Exit 19
    $SCIRPLC
    Operator Console
Entries in the installation-defined or JES2-defined MPS table are used for the following command verbs if:
  • the object of the verb in the command input matches the NAME= keyword on the $SCANTAB macro (at least for the minimum length required, that is, MINLEN=) and
  • the CALLERS= keyword on the $SCANTAB macro explicitly includes the caller ID for the command verb, as follows:
    $SCAN Caller ID Equate
    Command Verb  
    $SCDCMDS
    $D or $DU (long form)
    $SCDOCMD
    $DU (short form)
    $SCSCMDS
    $T
    $SCSTCMD
    $S
    $SCPCMDS
    $P
    $SCECMDS
    $E
    $SCACMDS
    $ADD
    $SCRCMDS
    $DEL
    $SCLTCMD
    $DO
    $SCECMDA
    $E (MEMBER)
    $SCZCMDS
    $Z
    $SCHCMDS
    $H
    $SCRLCMD
    $A
    $SCCCMDS
    $C
    $SCTOCMD
    $TO
    $SCCOCMD
    $CO
    $SCPOCMD
    $PO
    $SCOCMDS
    $O
    $SCLOCMD
    Output short display
    $SCLCMDS
    $L

If the command verbs shown in the table above are used against objects for which no match is found in the MPS tables, then non-$SCAN command support is attempted. Using sub-tables you can also affect the sub-operands of JES2-defined MPS tables entries by using the tables by Table 1.

Table 1 shows the processing that can be affected by the use of $SCAN tables.

Table 1. JES2 Reserved Master Control Table Names
$SCAN Target Master Control Table Name Used for MPS Processing Parent CB Notes
INIT $D $T
ACTRMT(nnnn) ACT     RSO  
APPL(applid) APL APT $ADD
BADTRACK BAD       No commands exist
BUFDEF BUF    
BUFDEF BELOWBUF= BFH    
BUFDEF EXTBUF= BFX    
CKPTDEF CKT   CKPT recovery dialog
CKPTDEF CKPTn= KPN HFAM CKPT recovery dialog
CKPTDEF NEWCKPTn= EKN HFAM CKPT recovery dialog
CKPTDEF VERSIONS= VKP    
CKPTDEF VOLATILE= VLT    
CKPTLOCK CKL         $E only; normally not driven by $SCAN
CKPTSPACE SPC    
CKPTSPACE CKPT1 CK1        
CKPTSPACE CKPT2 CK2        
COMPACT COM      
CONDEF CND    
CONNECT CON NAT $ADD and $DEL
DEBUG DBG    
DESTDEF DST    
DESTID(destname) DES RDT $ADD and $DEL
ESTBYTE EBY EST  
ESTIME ETM EST  
ESTLNCT ELC EST  
ESTPAGE EPG EST  
ESTPUN EPN EST  
EXIT(nnn) XIT XRT $ADD and $DEL
FSS(fssname) FSS FSSCB $ADD
INCLUDE INC        
INIT(nnn) PIT PIT $S, $P, and $Z
INITDEF PAR    
INTRDR INR      
JOBCLASS(n) CAT CAT  
JOBCLASS(n) XEQCOUNT= JCX CAT  
JOB, JOBQ, STC, TSU JQE   JQA $D, $T, $S, $P, $E, $H, $A, $C
JOB, JOBQ, STC, TSU JQE   JQA $D, $T, $S, $P, $E, $H, $A, $C
JOB CC= JCC   JQA Display and filtering only
JOB SPOOL= JSP   JQA Display and filtering only
JOB, JOBQ, STC, TSU OTP       JQA $DO, $TO, $CO, $PO, $O
JOB, JOBQ, STC, TSU LOT       JQA $L
JOBDEF JOB    
JOBPRTY(n) JPY    
LINEnnnn LNE DCT $DU and $ADD. $S, $P, and $E are processed by $SCAN and MPS tables but do not use LOG subtables.
LINEnnnn.device LIN   $D, $T, $DU are processed by $SCAN, other commands are not.
LINEnnnn.JTn LJT DCT $D, $T, $DU are processed by $SCAN, other commands are not.
LINEnnnn.JRn LJR   $D, $T, $DU are processed by $SCAN, other commands are not.
LINEnnnn.STn LST DCT $D, $T, $DU are processed by $SCAN, other commands are not.
LINEnnnn.SRn LSR DCT $D, $T, $DU are processed by $SCAN, other commands are not.
LOADMOD(modname) LOD LMT  
LOGONn LOG DCT $DU and $ADD. $S, $P, and $E are processed by $SCAN and MPS tables but do not use LOG subtables.
MASDEF MAS    
MEMBER(x) MEM QSE  
MEMBER(x) LASTART= STY     QSE  
MODULE MOD   MIT USER/dynamic tables not allowed
NETACCT NET      
NJEDEF NJE    
NETSRV | NSV |▪|▪|▪| DCT NSV   |• DCT
NODE(nnnn) NOD NIT $SN command not processed by $SCAN
NODE(nnnn) AUTH= NAU NIT  
NODE(nnnn) PASSWORD= NDP NIT  
OFFn.device OFF   $DU. $S OFFn.device, $P OFFn.device not processed by $SCAN
OFFn.JR OJR DCT $DU. $S OFFn.JR, $P OFFn.JR not processed by $SCAN
OFFn.JT OJT DCT $DU. $S OFFn.JT, $P OFFn.JT not processed by $SCAN
OFFn.JT MOD= OJM DCT  
OFFn.SR OSR DCT $DU. $S OFFn.SR, $P OFFn.SR not processed by $SCAN
OFFn.ST OST DCT $DU. $S OFFn.ST, $P OFFn.ST not processed by $SCAN
OFFn.ST MOD= OSM DCT  
OFFLOADn OFL DCT $DU. $S, $P, and $Z not processed by $SCAN
OPTSDEF OPD    
OUTCLASS(n) SCT SCAT  
OUTDEF OUT    
OUTPRTY(n) OPY    
PATH(x) PTH     NIT  
PATH(x) VIA VIA     NITP Individual path element
PCEDEF PCD      
PCE PCC   PTAB  
PCE COUNT= PCN     PTAB  
PCE DETAILS= PDT     PTAB  
PRINTDEF PTD    
PRINTDEF SETPAGE= SEP    
PROCLIB PRL   $ADD, $DEL
PROCLIB DD= PDD PAD $ADD, $DEL
PRTnnnn PRT DCT $B, $C, $E, $F, $I, $N, $P, $S, $Z are not processed by $SCAN
PRTnnnn FSSINFO= PRF DCT $d only
PUNnn PUN DCT $B, $C, $E, $F, $I, $N, $P, $S, $Z are not processed by $SCAN
PUNCHDEF PUD      
RDI RDI   DCT  
REDIRECT RED CRE $ADD
Rnnnn.device RDV   $B, $C, $E, $F, $I, $N, $P, $S, and $Z are not processed by $SCAN
Rnnnn.PRm RPR DCT $B, $C, $E, $F, $I, $N, $P, $S, and $Z are not processed by $SCAN
Rnnnn.PUm RPU DCT $B, $C, $E, $F, $I, $N, $P, $S, and $Z are not processed by $SCAN
Rnnnn.RDm RRD   $B, $C, $E, $F, $I, $N, $P, $S, and $Z are not processed by $SCAN
Rnnnn.CON RCN     DCT  
RDRnn RDR DCT $C, $P, $S, $Z are not processed by $SCAN
RDRnn AUTH= RAU DCT Also RDI AUTH= and Rn.RDn AUTH=
RECVOPTS(type) RCV RVS  
REQJOBID RQJ    
RMT(nnnn) RMT RAT $DU. $S, $P commands are processed by $SCAN and MPS tables but do not use the RMT subtables
SMFDEF SMF    
SOCKET SCK   SCK
SPOOL SPL     DAS $D, $S, $P, $Z
SPOOL UNITDATA= VUN     DAS  
SPOOLDEF SPD    
SPOOLDEF FENCE= FEN  z  
SPOOLDEF TGSPACE= TGS    
SSI(nnn) SSI    
SUBNET(xxxxx) SUB     NSACT  
SUBTDEF SBD    
TPDEF TPD    
TPDEF BSCBUF= BSC    
TPDEF SNABUF= SNA    
TPDEF SESSIONS= SES        
TRACE(nnn) TRI     $S, $P commands are processed by $SCAN
TRACEDEF TRC    
TRACEDEF LOG= TLG    
TRACEDEF STATS= STA        
ZAPJOB ZBJ= INIT       ZAPJOB command and init stmt

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014