Page 1 of 1

Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 2:25 am
by ramkumar1992sp
Hello,

I'm not sure if this is the right part of the forum to post this question but didn't find anywhere else better.

We use SDSF to monitor and view the output of jobs.

I'm writing out display statements and I have around 320K output lines in sysout.

I would need to compare between 2 such 320K output lines.

Can you please provide some suggestions on an easy way to compare this ? I need to compare them in hex mode.So right now I go to View and would set hex to on.

I'm not able to do an SE and copy it to datasets for a 3.13 compare,It gives me an error "EDIF ERROR RC= 20 " which doesn't make much sense.

Thanks for your help.


Thanks,

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 3:49 am
by ramkumar1992sp
I can limit the display statements by making code changes..But if there is any option in SDSF to compare the sysouts,please let me know

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 4:18 am
by Robert Sample
What's your region size when you log onto TSO? 2 320K output data sets will run about 85 million bytes (if you're using the standard 133-byte lines), so you may need to increase your region size for your TSO session (if your site allows you to do this). If not, use XDC on the line to create an output data set for each and then use ISPF 3.12 or 3.13 to compare them.

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 10:53 am
by Aki88
Hello,

In conjunction to what Mr. Sample has stated about XDC command, you can also used SDSF batch program (EXEC PGM=SDSF) to capture the SPOOL data and route it to a dataset. The problem with the statement: 'is any option in SDSF to compare the sysouts', is that SYSOUT/or a QSAM DS is written sequentially top-down, once the write is complete, the program will not know what has been written unless programmer holds this data is place.

ramkumar1992sp wrote:...I would need to compare between 2 such 320K output lines. ...


Does this mean that there are 2 lines out of 320k lines in this SYSOUT, which are required to be compared with each other?
If yes, and if they always occur at the same respective rows after every run, SDSF batch program can extract them to two different datasets which can be compared, else a complete dump will have to be taken and the data will have to be segregated prior comparison.
OR, if you can modify the program such that these 2 lines can be written to the same line (with a unique identifier to identify this row), then without doing extra work DFSORT can be used with INCLUDE condition to compare the columns containing data from line-1 with data from line-2. IMO, the more complex task here is to get these 'lines' segregated such that a comparison can be done.

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 11:16 am
by ramkumar1992sp
Thanks Robert and Aki88 for your suggestions.I will try XDC and try writing it to datasets tomorrow for 3.13 comparison.

Aki88,Thanks for the letting me know about the SDSF batch program.

By this,
I would need to compare between 2 such 320K output lines.
. I was talking about having 2 sysouts with 320K lines each.One sysout was when the job was run with the production load and the other one with my test load.

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 11:53 am
by Aki88
Hello,

ramkumar1992sp wrote:...Aki88,Thanks for the letting me know about the SDSF batch program.

By this,
I would need to compare between 2 such 320K output lines.
. I was talking about having 2 sysouts with 320K lines each.One sysout was when the job was run with the production load and the other one with my test load.


Thank you, requirement is more clear now.
Another way to get the data can be- instead of routing the data to default MSGCLASS (SYSOUT=* will route the data to the MSGCLASS printer), replace the 'SYSOUT=*' statement with a QSAM DS, this removes the requirement of doing a separate XDC et all.
An alternate approach can be writing a small MACRO which can be invoked from a REXX, that utilizes XDC command (by invoking SDSF, and then going to the particular SYSOUT) and will write the data to a DS. ISPF COMPARE/File-Aid/File-MANAGER Compare/*SORT/or-a-user-written-program-of-your-choice etc. all can then compare the data once it is present in a location from where it can be read.

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 1:08 pm
by willy jensen
I will strongly recommend that you look at the REXX SDSF API instead of SDSF batch. Using the API you can save specific output(d) file from one or more jobs to disk. Once you have disk datasets, they can be compared by a compare utility, i.e. ISPF SUPERC.

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 4:31 pm
by NicC
What on Earth is a production job doing using DISPLAY ststements? One or two maybe ok for a very specialised use, eg abend, but 320K?

Re: Compare large Sysouts in SDSF

PostPosted: Wed Mar 08, 2017 8:26 pm
by ramkumar1992sp
Thanks Aki88 & Willy.I will write to a QSAM dataset and will compare the results for the time being.

NicC,
Postby NicC ยป Wed Mar 08, 2017 4:31 pm

What on Earth is a production job doing using DISPLAY ststements? One or two maybe ok for a very specialised use, eg abend, but 320K?


When I said
"I was talking about having 2 sysouts with 320K lines each.One sysout was when the job was run with the production load and the other one with my test load."


I have some COBOL programs calling ASM programs and these ASM programs are being replaced by COBOL programs.I'm adding display statements before and after the call to this ASM program (this load is what I called as production load) and also display statements before and after the new COBOL program,this is what I called as test load.