Coding program specification blocks as input to the PSBGEN utility

A PSB is a series of macro instructions that describes an application program's characteristics, its use of segments and fields within a database, and its use of logical terminals.

A PSB consists of one or more PCBs (program communication blocks). Of the two types of PCBs, one is used for alternate message destinations, the other, for application access and operation definitions.

After you code the PSB macro instructions, they are used as input to the PSBGEN utility. This utility is a macro assembler that generates a PSB control block then stores it in the IMS.PSBLIB library for subsequent use during database processing.

The following figure shows the PSB generation process.

Figure 1. The PSB generation process
PSBGEN utility input: IMS.MACLIB and PSB macro instructions. Output: IMS.PSBLIB.

The following JCL shows the structure of the deck used as input to the PSBGEN utility.

//PSBGEN    JOB  MSGLEVEL=1
//                  EXEC        PSBGEN,MBR=APPLPGM1
//C.SYSIN        DD     *
 
    PCB TYPE=TP      required for output message destinations
    PCB TYPE=DB      required for each database the application program
                      can access
    SENSEG           required for each segment in the database the
                      application program can access
    SENFLD           required for each field in a segment that
                      the application program can access,
                      when field-level sensitivity is specified
    PCB TYPE=GSAM
        ⋮
    PSBGEN           required for each PSB generation
    END              required for each PSB generation
/*