Program communication block (PCB) lists

In your application program, code your PCB or GPSB list in the following format.

PCB list format

The following example shows the general format of a PCB list.
[IOPCB]
[Alternate PCB ... Alternate PCB]
[DB PCB ... DB PCB]
[GSAM PCB ... GSAM PCB]

Each PSB must contain at least one PCB. An I/O PCB is required for most system service calls. An I/O PCB or alternate PCB is required for transaction management calls. (Alternate PCBs can exist in IMS™ TM.) DB PCBs for DL/I databases are used only with the IMS Database Manager under DBCTL. GSAM PCBs can be used with DCCTL.

Format of a GPSB PCB list

A generated program specification block (GPSB) takes this format:
[IOPCB]
[Alternate PCB]

A GPSB contains only an I/O PCB and one modifiable alternate PCB. (A modifiable alternate PCB enables you to change the destination of the alternate PCB while the program is running.) A GPSB can be used by all transaction management application programs, and permits access to the specified PCBs without the need for a specific PSB for the application program.

The PCBs in a GPSB have predefined PCB names. The name of the I/O PCB is IOPCB. The name of the alternate PCB is TPPCB1bb. The minimum size of the I/O work area that IMS generates for GPSBs in a DBCTL environment is 600 bytes.

PCB summary

If you intend to issue system service requests, be aware of the differences between I/O PCBs and alternate PCBs in various types of application programs.
DB Batch Programs
If CMPAT=Y is specified in PSBGEN, the I/O PCB is present in the PCB list; otherwise, the I/O PCB is not present, and the program cannot issue system service calls. Alternate PCBs are always included in the list of PCBs that IMS supplies to the program.
BMPs, MPPs, and IFPs
The I/O PCB and alternate PCBs are always passed to BMPs, MPPs, and IFPs.

The PCB list always contains the address of the I/O PCB, followed by the addresses of any alternate PCBs, followed by the addresses of the DB PCBs.

CICS® Online Programs with DBCTL
If you specify the IOPCB option on the PCB call, the first PCB address in your PCB list is the I/O PCB, followed by any alternate PCBs, followed by the addresses of the DB PCBs.

If you do not specify the I/O PCB option, the first PCB address in your PCB list points to the first DB PCB.

The following table summarizes the I/O PCB and alternate PCB information.

Table 1. I/O PCB and alternate PCB information summary
Environment CALL DL/I
I/O PCB address in PCB list Alternate PCB address in PCB list
MPP Yes Yes
IFP Yes Yes
BMP Yes Yes
DB Batch1 No Yes
DB Batch2 Yes Yes
TM Batch3 Yes Yes
CICS DBCTL4 No No
CICS DBCTL5 Yes Yes
Notes:
  1. CMPAT = N specified.
  2. CMPAT = Y specified.
  3. CMPAT = Option. Default is always to Y, even when CMPAT = N is specified.
  4. SCHD request issued without the IOPCB or SYSSERVE option.
  5. SCHD request issued with the IOPCB or SYSSERVE for a CICS DBCTL request or for a function-shipped request which is satisfied by a CICS system using DBCTL.