Vous êtes sur la page 1sur 33

LAB MODULE : VSAM

PGM1 : LAB1.1 : CREATING KSDS CLUSTER //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(MTPLB21.VSAM.KSDAP)TRACKS(10,5) VOLUMES(MTBLR1) KEYS(5 1) RECSZ(80 80)INDEXEDREUSE)DATA (NAME(MTPLB21.VSAM.KSDAP.DATA)CISZ(4096)FREESPACE(20 10))INDEX (NAME(MTPLB21.VSAM.KSDAP.INDEX)CISZ(4096)) [OUTPUT THE DATASETS MTPLB21.VSAM.KSDAP MTPLB21.VSAM.KSDAP.DATA MTPLB21.VSAM.KSDAP.INDEX IS CREATED GIVE THE LINE AREA COMMAND PRINT IDS(/) CHAR ON THE LEFT OF MTPLB21.VSAM.KSDAP TO GET THE RESULT IDC3351I ** VSAM OPEN RETURN CODE IS 160 IDC0005I NUMBER OF RECORDS PROCESSED WAS 0 IDC0014I LASTCC=12 (ie the file is created.lastcc=12 means we are opening a dataset. rc=160 means there is no records in the file) TO LIST ALL CATALOG INFORMATION GIVE THE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.KSDAP THEN ALL THE INFORMATION ABOUT THIS VSAM FILE WILL BE DISPLAYED ] PGM2 : LAB 1.2 :CREATING ESDS CLUSTER //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=*

//SYSIN DD * DEFINE CLUSTER(NAME(MTPLB21.VSAM.ESDSA)TRACKS(10,5)VOLUMES(MTBLR1)RECORDSIZE(80 100)CISZ(4096)NONINDEXED)DATA (NAME(MTPLB21.VSAM.ESDSA.DATA)CISZ(4096)) [OUTPUT DATASET MTPLB21.VSAM.ESDSA & MTPLB21.VSAM.ESDSA.DATA IS CREATED. TO LIST ALL CATALOG INFORMATION GIVE THE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.ESDSA ] PGM3 : LAB 1.3 : CREATING RRDS CLUSTER //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(MTPLB21.VSAM.RRDSA)TRACKS(10 5)VOLUMES(MTBLR1)CISZ(4096)RECSZ(80 80)NUMBERED ) [OUTPUT DATASET MTPLB21.VSAM.RRDSA & MTPLB21.VSAM.RRDSA.DATA IS CREATED. TO LIST ALL CATALOG INFORMATION GIVE THE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.RRDSA ] PGM4 : CREATING VRRDS CLUSTER //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(MTPLB21.VSAM.VRRDSA)TRACKS(1 1)VOLUMES(MTBLR1)CISZ(4096)-

RECORDSIZE(50 80)NUMBERED ) [OUTPUT DATASET MTPLB21.VSAM.VRRDSA MTPLB21.VSAM.VRRDSA.DATA MTPLB21.VSAM.VRRDSA.INDEX IS CREATED. VRRS IS A KSDS PROCESSED AS AN RRDS SO BOTH DATA & INDEX WILL BE CREATED ] PGM5 : LAB 1.4 : CREATING LDS CLUSTER //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER (NAME(MTPLB21.VSAM.LDSA)TRACKS(10 5)VOLUMES(MTBLR1)CISZ(4096)LINEAR) /* [OUTPUT DATASET MTPLB21.VSAM.LDSA MTPLB21.VSAM.LDSA.DATA IS CREATED. TO LIST ALL CATALOG INFORMATION GIVE THE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.LDSA ] PGM6 : CREATING KSDS CLUSTER USING JCL STMTS. //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //DD1 DD DSNAME=MTPLB21.VSAM.KSDAP, // DISP=(NEW,CATLG), // SPACE=(400,(50,5)), // AVGREC=K, // RECORG=KS, // KEYLEN=15, // KEYOFF=0, // LRECL=250, // UNIT=SYSDA, // VOL=SER=MTBLR1 //SYSIN DD DUMMY [OUTPUT

THE DATASETS MTPLB21.VSAM.KSDAP MTPLB21.VSAM.KSDAP.DATA MTPLB21.VSAM.KSDAP.INDEX IS CREATED] PGM7 : CREATING ESDS CLUSTER USING JCL STMTS. //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //DD1 DD DSNAME=MTPLB21.VSAM.ESDSJ, // DISP=(NEW,CATLG), // SPACE=(100,(10,8)), // RECORG=ES, // LRECL=50, // UNIT=SYSDA, // VOL=SER=MTBLR1 //SYSIN DD DUMMY [OUTPUT DATASET MTPLB21.VSAM.ESDSJ & MTPLB21.VSAM.ESDSJ.DATA IS CREATED. ] PGM8 : CREATING LDS CLUSTER USING JCL //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //DD1 DD DSNAME=MTPLB21.VSAM.LDSJ2, // DISP=(NEW,CATLG), // SPACE=(1,(10)), // AVGREC=M, // RECORG=LS, // UNIT=SYSDA, // VOL=SER=MTBLR1 //SYSIN DD DUMMY [OUTPUT DATASET MTPLB21.VSAM.LDSA MTPLB21.VSAM.LDSA.DATA IS CREATED. ] PGM9 : LAB 2.1 : CREATING SEQUENTIAL DATASET COMMAND ==>3.2 A FOR ALLOCATION OF NEW DATASET

ENTER THE ATTRIBUTES OF PHYSICAL SEQUENTIAL DS. THE INFORMATION IN THE DATASET IS AS FOLLOWS 10000JAIKUM 10003PRIYAA 10004ANURAG 10005PRADEEP 10010ABHILASH 5000001234 6789001235 7668681236 5677881234 6789001237

