DLIBATCH procedure

Use the DLIBATCH procedure to enable DL/I batch jobs to run.

When using the DLIBATCH procedure, be aware that:
  • As implied by the absence of IMSDALIB from the list of valid DD statements for the DLIBATCH procedure, IMSDALIB is not supported in batch mode.
  • In IMS systems that use ACB libraries, if the batch application program will process a HALDB database for which a HALDB alter operation was started but the online change function is not yet done, the IMS DD statement in the DLIBATCH procedure must specify the DBD library that contains the original, unaltered DBD. The IMS DD statement must specify the original DBD regardless of the fact that some or all of the segments in the database might now conform to the format defined by the altered DBD. IMS automatically gets the altered DBD information from the staging ACB library, but requires the original, unaltered DBD for comparison.

Procedure for an offline DL/I batch processing program using PSB and DBD libraries shows a one-step procedure for an offline DL/I batch processing program using PSB and DBD libraries.

If the IMS management of ACBs is enabled, the offline DL/I batch processing program retrieves the PSB and DBD information from the IMS catalog instead of the PSB and DBD libraries. Any specification of the IMS DD statements is ignored and can be omitted from the JCL.

The enablement of the IMS management of ACBs is determined by the ACBMGMT= parameter in the <CATALOG> section of the DFSDFxxx PROCLIB member or it can be indicated in a batch environment by turning the DXPL_FUNDIREN flag on in the DXPL_FUNCV2 byte in the IMS Catalog Definition exit routine (DFS3CDX0).

If VSAM databases are used, refer to IMS buffer pools.

Usage

In the sample DLIBATCH procedure that is built during SMP/E processing and placed in the ADFSPROC and SDFSPROC library data sets, the IEFRDER2 DD statement is included as a comment. To use the IEFRDER2 DD statement, remove the asterisks (*).

In the example shown in Procedure for an offline DL/I batch processing program using PSB and DBD libraries:
  • Parameters in parentheses are positional.
  • The IEFRDER statement is not required in DB/DC or DBCTL environments if the job does not declare database update intent.

    For a job step declaring database-update intent, DD DUMMY can be specified if the job step is not using DBRC. This is valid where an image copy of the database is taken before the update job step.

    Log initialization calculates the smallest value necessary for logical record length. If the JCL logical record length value is larger than the calculated value, the JCL value is used; otherwise, log initialization uses the calculated value for logical record length and adds 4 for the block size.

    If multiple volumes are required for the system log, a volume count value should be specified in the VOL parameter of the DD statement.

    If the IBM® 3480 tape drive is used for the IMS log data set, IMS forces tape write mode (DCB=OPCD=W). The default on the 3480 is to serve as a buffer for the write so that IMS cannot detect when the write is performed. If a power failure occurs after a log record is written to the 3480, and the database is updated but the log record is not yet written to tape, database integrity is lost. Tape write mode is forced for the log in batch and for GSAM data sets.

Parameters

The following parameters are valid for the DLIBATCH procedure.

  • APARM=
  • BKO=
  • BUF=
  • CKPTID=
  • DBRC=
  • DBRCGRP=
  • DFSDF=
  • FMTO=
  • IMSID=
  • IMSPLEX=
  • OPB=
  • IRLM=
  • IRLMNM=
  • LOCKMAX=
  • LOGA=
  • LOGT=
  • MON=
  • NODE1=
  • NODE2=
  • PRLD=
  • PSB=
  • RGN=
  • RGSUF= (no default when specified in the batch procedure)
  • RRS=
  • SOUT=
  • SRCH=
  • SSM=
  • SWAP=
  • SYS2=

These parameters cannot be specified in the PARM1= and PARM2= parameters:

  • EXCPVR=
  • MBR=
  • RST=
  • SPIE=
  • TEST=

The IOB parameter is no longer used and is ignored if it is specified.

See Parameter descriptions for IMS procedures for descriptions.

DD statements

In addition to whichever of the following DD statements you use, your procedure must include DD statements for database data sets that will not be dynamically allocated.

The following DD statements are required for the DLIBATCH procedure.

  • DFSRESLB DD
  • DFSURWF1 DD is required when you run a DL/I batch processing program using a PROCOPT=L PCB. Otherwise, this DD statement is optional.
  • DFSVSAMP DD
  • IEFRDER DD
  • IMS DD, except when the IMS management of ACBs is enabled
  • IMSLOGR DD
  • IMSMON DD
  • PROCLIB DD
  • STEPLIB DD
  • SYSABEND DD
  • SYSUDUMP DD

The following DD statements are optional for the DLIBATCH procedure.

  • DFSHALDB DD
  • DFSSTAT DD
  • DFSURWF1 DD is optional, except when you run a DL/I batch processing program using a PROCOPT=L PCB, in which case it is required.
  • IEFRDER2 DD
  • SYSHALDB DD

See DD statement descriptions for descriptions.

Procedure for an offline DL/I batch processing program using PSB and DBD libraries

//       PROC MBR=TEMPNAME,PSB=,BUF=7,
//            SPIE=0,TEST=0,EXCPVR=0,RST=0,PRLD=,
//            SRCH=0,CKPTID=,MON=N,LOGA=0,FMTO=T,
//            IMSID=,SWAP=,DBRC=,IRLM=,IRLMNM=,
//            BKO=N,IOB=,SSM=,APARM=,
//            RGN=4M,RGSUF=,PARM1=,PARM2=,
//            SOUT=A,LOGT=2400,SYS2=,
//            LOCKMAX=,GSGNAME=,TMINAME=,
//            RRS=N,IMSPLEX=,DFSDF=
//G      EXEC PGM=DFSRRC00,REGION=&RGN,
//            PARM=(DLI,&MBR,&PSB,&BUF,
//            &SPIE&TEST&EXCPVR&RST,&PRLD,
//            &SRCH,&CKPTID,&MON,&LOGA,&FMTO,
//            &IMSID,&SWAP,&DBRC,&IRLM,&IRLMNM,
//            &BKO,&IOB,&SSM,'&APARM',
//            &LOCKMAX,&GSGNAME,&TMINAME,
//            &RRS,&IMSPLEX,&RGSUF,&DFSDF,
//            '&PARM1','&PARM2')
//STEPLIB  DD DSN=IMS.&SYS2.SDFSRESL,DISP=SHR
//         DD DSN=IMS.&SYS2.PGMLIB,DISP=SHR
//DFSRESLB DD DSN=IMS.&SYS2.SDFSRESL,DISP=SHR
//IMS      DD DSN=IMS.&SYS2.PSBLIB,DISP=SHR
//         DD DSN=IMS.&SYS2.DBDLIB,DISP=SHR
//PROCLIB  DD DSN=IMS.&SYS2.PROCLIB,DISP=SHR
//IEFRDER  DD DSN=IMSLOG,DISP=(,KEEP),VOL=(,,,99),
//         UNIT=(&LOGT,,DEFER),
//         DCB=(RECFM=VB,BLKSIZE=4096,
//         LRECL=4092,BUFNO=2)
//IEFRDER2 DD DSN=IMSLOG2,DISP=(,KEEP),VOL=(,,,99),
//         UNIT=(&LOGT,,DEFER,SEP=IEFRDER),
//         DCB=(RECFM=VB,BLKSIZE=4096,
//         LRECL=4092,BUFNO=2)
//SYSUDUMP DD SYSOUT=&SOUT,
//         DCB=(RECFM=FBA,LRECL=121,BLKSIZE=605),
//         SPACE=(605,(500,500),RLSE,,ROUND)
//IMSMON   DD DUMMY