HSSR conversion utility
You can use the API to trap application program HSSR calls and pass them to IMS.
The application program must be link-edited to replace the HSSR language interface modules (FABHHSSR and FABPLI) with ULPHSRL1.
ULPHSRLI link-edits with unresolved addresses for ASMTDLI, CBLTDLI, and PLITDLI. This is necessary to avoid shipping IMS code with this module. However, those addresses will be resolved when you relink the application program.
Sample JCL is in the sample library member ULPHSRL1.
The JCL shown in the following figure illustrates the procedure for relinking the application program.
//LKED EXEC PGM=IEWL,REGION=0M,
// PARM=(XREF,LET,LIST,REUS)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&&SYSUT1,UNIT=VIO,SPACE=(1024,(50,20))
//USERLIB DD DISP=SHR,DSN=customer.pgmlib
//BMCLIB DD DISP=SHR,DSN=bmc.xxx.load
//SYSLIB DD DISP=SHR,DSN=IMSVS.RESLIB
//SYSLMOD DD DISP=SHR,DSN=customer.pgmlib
//SYSLIN DD *
REPLACE FABHHSSR(ULPHSRLI)
REPLACE HSSR(ULPHSRLI)
REPLACE FABHPLI(ULPHSRLI)
INCLUDE USERLIB(APITST10)
INCLUDE BMCLIB(ULPHSRLI)
INCLUDE SYSLIB(DFSLI000)
ENTRY DLITCBL <= depends on program language
NAME APITST10(R)
// PARM=(XREF,LET,LIST,REUS)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&&SYSUT1,UNIT=VIO,SPACE=(1024,(50,20))
//USERLIB DD DISP=SHR,DSN=customer.pgmlib
//BMCLIB DD DISP=SHR,DSN=bmc.xxx.load
//SYSLIB DD DISP=SHR,DSN=IMSVS.RESLIB
//SYSLMOD DD DISP=SHR,DSN=customer.pgmlib
//SYSLIN DD *
REPLACE FABHHSSR(ULPHSRLI)
REPLACE HSSR(ULPHSRLI)
REPLACE FABHPLI(ULPHSRLI)
INCLUDE USERLIB(APITST10)
INCLUDE BMCLIB(ULPHSRLI)
INCLUDE SYSLIB(DFSLI000)
ENTRY DLITCBL <= depends on program language
NAME APITST10(R)
The JCL shown in the following figure illustrates the change required to the application's run JCL.
BEFORE:
//HSSRSTEP EXEC PGM=FABHX034,
// PARM=('DFSRRC00/DLI',APITST10,SOMEPSB, ... etc ...
AFTER:
//ULPSTEP EXEC PGM=DFSRRC00,
// PARM=('DLI',APITST10,SOMEPSB, ... etc ...
//STEPLIB DD DISP=SHR,DSN=bmc.xxx.load
// DD DISP=SHR,DSN=IMSVS.PGMLIB
// DD DISP=SHR,DSN=IMSVS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMSVS.RESLIB
//IMS DD DISP=SHR,DSN=IMSVS.DBDLIB
// DD DISP=SHR,DSN=IMSVS.PSBLIB
//PLUSIN DD *
USERREAD PCB(1)
//HSSRSTEP EXEC PGM=FABHX034,
// PARM=('DFSRRC00/DLI',APITST10,SOMEPSB, ... etc ...
AFTER:
//ULPSTEP EXEC PGM=DFSRRC00,
// PARM=('DLI',APITST10,SOMEPSB, ... etc ...
//STEPLIB DD DISP=SHR,DSN=bmc.xxx.load
// DD DISP=SHR,DSN=IMSVS.PGMLIB
// DD DISP=SHR,DSN=IMSVS.RESLIB
//DFSRESLB DD DISP=SHR,DSN=IMSVS.RESLIB
//IMS DD DISP=SHR,DSN=IMSVS.DBDLIB
// DD DISP=SHR,DSN=IMSVS.PSBLIB
//PLUSIN DD *
USERREAD PCB(1)
Related topic
Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*