PGM10 : LAB 2.2 : COPYING SEQENTIAL -> KSDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.COBOL.PRI4)ODS(MTPLB21.VSAM.KSDAP) [INPUT IN MTPLB21.COBOL.PRI4 10523 11234 14556 25578 30988 OUTPUT JAIKUMAAAZHAKATHU 456780 PRIYAAA AABANGLORE 000000 ANURAGG GGBOMBAYYYY 000123 PRADEEPP PPBAHARAIN 004568 ABHILASH HMUMBAIIII 678900 IN MTPLB21.VSAM.KSDAP

KEY OF RECORD - 10523 10523 JAIKUMAAAZHAKATHU 456780 ...................................... KEY OF RECORD - 11234 11234 PRIYAAA AABANGLORE 000000 ...................................... KEY OF RECORD - 14556 14556 ANURAGG GGBOMBAYYYY 000123 ...................................... KEY OF RECORD - 25578 25578 PRADEEPP PPBAHARAIN 004568 KEY OF RECORD - 30988 30988 ABHILASH HMUMBAIIII 678900 IDC0005I NUMBER OF RECORDS PROCESSED WAS 5 *** (This ksds cluster will take first five characters as the key value as we have defined keys(5 0) when we created the MTPLB21.VSAM.KSDAP) OUTPUT IN MTPLB21.VSAM.KSDAP.DATA RBA OF RECORD 0 10523 JAIKUMAAAZHAKATHU 456780 ...................................... RBA OF RECORD 80

11234 PRIYAAA AABANGLORE 000000 ...................................... RBA OF RECORD 160 14556 ANURAGG GGBOMBAYYYY 000123 ...................................... RBA OF RECORD 240 25578 PRADEEPP PPBAHARAIN 004568 RBA OF RECORD 320 30988 ABHILASH HMUMBAIIII 678900 IDC0005I NUMBER OF RECORDS PROCESSED WAS 5 *** OUTPUT IN MTPLB21.VSAM.KSDAP.INDEX RBA OF RECORD 0 IDC0005I NUMBER OF RECORDS PROCESSED WAS 1 *** ] PGM11 : LAB 2.2 : COPYING SEQENTIAL -> ESDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.COBOL.PRI4)ODS(MTPLB21.VSAM.ESDSA) [CONTENTS FROM MTPLB21.COBOL.PRI4 IS COPIED TO MTPLB21.VSAM.ESDSA] PGM12 : LAB 2.2 : COPYING SEQENTIAL -> RRDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.COBOL.PRI4)ODS(MTPLB21.VSAM.RRDSA1) [INPUT DATA SET ORGANIZATION INCOMPATIBLE WITH OUTPUT DATA SET - CONTENTS NOT COPIED] PGM13 : LAB 2.4 : COPYING KSDS -> ESDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD *

REPRO IDS(MTPLB21.VSAM.KSDAP)ODS(MTPLB21.VSAM.ESDSA)FROMKEY(11234)TOKEY(25578) [INPUT IN MTPLB21.VSAM.KSDAP KEY OF RECORD - 10523 10523 JAIKUMAAAZHAKATHU 456780 KEY OF RECORD - 11234 11234 PRIYAAA AABANGLORE 000000 KEY OF RECORD - 14556 14556 ANURAGG GGBOMBAYYYY 000123 KEY OF RECORD - 25578 25578 PRADEEPP PPBAHARAIN 004568 KEY OF RECORD - 30988 30988 ABHILASH HMUMBAIIII 678900

...................................... ...................................... ......................................

OUTPUT IN MTPLB21.VSAM.ESDS RBA OF RECORD 0 11234 PRIYAAA AABANGLORE 000000 ...................................... RBA OF RECORD 80 14556 ANURAGG GGBOMBAYYYY 000123 ..................................... RBA OF RECORD 160 25578 PRADEEPP PPBAHARAIN 004568 IDC0005I NUMBER OF RECORDS PROCESSED WAS 3 *** SAME CONTENT IS STORED IN MTPLB21.VSAM.ESDS.DATA. ] PGM14 : COPYING ESDS -> KSDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.VSAM.ESDSA)ODS(MTPLB21.VSAM.KSDSJ)FROMKEY(11234)TOKEY(25578) [CONTENTS FROM MTPLB21.VSAM.ESDSA IS COPIED TO MTPLB21.VSAM.KSDSJ] PGM15 : COPYING ESDS -> RRDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=*

//SYSIN DD * REPRO IDS(MTPLB21.VSAM.ESDSA)ODS(MTPLB21.VSAM.RRDSA) [OUTPUT IN MTPLB21.VSAM.RRDSA RELATIVE RECORD NUMBER - 1 11234 PRIYAAA AABANGLORE 000000 ...................................... RELATIVE RECORD NUMBER - 2 14556 ANURAGG GGBOMBAYYYY 000123 ...................................... RELATIVE RECORD NUMBER - 3 25578 PRADEEPP PPBAHARAIN 004568 IDC0005I NUMBER OF RECORDS PROCESSED WAS 3 *** ] PGM16 : COPYING ESDS -> VRRDS USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.VSAM.ESDSA)ODS(MTPLB21.VSAM.VRRDSA)
[OUTPUT IN MTPLB21.VSAM.VRRDSA RELATIVE RECORD NUMBER - 1 11234 PRIYAAA AABANGLORE 000000 ...................................... RELATIVE RECORD NUMBER - 2 14556 ANURAGG GGBOMBAYYYY 000123 ...................................... RELATIVE RECORD NUMBER - 3 25578 PRADEEPP PPBAHARAIN 004568 IDC0005I NUMBER OF RECORDS PROCESSED WAS 3 *** ]

PGM17 : COPYING VRRDS -> RRDS USING REPRO


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * REPRO IDS(MTPLB21.VSAM.VRRDSA)ODS(MTPLB21.VSAM.RRDSA1)

[CONTENTS FROM MTPLB21.VSAM.VRRDSA IS COPIED TO MTPLB21.VSAM.RRDSA1] PGM18 : COPYING ESDS -> LDS USING REPRO (NOT POSSIBLE) INPUT DATA SET ORGANIZATION INCOMPATIBLE WITH OUTPUT DATA SET PGM19 : COPYING SEQ -> LDS USING REPRO (NOT POSSIBLE)

INPUT DATA SET ORGANIZATION INCOMPATIBLE WITH OUTPUT DATA SET PGM20 : COPYING KSDS -> SEQ USING REPRO //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //IN DD DSN=MTPLB21.VSAM.KSDAP,DISP=OLD //OUT DD DSN=MTPLB21.SEQ.PRI1,DISP=(NEW,CATLG),UNIT=SYSDA, // SPACE=(TRK,(2,3)),VOL=SER=MTBLR1, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /* [CONTENTS FROM MTPLB21.VSAM.KSDAP IS COPIED TO NEW FILE MTPLB21.SEQ.PRI1] PGM21 : REPRO WITH REPLACE SEQ-->KSDS //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //DD1 DD DSN=MTPLB21.SEQ.PRI1,DISP=OLD //DD2 DD DSN=MTPLB21.VSAM.KSDAP,DISP=OLD //SYSIN DD * REPRO INFILE(DD1) OUTFILE(DD2) REPLACE /* CONTENTS OF MTPLB21.SEQ.PRI1 10523 JAIKUMAAAZHAKATHU 456780 11234 PRIYAAA AABANGLORE 000000 14556 AAAAAAA GGBOMBAYYYY 000123 25578 PRADEEPP PPBAHARAIN 004568 33333 ABHILASH HMUMBAIIII 678900 45678 ANUUUUUU HSDHFSDJGD 695979 56778 GGGGGGGG DFGDFHSHSH 565757 CONTENTS OF MTPLB21.VSAM.KSDAP B4 REPLACING 10523 JAIKUMAAAZHAKATHU 456780 11234 PRIYAAA AABANGLORE 000000 14556 ANURAGG GGBOMBAYYYY 000123 25578 PRADEEPP PPBAHARAIN 004568 30988 ABHILASH HMUMBAIIII 678900 CONTENTS OF MTPLB21.VSAM.KSDAP AFTER REPLACING

