Considerations for Db2 DL/I Batch interface

IMS High Performance Unload supports the Db2® DL/I Batch interface, with some restrictions.

For DL/I Batch support of Db2, also read the Db2 Application Programming and SQL Guide.

By using Db2 DL/I Batch interface, an HSSR application program can issue:

  • Any HSSR call, with the restrictions stated in Restrictions common to all HSSR applications.
  • Any IMS batch call except a ROLS, SETS, or SYNC call, or any IMS batch command except a ROLS, SETS, or SYNC command. This is the same restriction as for Db2 DL/I Batch support. For further details about the restrictions on IMS batch calls, see Db2 Application Programming and SQL Guide.
  • IMS system service calls or commands with the same restrictions. See Considerations for checkpoint and restart.
  • Any SQL statements except COMMIT and ROLLBACK. The application program must use the IMS CHKP call or the IMS CHKP command to commit data, and the IMS ROLL or ROLB to roll back changes.
  • Any call or command to a standard or conventional access method such as QSAM or VSAM.

Program design considerations

The program design considerations for ordinary Db2 DL/I Batch support apply to IMS High Performance Unload. You should be familiar with the program design considerations for the Db2 DL/I Batch support, especially those related to checkpoint calls and application program synchronization, or to checkpoint commands and application program synchronization.

Restrictions on Db2 DL/I Batch support

The restrictions described in Restrictions common to all HSSR applications apply also to HSSR application programs that use the Db2 DL/I Batch interface. The following restriction also applies:

  • Db2 change data capture exit routine (DB2CDCEX) is supported, but a changed data capture exit routine cannot issue any HSSR call.

Requirements for using Db2 DL/I Batch support

You can use IBM®-supplied cataloged procedure FABHDB2, which resides in the HPS.SHPSSAMP sample library.

The required changes to the application program and the job step JCL are basically the same as for Db2 DL/I Batch support, except that using DSNMTV01 on the MBR= parameter is not supported; the results obtained when it is used are unpredictable.

You must specify a subsystem member, using the SSM= parameter on the procedure FABHDB2. Also, specify your HSSR application program name, using the MBR= parameter, and the name of the IMS High Performance Unload's program controller, FABH000, as the ninth positional parameter PROG in the DDITV02 data set. For more information about how to specify the EXEC parameters and the DDITV02 DD on the Db2 DL/I Batch job step JCL, see the Db2 Application Programming and SQL Guide.

In the HSSR application program that uses Db2 DL/I Batch support, the following additional EXEC parameter must be provided:

This required parameter specifies a 1- to 4-byte character identifier. When building the IMS.PROCLIB member that contains the information about each Db2 subsystem that IMS communicates with, you must generate the member name by concatenating this SSM identifier to the IMSID.

Carefully provide the following EXEC parameter:

This required parameter specifies the name of the HSSR application program. The Db2 module name DSNMTV01 must not be specified.

Provide the following DD statement in your JCL:

Specify the program controller name FABH000 as the ninth positional parameter PROG in this data set.

For example:

//DDITV02 DD *

The following DD statement is optional:

This optional DD statement defines the output data set in which the Db2 output information is written. If DCB is coded on the JCL, the specification must be RECFM=V or VB, LRECL=4092, and "BLKSIZE ≥ LRECL+4". If the DD statement is missing, message IEC130I is issued and processing continues without any output.