Does CICS have supplied procedure for assembling a SIT? I'm currently checking from https://www.ibm.com/docs/en/cics-ts/5.3?topic=library-cics-supplied-procedures but I can't find anything that uses EXEC PGM=DFHSIP. I'm not in that level yet to write a JCL myself so I'm really trying to find sample of how I can assemble my updated DFHSIT macro.
2 Answers
It usually isn't necessary to assemble a new SIT table. You can pass SIT parameters as overrides when starting your CICS region. I find that the majority of CICS systems are started with one of the supplied SIT load modules (DFHSIT or DFHSIT6$) and provide customized SIT overrides via SYSIN. See https://www.ibm.com/docs/en/cics-ts/5.3?topic=regions-specifying-system-initialization-parameters-before-startup
Note that the primary reason why people don't assemble a new SIT table is that the SIT load module must reside in an APF authorized data set. In most enterprises, write access to an APF authorized data set is rarely allowed and is severely scrutinized when an update is absolutely necessary.

- 435
- 2
- 4
DFHSIP is the main CICS program and isn't used for assembling the SIT tables. Probably best to have a look at the proc DFHEITAL that is provided with CICS. This is a good example of how to translate, compile and linkedit assembler programs.
However SIT tables should not be translated or linkedited with the CICS stub program. Below is an example of what I've used before to compile CICS tables:
//ASM EXEC PGM=ASMA90,REGION=0M,
// PARM='DECK,NOOBJECT,LIST’
//SYSLIB DD DSN=<cicshlq>.SDFHMAC,DISP=SHR
// DD DSN=<cicshlq>.SDFHSAMP,DISP=SHR
// DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSUT2 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSUT3 DD UNIT=SYSDA,SPACE=(1700,(400,400))
//SYSPUNCH DD DSN=&&LOADSET,
// UNIT=SYSDA,DISP=(,PASS),
// SPACE=(400,(100,100))
//SYSPRINT DD SYSOUT=A
//SYSIN DD DATA,DLM='<>'
<source>
<>
//LKED EXEC PGM=IEWL,REGION=0M,
// PARM='LIST,XREF',COND=(7,LT,ASM)
//SYSLIB DD DSN=<cicshlq>.SDFHLOAD,DISP=SHR
//SYSLMOD DD DSN=<output>,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,DCB=BLKSIZE=1024,
// SPACE=(1024,(200,20))
//SYSPRINT DD SYSOUT=A
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSIN DD *
NAME <name>(R)
/*

- 141
- 2