10523 11234 14556 25578 30988 33333 45678 56778

JAIKUMAAAZHAKATHU 456780 PRIYAAA AABANGLORE 000000 AAAAAAA GGBOMBAYYYY 000123 PRADEEPP PPBAHARAIN 004568 ABHILASH HMUMBAIIII 678900 ABHILASH HMUMBAIIII 678900 ANUUUUUU HSDHFSDJGD 695979 GGGGGGGG DFGDFHSHSH 565757

(NOTE : WHEN WE USE REPRO WITH REPLACE IT WILL REPLACE THE CONTENTS OF TARGET FILE WITH NEW DATA BASED ON KEY VALUE & APPEND THE NEW CONTENS. WE CANNOT CHANGE THE KEY VALUES. WE CAN ONLY CHANGE THE DATA PART) PGM22 : REPRO WITH REUSE SEQ-->KSDS //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //DD1 DD DSN=MTPLB21.COBOL.PRI6,DISP=OLD //DD2 DD DSN=MTPLB21.VSAM.KSDA1,DISP=OLD //SYSIN DD * REPRO INFILE(DD1) OUTFILE(DD2) REUSE /* [WHEN WE USE REUSE ALL THE EXISTING CONTENTS IN TARGET FILE MTPLB21.VSAM.KSDA1 WILL BE DELETED AND THE NEW CONTENTS FROM MTPLB21.COBOL.PRI6 WILL BE APPENDED TO THE TARGET FILE. NOTE: IF WE WANT TO USE REUSE WITH REPRO IN A KSDS FILE IT IS MANDATORY TO USE REUSE WITH KSDS FILE WHEN WE DEFINE IT AS SHOWN BELOW DEFINE CLUSTER(NAME(MTPLB21.VSAM.KSDA1)TRACKS(1,1) VOLUMES(MTBLR1) KEYS(5 0) INDEXED REUSE) PGM23 : ALTER WITH ADDVOLUME //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER MTPLB21.VSAM.KSDAP.DATA ADDVOLUME(USER01) OUTPUT

10

ALONG WITH THE VOLUME MTBLR1, VOLUME USER01 IS ALSO ADDED FOR THE FILE MTPLB21.VSAM.KSDAP.DATA. TO VIEW THE NEWLY ADDED VOLUME, GIVE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.KSDAP.DATA. NOW IT HAS VOLUME USER01 & MTBLR1 PGM24 : ALTER WITH REMOVEVOLUME //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER MTPLB21.VSAM.KSDAP.DATA REMOVEVOLUME(USER01) OUTPUT VOLUME USER01 WILL BE REMOVED FROM THE CATLIST. TO VIEW THIS GIVE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.KSDAP.DATA. NOW IT HAS IN VOLUME MTBLR1 ONLY. PGM25 : ALTER WITH FREESPACE //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER MTPLB21.VSAM.KSDAP.DATA FREESPACE(30 30) OUTPUT FREESPCE IS CHANGED TO 30% OF CI & 30%CA. TOO VIEW THIS GIVE LINE AREA COMMAND LISTCAT ENTRIES(/) ALL ON THE LEFT OF MTPLB21.VSAM.KSDAP.DATA. PGM26 : ALTER WITH NEWNAME //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER-

11

MTPLB21.VSAM.KSDSJNEWNAME(MTPLB21.VSAM.KSDMM) ALTER MTPLB21.VSAM.KSDSJ.DATANEWNAME(MTPLB21.VSAM.KSDMM.DATA) ALTERMTPLB21.VSAM.KSDSJ.INDEXNEWNAME(MTPLB21.VSAM.KSDMM.INDEX) OUTPUT CLUSTER NAME, DATA COMPONENT NAME & INDEX NAME IS CHANGED FROM MTPLB21.VSAM.KSDSJ MTPLB21.VSAM.KSDSJ.DATA MTPLB21.VSAM.KSDSJ.INDEX
TO

MTPLB21.VSAM.KSDMM MTPLB21.VSAM.KSDMM.DATA MTPLB21.VSAM.KSDMM.INDEX PGM27 : DELETE CLUSTER


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE(MTPLB21.VSAM.KSDMM MTPLB21.VSAM.ESDSJ MTPLB21.VSAM.LDSA1) // /* OUTPUT MTPLB21.VSAM.KSDMM MTPLB21.VSAM.ESDSJ MTPLB21.VSAM.LDSA1

ARE DELETED

PGM28 : LAB 2.3 : PRINT DATA IN A CLUSTER TO SPOOL (FROMKEY-TOKEY)


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //DD1 DD DSN=MTPLB21.VSAM.KSDAP,DISP=OLD //SYSIN DD * PRINTINFILE(DD1) CHARFROMKEY(11234)TOKEY(33333) /*

12

OUTPUT IF WE GIVE INFILE(DD1) IT WILL PRINT DUMP (HEX & CHAR) AS DUMP IS TAKEN AS DEFAULT. IF WE GIVE INFILE(DD1) CHAR IT WILL PRINT CHAR ie THE DATA IN THE FILE. IF WE GIVE INFILE(DD1) HEX IT WILL PRINT HEXA DECIMAL OF THE DATA IN THE FILE. FROMKEY(11234)TOKEY(33333) MEANS THE RECORDS FROM THE FROMKEY TO TOKEY WILL BE DISPLAYED. IF WE ARE NOT GIVING FROMKEY(11234)TOKEY(33333) THEN ALL RECORDS WILL BE DISPLAYED.

PGM29 : LAB 2.3 : PRINT DATA IN A CLUSTER TO SPOOL (FROMADDRESS-TOADDRESS)


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //DD1 DD DSN=MTPLB21.VSAM.KSDAP,DISP=OLD //SYSIN DD * PRINTINFILE(DD1) CHARFROMADDRESS(0)TOADDRESS(320) /* OUTPUT FROMADDRESS(0)TOADDRESS(320) MEANS THE RECORDS FROM THE FROM RBA 0 TO RBA 320 WILL BE DISPLAYED. SO HERE 5 RECORDS ARE PRINTED. THE RBA NUMBERS ARE 0,80,160,240,320.

GIVE THE LINE AREA COMMAND PRINT IDS(/) CHAR ON THE LEFT OF MTPLB21.VSAM.KSDAP.DATA TO VIEW THE RBA NUMBERS B4 PRINTING PGM30 : LAB 2.3 : PRINT DATA IN A CLUSTER TO SPOOL (SKIP-COUNT) //MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //DD1 DD DSN=MTPLB21.VSAM.KSDAP,DISP=OLD //SYSIN DD * PRINTINFILE(DD1) CHARSKIP(2)COUNT(4) /*

13

OUTPUT SKIP(2)-FIRST 2 RECORDS WILL BE SKIPPED COUNT(4)-NEXT 4 RECORDS FROM POSITION 3-6 WILL BE COUNTED. MEANS THE RECORDS FROM 3 TO 6 (4 RECORDS) WILL BE DISPLAYED.

