Sri, I agree with you. However, not all z/OS shops have DFSORT, a good number have Syncsort. I think CA-SORT has disappeared.
If all the control cards were compatible between SORT products that would be a big help. I remember trying to port an Assembler E15 exit from a VSE shop (CA-SORT) to a z/OS shop (DFSORT), it wasn't straightforward. At a Syncsort shop it was different again. On Thu, May 28, 2020 at 1:16 PM Sri h Kolusu <[email protected]> wrote: > > Using EXECIO makes the original requirement simpler: > > > This is the IDCAMS version: > > > Wayne, > > Thanks for sharing the REXX execs. couple of observations. > > > 1 The PDSTOSEQ fails processing members having aliases. (LISTDS does give > you the ALIAS information too) For example I tried with z/OS V2R4 > SYS1.MACLIB > > %PDSTOSEQ SYS1.MACLIB OFF > > The result is REPRO fails when it encounters > > NAME=ERBPICT ALIAS(PICTURE) > > 2. with PDSTOSAM, you need to have REGION=0M. Without it you would get > > IRX0005I Error running PDSTOSAM, line 69: Machine storage exhausted > > And then once again it fails processing members with alias > > IKJ56709I INVALID DATA SET NAME, 'SYS1.MACLIB(ERBPICT > IKJ56712I INVALID KEYWORD, ' > IKJ56712I INVALID KEYWORD, ) > > 3. So I picked a smaller PDS with just 25 members(has no alias) and has a > total of 1698 records and the here are the run times. > > PDSTOSEQ REXX |ELAPSED: 00:00:00.42 TCB: 00:00:00.059836 > PDSTOSAM REXX |ELAPSED: 00:00:00.28 TCB: 00:00:00.049764 > IEBPTCH+DFSORT|ELAPSED: 00:00:00.11 TCB: 00:00:00.008154 > > If you notice the above DFSORT is the best in the category with less > elapsed and TCB time. > > Apart from that DFSORT was able to process SYS1.MACLIB without any problem. > z/OS V2R4 SY1.MACLIB has 1968 members and for a total of 2,454,296 records. > Here are the stats for that run. > > IEBPTCH+DFSORT|ELAPSED: 00:01:11.31 SRB: 00:00:04.124737 > > > And here is the JCL for that > > //STEP0100 EXEC PGM=IEBPTPCH > //SYSPRINT DD SYSOUT=* > //SYSUT1 DD DISP=SHR,DSN=SYS1.MACLIB > //SYSUT2 DD DSN=&&SOURCE, > // DISP=(,PASS), > // SPACE=(CYL,(X,Y),RLSE) > //SYSIN DD * > PUNCH TYPORG=PO > //* > //STEP0200 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD DSN=&&SOURCE,DISP=SHR > //SORTOUT DD DSN=&SYSUID..SEQFILE.EXPDS.DFSORT.MACLIB, > // DISP=(,CATLG), > // SPACE=(CYL,(X,Y),RLSE),RECFM=FB > //SYSIN DD * > OPTION COPY > INREC IFTHEN=(WHEN=INIT,BUILD=(2,80)), > IFTHEN=(WHEN=(1,11,CH,EQ,C'MEMBER NAME'), > BUILD=(C'./ ADD LEVEL=00,SOURCE=0,NAME=', > 14,8)) > /* > > > Everyone seems to be comfortable with coding REXX, but from a performance > point of view, it is not an ideal tool. I am always surprised to see people > prefer to code 100+ lines of REXX but not willing to code to 5-25 lines > of DFSORT control cards. > > Even though I work with DFSORT exclusively, I believe in using the right > tool for the right job. > > Thanks, > Kolusu > DFSORT Development > IBM Corporation > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > -- Wayne V. Bickerdike ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
