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

Reply via email to