PGM31 : LAB 3.1 : CREATE KSDS, CREATE SEQENTIAL DS, COPY SEQ-->KSDS USING REPRO CREATING A SEQUENTIAL DATASET & GIVING CONTENTS COMMAND ==>3.2 A FOR ALLOCATION OF NEW DATASET ENTER THE ATTRIBUTES OF PHYSICAL SEQUENTIAL DS. THE INFORMATION IN THE DATASET IS AS FOLLOWS
A0001JAIKUM A0002PRIYAA B0005ANURAG B0007PRADEEP C0010ABHILASH 5000 6780 7660 5670 6780 ACCT ADMN SALES ADMN CSEDT

CREATE KSDS & COPY SEQ-->KSDS USING REPRO


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(MTPLB21.VSAM.KSDAP5)TRACKS(10,5) VOLUMES(MTBLR1) KEYS(5 1) RECSZ(80 80)INDEXEDREUSE) REPRO IDS(MTPLB21.COBOL.PRI4)ODS(MTPLB21.VSAM.KSDAP5) [OUTPUT CONTENTS OF MTPLB21.COBOL.PRI4 IS COPIED TO MTPLB21.VSAM.KSDAP5 ]

PGM32 : VERIFY COMMAND


//MTPLB21J JOB ,,CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=MTPLB21, // LINES=(1,CANCEL) //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * LISTCAT ENTRIES(MTPLB21.VSAM.KSDAP) ALL VERIFY DATASET(MTPLB21.VSAM.KSDAP) LISTCAT ENTRIES(MTPLB21.VSAM.KSDAP) ALL /*

[THE CLUSTER IS VERIFIED]

14

