System support for application programs

Before you can run an application program under IMS, control blocks must be defined, generated, and placed into the following libraries: IMS.DBDLIB, IMS.PSBLIB, and IMS.ACBLIB.

Before executing an application program under IMS, you must:
  • Describe that program and its use of logical terminals and logical data structures through a program specification block (PSB) generation, using the PSB Generation utility. The PSBs are maintained in one or more IMS system libraries called a PSB library.
  • Create a database descriptor block (DBD) to have access to an IMS database. The DBD is assembled into a system library called a DBD library.
  • Combine and expand the PSB and DBD control blocks into an internal format called application control blocks (ACBs). The Application Control Blocks Maintenance utility is used to create the ACBs and they are placed in an ACB library.

Application programmers and database administrators need to know the naming conventions for the PSB, DBD, and ACB library data sets.

The system administrator must decide:
  • Whether to have the ACB library allocated by JCL or dynamically (using the DFSMDA macro)

    To begin using the DFSMDA macro for dynamic allocation of ACB library data sets, complete the following steps:

    1. Create DFSMDA members for the ACBLIBA and ACBLIBB data sets. DFSMDA members can be placed in either the data set specified in the IMS STEPLIB concatenation or in the IMSDALIB DD statement.
    2. Remove the IMSACBA and IMSACBB DD statements from the IMS and DL/I JCL procedures.
    3. Stop IMS and then restart it with the DFSMDA members.
  • Whether to have the ACBs loaded into 64-bit storage

    At execution time, the ACBs needed by an application program must be in the 31-bit non-resident ACB storage pool. At scheduling time, IMS first searches the non-resident storage pools to see if the ACBs are already there. If they are not in the pool, IMS can load them into the 31-bit non-resident ACB storage pool from either the ACB library or from a 64-bit storage pool.

    To enable the use of a 64-bit storage pool for ACBs, complete the following steps:

    1. Calculate how much storage to allocate for the 64-bit storage pool by multiplying the total number of non-resident ACB members in the ACB library times the size of these members.
    2. Specify the size of the 64-bit ACB storage pool (in gigabytes) on the ACBIN64 parameter in the DATABASE section of the DFSDFxxx PROCLIB member. For most installations, specifying one or two gigabytes for the 64-bit ACB storage pool should be sufficient.
    3. Stop IMS and then restart it with the ACBIN64 parameter.

    After enabling the use of a 64-bit ACB storage pool, IMS populates this pool the first time an application program that need the ACBs is scheduled. Thereafter, when an application program is scheduled that needs these ACBs, IMS reads them from the 64-bit storage pool instead of from the ACB library.

    If you need to remove ACBs from both the 31-bit non-resident storage pool and the 64-bit storage pool, use the DELETE DB and DELETE PGM commands. You cannot remove ACBs from the pools using any command.

Related reading: For an expanded overview of generating PSBs, DBDs, and ACBs, see IMS Version 15 Database Administration.