INSTALLATION GUIDE FOR LOAD MODULE
Step 1. Get files from the Web to your PC to the Mainframe
Download to your PC from the web site www.eagle88.com,the Workbench demo version 6.17. On your PC will be a zip file that onceextracted results in the following files:
ERRORMSG.DOC
INSTALL.DOC
INSTALL.JCL
INTRO.DOC
LESSON.DOC
SAMPLES.DOC
All the .DOC files should be copied to this is a test a shareddrive forthe company’s use. These documents are the User Manual. A copy of the samematerial is available on the website in html format.
The BENV612.CT1, CT2, DAT, and JCL files are for tutoriallessons. Transfer these to your mainframe in ASCII format. Also, transfer theINSTALL.JCL file to save some time on installing the load module. The receivingfile should be pre-allocated to be physical sequential, lrecl=80 blksize=800.This is important for the IEBUPDTE stepto use 80/800.
Last, transfer the BENV610.OBJ file to the mainframe inbinary format. The receiving file should be pre-allocated to be physicalsequential, lrecl=80 blksize=800. Our samples below use SYSTECH.V6PGMS.OBJ.
Step 2. Expand files into workable mainframe PDS files
Create WORKBENCH’s object pds using the following JCL.Change the "company" name to a prefix that fits your data centerstandards. This step breaks up the sequential object file into a pds members.The jcl is found in the INSTALL.JCL.
Unload the WORKBENCH object members with the following JCL.
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//STEP1 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SYSTECH.V6PGMS.OBJ,DISP=OLD,
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSUT2 DD DSN=company.V6PGMS.OBJ,DISP=(,CATLG,DELETE),
// UNIT=DISK,SPACE=(TRK,(40,10,10),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PO)
Unload the WORKBENCH tutorial JCL with following JCL.
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//STEP2 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SYSTECH.V6TUTOR.CNTL,DISP=OLD,
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSUT2 DD DSN=company.V6TUTOR.CNTL,DISP=(,CATLG,DELETE),
// UNIT=DISK,SPACE=(TRK,(5,1,5),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PO)
//
Unload the WORKBENCH tutorial data with following JCL.
//install JOB(12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//STEP3 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SYSTECH.V6TUTOR.DATA,DISP=OLD,
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSUT2 DD DSN=company.V6TUTOR.DATA,DISP=(,CATLG,DELETE),
// UNIT=DISK,SPACE=(TRK,(5,1,5),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PO)
//
Unload the WORKBENCH tutorial control cards 1
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//STEP4 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SYSTECH.V6TUTOR.CTLCARD1,DISP=OLD
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSUT2 DD DSN=company.V6TUTOR.CTLCARD1,DISP=(,CATLG,DELETE),
// UNIT=DISK,SPACE=(TRK,(5,1,5),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PO)
//
Unload the WORKBENCH tutorial control cards 2
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//STEP5 EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SYSTECH.V6TUTOR.CTLCARD2,DISP=OLD,
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)
//SYSUT2 DD DSN=company.V6TUTOR.CTLCARD2,DISP=(,CATLG,DELETE),
// UNIT=DISK,SPACE=(TRK,(5,1,5),RLSE),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=800,DSORG=PO)
//
Step 3. Linking Workbench
Link the WORKBENCH load module using the following JCL. Some specialconsiderations should be noted. First, the Bench modules are from the object pdsyou downloaded. Browse them first and see if they look reasonable. If they areall askew, you might have missed the comment on pre-allocating the transfer fileto 80/800.
Second, is the DSN modules, DSNTIAR and DSNHLI for DB2 access. The link willget double definitions warnings on DSNHLI, but this ok. Next, the PAM modulebeing included is for Panvalet access without it you will get POPEN, PCLOSE,PSRCH unresolved messages. This is ok if you do not need panvalet access usingthe READPAN verb. Finally, the FAIR routines are for Librarian access.Unresolved messages for these are ok if your company does not use Librarian.
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//LINK1 EXEC PGM=HEWL,
// PARM='LIST,LET,XREF,CALL,AMODE=31,RMODE=24'
//SYSLIB DD DSN=company.loadlib,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10))
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DSN=company.loadlib,DISP=SHR
//SYSLIN DD DSN=company.V6PGMS.OBJ(BENCH01),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH02),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH03),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH04),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH05),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH06),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH07),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH08),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH09),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH10),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH11),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH11T),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH12),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH13),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH14),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH15),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH16),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH17),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH18),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH19),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(BENCH20),DISP=SHR
// DD DSN=company.V6PGMS.OBJ(IDMSTABL),DISP=SHR
// DD DDNAME=SYSIN
//SYSIN DD *
ENTRY BENCH01
INCLUDE SYSLIB(DSNTIAR)
INCLUDE SYSLIB(DSNHLI)
INCLUDE SYSLIB(PAM)
INCLUDE SYSLIB(FAIROPN)
INCLUDE SYSLIB(FAIRCLS)
INCLUDE SYSLIB(FAIRLOC)
INCLUDE SYSLIB(FAIRMOD)
INCLUDE SYSLIB(FAIRREC)
NAME BENCH(R)
Step 4. BENCH19 Plan BIND for DB2
A plan bind is required for operating Workbench under IBM'sDB2 database environment. First copy the DBRM object deck found inCompany.V6PGMS.OBJ (BENCH19D) into your DBRMLIB renamed to be BENCH19. Second,bind the plan with the following TSO command. The db2t is your company’ssystem id.
DSN SYSTEM(DB2T)
BIND PLAN (BENCH19) -
LIBRARY(your.company.lib) ACTION(REPLACE) RETAIN -
EXPLAIN(NO) VALIDATE(BIND) ISOLATION(CS) -
ACQUIRE(USE) RELEASE(COMMIT)
END
>
Step 5. Create WORKBENCH's Main Proc
Create the main WORKBENCH execution proc in your company proclibrary. Sample of the proc follows:
//BENCH PROC RGN=4M,ERRORS=
//******************************************
//* EXEC WORKBENCH UTILITY *
//******************************************
//BENCH EXEC PGM=BENCH,PARM=&ERRORS,REGION=&RGN
//STEPLIB DD DSN=company.loadlib,DISP=SHR
//BENCHR01 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR02 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR03 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR04 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR05 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR06 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR07 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR08 DD SYSOUT=*,DCB=(BLKSIZE=133.LRECL=133,RECFM=FBA)
//BENCHWRD DD DUMMY,DCB=(LRECL=34,BLKSIZE=6000,RECFM=VB)
//BENCHCMD DD DDNAME=SYSIN
//* PEND
Step 6. WORBENCH’s IMS execution proc
Create WORKBENCH's IMS Execute proc in the Proc Library asdefined by your data center. Sample of the proc follows:
//BENCHIMS PROC RGN=4M,PSB=
//******************************************
//* EXEC WORKBENCH UTILITY FOR IMS *
//******************************************
//BENCHIMS EXEC PGM=DFSRRC00,REGION=&RGN,
// PARM='DLI,BENCH,&PSB'
//STEPLIB DD DSN=company.loadlib,DISP=SHR
// DD DSN=company.ims.reslib,DISP=SHR
// DD DSN=company.ims.modlib,DISP=SHR
//IMS DD DSN=company.ims.pgmlib,DISP=SHR
//DFSVSAMP DD DSN=company.ctlcard(bufdef),DISP=SHR
//IEFRDER DD DUMMY
//SYSPRINT DD SYSOUT=*
//DFSSTAT DD DUMMY
//BENCHR01 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR02 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR03 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR04 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR05 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR06 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR07 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR08 DD SYSOUT=*,DCB=(BLKSIZE=133.LRECL=133,RECFM=FBA)
//BENCHWRD DD DUMMY,DCB=(LRECL=34,BLKSIZE=6000,RECFM=VB)
//BENCHCMD DD DDNAME=SYSIN
//* PEND
Step 7. Create CA-DataCom execution proc
Create WORKBENCH's CA-DATACOM Execute proc in the ProcLibrary as defined by your data center. You only need this proc if your shopuses this database product. Sample of the proc follows:
//BENCHDB PROC RGN=4M,URT='XXXXXXXX'
//******************************************
//* EXEC WORKBENCH UTILITY FOR CA-DATACOM *
//******************************************
//BENCHDB EXEC PGM=BENCHDB,PARM='URT=&URT',REGION=&RGN
//STEPLIB DD DSN=company.loadlib,DISP=SHR
// DD DSN=company.urt.loadlib,DISP=SHR
// DD DSN=company.db.loadlib,DISP=SHR
//BENCHR01 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR02 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR03 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR04 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR05 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR06 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR07 DD SYSOUT=*,DCB=(BLKSIZE=133,LRECL=133,RECFM=FBA)
//BENCHR08 DD SYSOUT=*,DCB=(BLKSIZE=133.LRECL=133,RECFM=FBA)
//BENCHWRD DD DUMMY,DCB=(LRECL=34,BLKSIZE=6000,RECFM=VB)
//BENCHCMD DD DDNAME=SYSIN
//* PEND
Step 8. CA-DataCom Special Link
A special link is necessary to allow access to CA-DATACOMdata base. This new load module is executed from the PROC BENCHDB. Make sure youcreate the BENCHDB proc to complete the CA-DATACOM features.
//install JOB (12345,12345),'PROGRAMMER',CLASS=A,MSGCLASS=A
//LINK4 EXEC PGM=HEWL,PARM='LIST,LET,XREF,AMODE=31,RMODE=24'
//*****************************
//* LINK CA-DATACOM WORKBENCH *
//*****************************
//SYSLIB DD DSN=company.loadlib,DISP=SHR
// DD DSN=company.datacom.modules,DISP=SHR
// DD DSN=SYS1.LINKLIB,DISP=SHR
// DD DSN=SYS1.RESLIB,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10))
//SYSPRINT DD SYSOUT=A
//SYSLMOD DD DSN=company.loadlib,DISP=SHR
//SYSLIN DD DDNAME=SYSIN
//SYSIN DD *
INCLUDE SYSLIB(DBURINF1)
INCLUDE SYSLIB(BENCH)
ENTRY BEGIN
NAME BENCHDB(R)
//
Step 9. Demo run for WORKBENCH
WORKBENCH is now ready for use. The following sample JCL andcommands illustrate and test WORKBENCH. Please refer to the User Manual forfurther samples.
//TESTJOB JOB (12345,12345),'PROGRAMMER',CLASS=A
//STEP01 EXEC BENCH
//SYSIN DD *
PROCTAG1 EXHIBIT 'HELLO'.
GOTO EOJ.
Step 10. Tutorials of Workbench features
For a more complete testing of Workbench’s features, refer to the tutorialsection of the manual. Each lesson has test data and jcl that relate to theunloaded tutorial files.