PGM33 : COBOL PGM TO COPY ESDS-->ESDS IDENTIFICATION DIVISION. PROGRAM-ID. COBESES. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO AS-DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS STAT1. SELECT OUT-FILE ASSIGN TO AS-DD2 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS STAT2. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 WNO PIC 9(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(52). FD OUT-FILE. 01 OUT-REC PIC X(80). WORKING-STORAGE SECTION. 01 EOF PIC X VALUE 'N'. 01 STAT1 PIC X(2). 01 STAT2 PIC X(2). PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE DISPLAY STAT1. OPEN OUTPUT OUT-FILE. DISPLAY STAT2. PERFORM READ-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE OUT-FILE. STOP RUN. READ-PARA. READ IN-FILE AT END MOVE 'Y' TO EOF. IF EOF = 'N' WRITE OUT-REC FROM IN-REC.
[OUTPUT STEP1. CREATE 2 ESDS VSAM FILES. MTPLB21.VSAM.ESDSB & MTPLB21.VSAM.ESDSC STEP2. CREATE A SEQUENTAIL FILE & ENTER THE FOLLOWING DETAILS A01JAIKUM KONNIIIIII A02PRIYAA PATHANAMTHITTA B05ANURAG BANGLORE

15

B07PRADEEP BAHRAINNN C10ABHILASH MUMBAIIII STEP3. THE CONTENTS IN THE SEQ FILE IS COPIED TO MTPLB21.VSAM.ESDSB USING REPRO STEP4. COMPILE COBOL PROGRAM STEP5. RUN COBOL PROGRAM COBRUN //MTPLB21J JOB ,, // CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),LINES=(1,CANCEL), // NOTIFY=MTPLB21 //RUN EXEC PGM=INITIAL //DD1 DD DSN=MTPLB21.VSAM.ESDSB,DISP=OLD //DD2 DD DSN=MTPLB21.VSAM.ESDSC,DISP=OLD //* UNIT=SYSDA,VOL=SER=MTBLR1, //* SPACE=(TRK,(1,2),RLSE), //* DCB=(LRECL=80,RECFM=FB,BLKSIZE=800) //STEPLIB DD DSN=MTPLB21.COBOL.LOADLIB,DISP=SHR //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY // STEP6. THE CONTENTS FROM MTPLB21.VSAM.ESDSB IS COPIED TO MTPLB21.VSAM.ESDSC. STATUS DISPLYED 00 ( SUCCESSFUL OPENING OF IN-FILE ) 00 ( SUCCESSFUL OPENING OF OUT-FILE) ]

PGM34 : COBOL PGM TO COPY ESDS-->KSDS [key (3 1)]


CREATE THE KSDS FILE USING PGM1. COBOL PGM IDENTIFICATION DIVISION. PROGRAM-ID. COBES. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO AS-DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DD2 ORGANIZATION IS INDEXED RECORD KEY IS ONO ACCESS MODE IS SEQUENTIAL FILE STATUS IS ST. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 NUM PIC X. 02 WNO PIC X(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(51). FD OUT-FILE. 01 OUT-REC. 02 ONUM PIC X. 02 ONO PIC X(3). 02 ONAME PIC X(10).

16

02 OADDR PIC X(15). 02 FILLER PIC X(51). WORKING-STORAGE SECTION. 01 EOF PIC X. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE. OPEN OUTPUT OUT-FILE. DISPLAY ST. READ IN-FILE INTO OUT-REC AT END MOVE 'Y' TO EOF. PERFORM READ-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE. CLOSE OUT-FILE. DISPLAY ST. STOP RUN. READ-PARA. WRITE OUT-REC. DISPLAY ST. READ IN-FILE INTO OUT-REC AT END MOVE 'Y' TO EOF. DISPLAY OUT-REC. [OUTPUT AT THE CREATION TIME OF MTPLB21.VSAM.KSDAP8 KEY IS GIVEN AS --- KEY (3 1) INPUT IN ESDS FILE 101JAIKUM KONNIIIIII 102PRIYAA PATHANAMTHITTA 105ANURAG BANGLORE 107PRADEEP BAHRAINNN 110ABHILASH MUMBAIIII COBRUN //MTPLB21J JOB ,, // CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),LINES=(1,CANCEL), // NOTIFY=MTPLB21 //RUN EXEC PGM=INITIAL //STEPLIB DD DSN=MTPLB21.COBOL.LOADLB,DISP=SHR //DD1 DD DSN=MTPLB21.VSAM.ESDSD,DISP=OLD //DD2 DD DSN=MTPLB21.VSAM.KSDAP8,DISP=OLD //* UNIT=SYSDA,VOL=SER=MTBLR1, //* SPACE=(TRK,(1,2),RLSE), //* DCB=(LRECL=80,RECFM=FB,BLKSIZE=800) //*SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY RESULT CONTENT OF MTPLB21.VSAM.ESDSD IS COPIED TO MTPLB21.VSAM.KSDAP8 NOTE : KEYS IN FOR FIVE RECORD WILL BE MTPLB21.VSAM.KSDAP8 01A,02P,05A,07P,10A AS KEY IS 3,1 IN KSDS IT IS TAKING THE KEY VALUE AS 3 CHARACTERS FROM 2ND POSITION. SO 2ND 3RD AND 4TH CHARCTERS ARE THE KEY FIELD.

PGM35 : COBOL PGM TO COPY ESDS-->KSDS [key (3 0)]

17

CREATE THE KSDS FILE USING PGM1. COBOL PGM IDENTIFICATION DIVISION. PROGRAM-ID. COBES. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO AS-DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DD2 ORGANIZATION IS INDEXED RECORD KEY IS ONO ACCESS MODE IS SEQUENTIAL FILE STATUS IS ST. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 WNO PIC X(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(52). FD OUT-FILE. 01 OUT-REC. 02 ONO PIC X(3). 02 ONAME PIC X(10). 02 OADDR PIC X(15). 02 FILLER PIC X(52). WORKING-STORAGE SECTION. 01 EOF PIC X. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE. OPEN OUTPUT OUT-FILE. DISPLAY ST. PERFORM READ-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE. CLOSE OUT-FILE. DISPLAY ST. STOP RUN. READ-PARA. READ IN-FILE INTO OUT-REC AT END MOVE 'Y' TO EOF. IF EOF NOT EQUAL TO 'Y' WRITE OUT-REC. DISPLAY ST. IF EOF NOT EQUAL TO 'Y' DISPLAY OUT-REC. [OUTPUT AT THE CREATION TIME OF MTPLB21.VSAM.KSDAP12 KEY IS GIVEN AS --- KEY (3 0) INPUT IN ESDS FILE 101JAIKUM KONNIIIIII 102PRIYAA PATHANAMTHITTA 105ANURAG BANGLORE

18

107PRADEEP 110ABHILASH

BAHRAINNN MUMBAIIII

COBRUN //MTPLB21J JOB ,, // CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),LINES=(1,CANCEL), // NOTIFY=MTPLB21 //RUN EXEC PGM=INITIAL //STEPLIB DD DSN=MTPLB21.COBOL.LOADLB,DISP=SHR //DD1 DD DSN=MTPLB21.VSAM.ESDSD,DISP=OLD //DD2 DD DSN=MTPLB21.VSAM.KSDAP12,DISP=OLD //* UNIT=SYSDA,VOL=SER=MTBLR1, //* SPACE=(TRK,(1,2),RLSE), //* DCB=(LRECL=80,RECFM=FB,BLKSIZE=800) //*SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY RESULT CONTENT OF MTPLB21.VSAM.ESDSD IS COPIED TO MTPLB21.VSAM.KSDAP12 NOTE : KEYS IN FOR FIVE RECORD WILL BE MTPLB21.VSAM.KSDAP8 101,102,105,107,110 AS KEY IS 3,0 IN KSDS IT IS TAKING THE KEY VALUE AS 3 CHARACTERS FROM 1st POSITION. SO 1st 2nd & 3rd CHARCTERS ARE THE KEY FIELD.

OUTPUT IN SPOOL
00 00 101JAIKUM 00 102PRIYAA 00 105ANURAG 00 107PRADEEP 00 110ABHILASH 00 00 KONNIIIIII PATHANAMTHITTA BANGLORE BAHRAINNN MUMBAIIII

OUTPUT IN KSDS FILE KEY OF RECORD - 101 101JAIKUM KONNIIIIII KEY OF RECORD - 102 102PRIYAA PATHANAMTHITTA KEY OF RECORD - 105 105ANURAG BANGLORE KEY OF RECORD - 107 107PRADEEP BAHRAINNN KEY OF RECORD - 110 110ABHILASH MUMBAIIII IDC0005I NUMBER OF RECORDS PROCESSED WAS ***

...................................... ...................................... ......................................

PGM36 : CREATING AN ALTERNATE INDEX

19

//MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE AIX (NAME(MTPLB21.VSAM.AIXAN)RELATE(MTPLB21.VSAM.KSDAP14)KEYS(10 3) VOLUME(MTBLR1) TRACK(1 2)RECORDSIZE(80 80) FREESPACE(20 10)UPGRADE) /* OUTPUT 1. CREATE A KSDS WITHOUT REUSE OPTION USING PGM1. 2. COPY FROM ESDS-->KSDS USING REPRO PGM14. 3. 3 DATASETS MTPLB21.VSAM.AIXAN MTPLB21.VSAM.AIXAN.DATA MTPLB21.VSAM.AIXAN.INDEX ARE CREATED [NOTE: WHEN WE R CREATING AN ALTERNATE INDEX NOTE THAT THE BASE INDEX SHOULD NOT BE CREATED WITH THE REUSE OPTION. IF U HAVE CREATED IT WITH THE REUSE OPTION AND TRYING TO CREATE AN ALTERNATE INDEX TO IT IT WILL GIVE THE ERROR AS 'INVALID RELATED OBJECT'. IF U EDIT THIS NEWLY CREATED ALTERNATE INDEX THERE WILL BE NOTHING.UNTIL U BUILD THE INDEX THERE WILL BE NO DATA INSIDE. NOW WE SHALL TRY TO BUILD AN INDEX WHILE CREATING AN ALTERNATE INDEX THESE ARE THE STEPS TO BE FOLLOWED AND MUST. 1 DEFINE AIX BASE CLUSTER 2 DEFINE A PATH 3 BUILD INDEX] PGM37 : DEFINING A PATH //MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE PATH(NAME(MTPLB21.VSAM.PATHAN) PATHENTRY(MTPLB21.VSAM.AIXAN) UPDATE) /* OUTPUT DATASET MTPLB21.VSAM.PATHAN IS CREATED PGM38 : DEFINING A BUILD INDEX //MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID

20

//STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * BLDINDEX IDS(MTPLB21.VSAM.KSDAP14) ODS(MTPLB21.VSAM.AIXAN) /*


OUTPUT INPUT IN KSDS FILE KEY OF RECORD - 101 101JAIKUM KONNIIIIII KEY OF RECORD - 102 102PRIYAA PATHANAMTHITTA KEY OF RECORD - 105 105ANURAG BANGLORE KEY OF RECORD - 107 107PRADEEP BAHRAINNN KEY OF RECORD - 110 110ABHILASH MUMBAIIII IDC0005I NUMBER OF RECORDS PROCESSED WAS *** ...................................... ...................................... ......................................

CONTENT OF MTPLB21.VSAM.AIXAN.DATA RBA OF RECORD 0 .....ABHILASH 110 RBA OF RECORD 18 .....JAIKUM 101 RBA OF RECORD 36 .....ANURAG 105 RBA OF RECORD 54 .....PRADEEP 107 RBA OF RECORD 72 .....PRIYAA 102 IDC0005I NUMBER OF RECORDS PROCESSED WAS 5 *** CONTENT OF MTPLB21.VSAM.PATHAN KEY OF RECORD - ABHILASH 110ABHILASH MUMBAIIII KEY OF RECORD - JAIKUM 101JAIKUM KONNIIIIII ...................................... KEY OF RECORD - ANURAG 105ANURAG BANGLORE ...................................... KEY OF RECORD - PRADEEP 107PRADEEP BAHRAINNN KEY OF RECORD - PRIYAA 102PRIYAA PATHANAMTHITTA ...................................... IDC0005I NUMBER OF RECORDS PROCESSED WAS 5 ***

PGM39 : ADDING/INSERTING RECORDS FROM SEQ-->KSDS [key (3 0)]


IDENTIFICATION DIVISION. PROGRAM-ID. COBOADD.

21

ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DD2 ORGANIZATION IS INDEXED RECORD KEY IS ONO ACCESS MODE IS DYNAMIC FILE STATUS IS ST. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 WNO PIC X(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(52). FD OUT-FILE. 01 OUT-REC. 02 ONO PIC X(3). 02 ONAME PIC X(10). 02 OADDR PIC X(15). 02 FILLER PIC X(52). WORKING-STORAGE SECTION. 01 EOF PIC X. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE I-O OUT-FILE. DISPLAY ST. PERFORM READ-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE. CLOSE OUT-FILE. DISPLAY ST. STOP RUN. READ-PARA. READ IN-FILE INTO OUT-REC AT END MOVE 'Y' TO EOF. IF EOF NOT EQUAL TO 'Y' WRITE OUT-REC DISPLAY ST DISPLAY OUT-REC END-IF. OUTPUT INPUT IN SEQ 108TEJUUUU 114VINDHYAA BANGLOREE TRIVANDRUM

OUTPUT IN KSDS KEY OF RECORD - 101 101JAIKUM KONNIIIIII

......................................

22

KEY OF RECORD - 102 102PRIYAA PATHANAMTHITTA KEY OF RECORD - 105 105ANURAG BANGLORE KEY OF RECORD - 107 107PRADEEP BAHRAINNN KEY OF RECORD - 108 108TEJUUUU BANGLOREE KEY OF RECORD - 110 110ABHILASH MUMBAIIII KEY OF RECORD - 114 114VINDHYAA TRIVANDRUM IDC0005I NUMBER OF RECORDS PROCESSED WAS *** OUTPUT IN SPOOL 00 00 108TEJUUUU BANGLOREE 00 114VINDHYAA TRIVANDRUM 00 COBRUN

...................................... ......................................

......................................

...................................... 7

//MTPLB21J JOB ,, // CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),LINES=(1,CANCEL), // NOTIFY=MTPLB21 //RUN EXEC PGM=INITIAL //STEPLIB DD DSN=MTPLB21.COBOL.LOADLB,DISP=SHR //DD1 DD DSN=MTPLB21.COBOL.PRI6,DISP=SHR //DD2 DD DSN=MTPLB21.VSAM.KSDAP12,DISP=SHR //* UNIT=SYSDA,VOL=SER=MTBLR1, //* SPACE=(TRK,(1,2),RLSE), //* DCB=(LRECL=80,RECFM=FB,BLKSIZE=800) //*SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY // [NOTE: TO ADD/INSERT RECORDS IN MIDDLE & END --IT IS DONE IN I-O MODE , THEN ACCESSMODE SHOULD BE DYNAMIC OR RANDOM TO INSERT RECORDS IN BETWEEN AND ADD AT THE END.(both records are appended in place according to the key values). IF ADD/INSERT IS DONE IN I-O MODE, THEN IF ACCESSMODE IS SEQUENTIAL THEN IT WILL NOT APPEND RECORDS ANY RECORDS. TO ADD/INSERT RECORDS AT END -- IT CAN BE DONE IN EXTEND MODE, THEN IF ACCESSMODE IS SEQUENTIAL THEN IT WILL APPEND RECORDS AT THE END WHICH ARE IN SEQ ORDER . (ie only rec 114 will be appended) ]

PGM40 : LAB 3.3 : ADDING RECORDS FROM SEQ-->KSDS [key (3 0)], UPDATING RECORDS IN KSDS FILE & VIEWING ALL THE INSERTED & UPDATED RECORDS FROM THE BEGINNING.
IDENTIFICATION DIVISION. PROGRAM-ID. COBOADD. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION.

23

FILE-CONTROL. SELECT IN-FILE ASSIGN TO DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DD2 ORGANIZATION IS INDEXED RECORD KEY IS ONO ACCESS MODE IS DYNAMIC FILE STATUS IS ST. DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 WNO PIC X(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(52). FD OUT-FILE. 01 OUT-REC. 02 ONO PIC X(3). 02 ONAME PIC X(10). 02 OADDR PIC X(15). 02 FILLER PIC X(52). WORKING-STORAGE SECTION. 01 EOF PIC X. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE. OPEN I-O OUT-FILE. DISPLAY ST. PERFORM READ-ADD-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE. PERFORM UPDATE-PARA. MOVE 'N' TO EOF. PERFORM DISP-PARA. CLOSE OUT-FILE. DISPLAY ST. STOP RUN. READ-ADD-PARA. READ IN-FILE INTO OUT-REC AT END MOVE 'Y' TO EOF. IF EOF NOT EQUAL TO 'Y' WRITE OUT-REC DISPLAY ST DISPLAY OUT-REC END-IF. UPDATE-PARA. MOVE '108' TO ONO. READ OUT-FILE KEY IS ONO. MOVE 'NISHA' TO ONAME. MOVE 'ABDBBFFB' TO OADDR. REWRITE OUT-REC. DISPLAY ST. DISPLAY OUT-REC. DISP-PARA. MOVE '101' TO ONO.

24

START OUT-FILE. PERFORM UNTIL EOF EQUAL TO 'Y' READ OUT-FILE NEXT AT END MOVE 'Y' TO EOF END-READ DISPLAY ST IF EOF NOT EQUAL TO 'Y' DISPLAY OUT-REC END-PERFORM. OUTPUT INPUT IN SEQENTIAL FILE 104ANUPAMA BANGLOREE 117PREETHA ABSDFSFSF INPUT IN KSDS FILE 101JAIKUM 102PRIYAA 105ANURAG 107PRADEEP 108TEJUUUU 109KAVITHA 110ABHILASH 112SEEMA 114VINDHYAA KONNIIIIII PATHANAMTHITTA BANGLORE BAHRAINNN BANGLOREE BANGLOREE MUMBAIIII ABSDFSFSF TRIVANDRUM

OUTPUT IN KSDS FILE KEY OF RECORD - 101 101JAIKUM KONNIIIIII KEY OF RECORD - 102 102PRIYAA PATHANAMTHITTA KEY OF RECORD - 104 104ANUPAMA BANGLOREE KEY OF RECORD - 105 105ANURAG BANGLORE KEY OF RECORD - 107 107PRADEEP BAHRAINNN KEY OF RECORD - 108 108NISHA ABDBBFFB KEY OF RECORD - 109 109KAVITHA BANGLOREE KEY OF RECORD - 110 110ABHILASH MUMBAIIII KEY OF RECORD - 112 112SEEMA ABSDFSFSF KEY OF RECORD - 114 114VINDHYAA TRIVANDRUM KEY OF RECORD - 117 117PREETHA ABSDFSFSF IDC0005I NUMBER OF RECORDS PROCESSED WAS 11 *** OUTPUT IN SPOOL 00 00 104ANUPAMA BANGLOREE

25

00 117PREETHA 00 108NISHA 00 101JAIKUM 00 102PRIYAA 00 104ANUPAMA 00 105ANURAG 00 107PRADEEP 00 108NISHA 00 109KAVITHA 00 110ABHILASH 00 112SEEMA 00 114VINDHYAA 00 117PREETHA 10 COBRUN

ABSDFSFSF (read-add-para completed) ABDBBFFB (update-para completed) KONNIIIIII (disp-para starting) PATHANAMTHITTA BANGLOREE BANGLORE BAHRAINNN ABDBBFFB BANGLOREE MUMBAIIII ABSDFSFSF TRIVANDRUM ABSDFSFSF (disp-para completed)

--------------//DD1 DD DSN=MTPLB21.COBOL.PRI6,DISP=SHR //DD2 DD DSN=MTPLB21.VSAM.KSDAP12,DISP=SHR -----------------

PGM41 : DELETING KSDS FILE & UPDATING A SET OF RECORDS IN KSDS FILE WHICH IS KEPT IN SEQ FILE.
IDENTIFICATION DIVISION. PROGRAM-ID. COBOADD. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO DD1 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. SELECT OUT-FILE ASSIGN TO DD2 ORGANIZATION IS INDEXED RECORD KEY IS ONO ACCESS MODE IS DYNAMIC FILE STATUS IS ST. DATA DIVISION. FILE SECTION.

26

FD IN-FILE. 01 IN-REC. 02 WNO PIC X(3). 02 WNAME PIC X(10). 02 WADDR PIC X(15). 02 FILLER PIC X(52). FD OUT-FILE. 01 OUT-REC. 02 ONO PIC X(3). 02 ONAME PIC X(10). 02 OADDR PIC X(15). 02 FILLER PIC X(52). WORKING-STORAGE SECTION. 01 EOF PIC X. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT IN-FILE. OPEN I-O OUT-FILE. DISPLAY ST. PERFORM DELETE-PARA. PERFORM UPDATE-PARA UNTIL EOF = 'Y'. CLOSE IN-FILE. CLOSE OUT-FILE. DISPLAY ST. STOP RUN. UPDATE-PARA. READ IN-FILE AT END MOVE 'Y' TO EOF. MOVE IN-REC TO OUT-REC. REWRITE OUT-REC. IF EOF NOT EQUAL TO 'Y' DISPLAY ST DISPLAY OUT-REC END-IF. DELETE-PARA. MOVE '108' TO ONO. READ OUT-FILE KEY IS ONO. DELETE OUT-FILE. MOVE '111' TO ONO. READ OUT-FILE KEY IS ONO. DELETE OUT-FILE. INPUT IN SEQ 104ZEEBRAA 117LIONNNN 112ELEPHANT FILE BANGLOREE ABSDFSFSF DFDFDGDGG

INPUT IN KSDS FILE OUTPUT IN KSDS FILE 101JAIKUM 102PRIYAA 104ANUPAMA 105ANURAG 107PRADEEP KONNIIIIII PATHANAMTHITTA BANGLOREE BANGLORE BAHRAINNN

27

108NISHA 110ABHILASH 112SEEMA 114VINDHYAA 117PREETHA

ABDBBFFB MUMBAIIII ABSDFSFSF TRIVANDRUM ABSDFSFSF

OUTPUT IN KSDS FILE KEY OF RECORD - 101 101JAIKUM KONNIIIIII KEY OF RECORD - 102 102PRIYAA PATHANAMTHITTA KEY OF RECORD - 104 104ZEEBRAA BANGLOREE KEY OF RECORD - 105 105ANURAG BANGLORE KEY OF RECORD - 107 107PRADEEP BAHRAINNN KEY OF RECORD - 110 110ABHILASH MUMBAIIII KEY OF RECORD - 112 112ELEPHANT DFDFDGDGG KEY OF RECORD - 114 114VINDHYAA TRIVANDRUM KEY OF RECORD - 117 117LIONNNN ABSDFSFSF *** IDC0005I NUMBER OF RECORDS PROCESSED WAS 9 *** OUTPUT IN SPOOL 00 00 104ZEEBRAA BANGLOREE 00 117LIONNNN ABSDFSFSF 00 112ELEPHANT DFDFDGDGG 00 (NOTE : DELETE OUT-FILE WILL ONLY DELETE THE CURRENT RECORD)

PGM42 : LAB 3.2 : CREATE AN ALTERNATE INDEX WITH DEPT AS ALTERNATE INDEX. WRITE RECORDS IN THE FOLOWING FORMAT. EMPLOYEE-ID NAME SALARY DEPARTMENT ALPHANUMERIC 5 CHARACTER 20 NUMERIC 6 CHARACTER 6

CREATING AIX //MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=*

28

//SYSIN DD * DEFINE AIX (NAME(MTPLB21.VSAM.AIXAG)RELATE(MTPLB21.VSAM.KSDAP21)KEYS(6 31)VOLUME(MTBLR1) TRACKS(1 1)RECORDSIZE(80 80) FREESPACE(20 10)UPGRADE) /* CREATING PATH //MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE PATH(NAME(MTPLB21.VSAM.PATHAG) PATHENTRY(MTPLB21.VSAM.AIXAG) UPDATE) /* DEFINING BLD INDEX //MTPLB21J JOB 234,AIX,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * BLDINDEX IDS(MTPLB21.VSAM.KSDAP21) ODS(MTPLB21.VSAM.AIXAG) /* OUTPUT MTPLB21.VSAM.AIXAG MTPLB21.VSAM.AIXAG.DATA MTPLB21.VSAM.AIXAG.INDEX MTPLB21.VSAM.PATHAG ARE CREATED
INPUT IN MTPLB21.VSAM.KSDAP21 A0001JAIKUM A0002PRIYAA B0005ANURAG B0007PRADEEP C0010ABHILASH 5000 6780 5660 5670 6780 ACCT ADMN SALES SALES CSEDT

OUTPUT IN MTPLB21.VSAM.AIXAF DISPLAYED WITH PRINT IDS(/) CHAR KEY OF RECORD - ACCT .....ACCT A0001 KEY OF RECORD - ADMN *** .....ADMN A0002 KEY OF RECORD - CSEDT

29

.....CSEDT C0010 KEY OF RECORD - SALES .....SALES B0005B0007 IDC0005I NUMBER OF RECORDS PROCESSED WAS 4 *** TO LIST ALL CATALOG INFORMATION GIVE LISTCAT ENTRIES(/) ALL ON THE LEFT SIDE OF FILE NAME.

PGM43 : LAB 3.3 : DISPLAY ALL RECORDS WITH DEPT AS 'SALES' USING ALTERNATE INDEX KEY IDENTIFICATION DIVISION. PROGRAM-ID. COBOADD. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT AIX-FILE ASSIGN TO DD1 ORGANIZATION IS INDEXED RECORD KEY IS EID ALTERNATE RECORD KEY IS DEPT WITH DUPLICATES ACCESS MODE IS DYNAMIC FILE STATUS IS ST. DATA DIVISION. FILE SECTION. FD AIX-FILE. 01 AIX-REC. 02 EID PIC X(5). 02 NAME PIC X(20). 02 SAL PIC 9(6). 02 DEPT PIC X(6). 02 FILLER PIC X(43). WORKING-STORAGE SECTION. 01 EOF PIC X VALUE 'N'. 77 ST PIC 99. PROCEDURE DIVISION. MAIN-PARA. OPEN INPUT AIX-FILE. DISPLAY ST. MOVE 'SALES' TO DEPT. READ AIX-FILE KEY IS DEPT. DISPLAY AIX-REC. DISPLAY 'ST' ST. PERFORM CHECK-PARA UNTIL ST = 00. CLOSE AIX-FILE. DISPLAY 'CLOSE' ST. STOP RUN. CHECK-PARA. READ AIX-FILE NEXT. DISPLAY AIX-REC. DISPLAY 'ST' ST.

30

OUTPUT IN SPOOL 00 B0005ANURAG ST02 B0007PRADEEP ST00 CLOSE00

5660 5670

SALES SALES

COBRUN //MTPLB21J JOB ,, // CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),LINES=(1,CANCEL), // NOTIFY=MTPLB21 //RUN EXEC PGM=INITIAL //STEPLIB DD DSN=MTPLB21.COBOL.LOADLB,DISP=SHR //DD1 DD DSN=MTPLB21.VSAM.KSDAP21,DISP=SHR //DD11 DD DSN=MTPLB21.VSAM.PATHAG,DISP=SHR //* UNIT=SYSDA,VOL=SER=MTBLR1, //* SPACE=(TRK,(1,2),RLSE), //* DCB=(LRECL=80,RECFM=FB,BLKSIZE=800) //*SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY // NOTE: THIS IS DISPLAYING RECORDS BASED ON THE AIX CREATED IN THE ABOVE PGM. PGM44 : EXPORT COMMAND //MTPLB21J JOB 123,ANJA, // NOTIFY=&SYSUID //STEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * EXPORT MTPLB21.VSAM.KSDAP21 ODS(MTPLB21.COBOL.PRI3)TEMPORARY // BEFORE U RUN THIS PROGRAM U SHOULD HAVE AN SDS FILE WITH THE NAME MTPLB21.COBOL.PRI3. NOW UR TRYING TO TAKE THE BACKUP OF VSAM DATA SET. NOTE THAT WHILE TAKING THE BACKUP BOTH THE DATASET CAN'T BE A VSAM DATA SET. HERE TEMPORARY MEANS THE ORIGINAL FILE WILL NOT BE DELETED AND A BACKUP FILE WILL BE CREATED.NOTE THAT THE SDS U HAVE CREATED AFTER U EXPORT WILL BECOME AN VSAM DATA SET. SO IF U WANT TO C THE CONTENT THEN U HAVE TO TYPE ' PRINT IDS (/) CHAR '. IF U SAY TEMPORARY WITH INHIBITSOURCE OPTION THEN THE ORIGINAL DATA SET BECOMES READ-ONLY. U CAN USE THIS INHIBITSOURCE OPTION ONLY WITH TEMPORARY OPTION. IF U TRY TO ADD OR UPDATE TO THIS KSDS THEN U WILL GET THE ERROR AS IDC3300I ERROR OPENING MTPLB21.VSAM.KSDAP21 IDC3351I ** VSAM OPEN RETURN CODE IS 168 IDC0005I NUMBER OF RECORDS PROCESSED WAS 0

31

IDC3003I FUNCTION TERMINATED. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 EXPORT COMMAND //MTPLB21J JOB 123,ANJA, // NOTIFY=&SYSUID //STEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * EXPORT MTPLB21.VSAM.KSDAP21 ODS(MTPLB21.COBOL.PRI4)PERMANENT INHIBITTARGETERASE // O/P : AFTER THE EXECUTION THE KSDS FILE U HAVE MENTIONED HERE WILL BE DELETED. WHEN U TRY TO VIEW THIS IT WILL NOT BE THERE.BUT U CAN C THE RECORDS ARE COPIED FROM KSDS TO SDS FILE. HERE ERASE MEANS KSDS FILE WILL BE REPLACED WITH BINARY ZERO. PGM 45 : IMPORT COMMAND //MTPLB21J JOB 123,ANJA, // NOTIFY=&SYSUID //STEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * IMPORT IDS(MTPLB21.COBOL.PRI4) ODS(MTPLB21.VSAM.KSDAP21) // O/P :NOW WE CAN AGAIN C THE KSDS FILE WHICH WAS DELETED. IF U WANT TO CHANGE THE ATTRIBUTES OF THE FILE WHICH U R TRYING TO IMPORT THEN U CAN DO THAT USING THE BELOW SYSIN DD * STATEMENTS. 000005 //SYSIN DD * 000006 IMPORT IDS(MTPLB21.COBOL.PRI4) 000007 ODS(MTPLB21.VSAM.KSDAP21) 000008 OBJECTS ((MTPLB21.VSAM.KSDAP21 000009 NEWNAME(MTPLB22.VSAM.IMPKSDS) 000010 VOLUME(USER01))) HERE WE ARE CHANGING THE NAME OF THE BASE CLUSTER AND STORING IT IN A DIFFERENT VOLUME SERIAL. EARLIER THE DATA SET IS STORED IN MTBLR1 NOW WE ARE CHANGIN IT TO USER01. NOTE: IF U DELETE THE MTPLB21.VSAM.KSDAP21 WHICH U HAVE JUST IMPORTED. AND AGAIN TRY TO IMPORT THE FILE AGAIN THEN U HAVE TO USE INTOEMPTY OPTION. 000001 //MTPLB21J JOB 123,ANJK,CLASS=A, 000002 // NOTIFY=&SYSUID 000003 //STEP EXEC PGM=IDCAMS

32

000004 //SYSPRINT DD SYSOUT=* 000005 //SYSIN DD * 000006 IMPORT IDS(MTPLB21.COBOL.PRI4) 000007 ODS(MTPLB21.VSAM.KSDAP21) 000011 INTOEMPTY 000012 // THEN AGAIN THE KSDS FILE WILL BE CREATED AND THE DATA IS RETRIVED BACK. WE CAN IMPORT A PARTICULAR DATA SET ANY NUMBER OF TIMES USING INTOEMPTY. BUT BEFORE THIS THE BASE CLUSTER SHOULD BE DELETED.

33

Vous aimerez peut-être aussi