Re: Re: DL/I on MVS 3.8J

yvette hirth <yvette-RPrnXxQTqyxWk0Htik3J/[email protected]> Thu, 28 Oct 2010 22:26:20 +0000
Newsgroups gmane.comp.emulators.turnkey-mvs
Organization The DBT Group, Inc.
Message-ID <[email protected]>
Mike Schwab wrote:

 >> DBDs define the databases.
 >> PSBs defines how a programs accesses various databases.
 >> Then you have your compile decks to run the program through a 
pre-processor.

Enrico Sorichetti wrote:
 > for good old dl/i no preprocessor is needed , the dl/i interface was
 > thru CALL ASMTDLI,PLITDLI,CBLTDLI passing the appropriate parameter

you're both right.

PSBgen's and DBDgen's are only assembled and linked.  There's also 
ACBgen's, but iirc ACBgen's didn't start happening until XA and above.

there is no preprocessor needed for gen's nor for DL/I access.

when the program runs, it invokes IMS services using the CALL interface. 
  IMS services are not needed for PSB / DBD / ACB gen's.

this JCL is one of our PROCs that will do a DBDgen, will also work for 
PSBgen's.  (ACBgen's are a bit different, but you probably won't need 
them anyway...)  substitute your DSN's and ensure SYSLIB points to the 
two IMS MACLIB's, and you're ready to go.

//CDBDGEN  PROC REL=,DBD=,LOAD=
//ASM      EXEC PGM=ASMA90,PARM='NODECK'
//SYSIN    DD DSN=DBT.&REL..DBSOURCE(&DBD),DISP=SHR
//SYSLIB   DD DISP=SHR,DSN=IMSxxx.ADFSMAC
//         DD DISP=SHR,DSN=IMSxxx.SDFSMAC
//         DD DISP=SHR,DSN=SYS1.MACLIB
//         DD DISP=SHR,DSN=SYS1.AMODGEN
//SYSUT1   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT2   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT3   DD UNIT=VIO,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD DSN=&&OBJ,DISP=(,PASS),
//            UNIT=SYSDA,SPACE=(3120,(20,20)),DCB=BLKSIZE=3120
//LKED     EXEC PGM=IEWL,PARM='XREF,LET,LIST,NCAL',COND=(8,LE)
//SYSUT1   DD UNIT=VIO,SPACE=(1024,(20,20))
//SYSPRINT DD SYSOUT=*
//SYSLIN   DD DSN=&&OBJ,DISP=(OLD,DELETE)
//         DD DDNAME=INPUT
//SYSLMOD  DD DSN=DBT.&REL..DBDLIB(&LOAD),DISP=SHR

yvette hirth