Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

DFSORT-Find the bad record

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 8:14 pm    Post subject: DFSORT-Find the bad record
Reply with quote

Team,

I have a input file which contains the millions of records. My SORT has abended with S0C7, Below is the SYSOUT, could you please suggest me to find the bad record.

Code:
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1                         
ICE162I 0 ICEIEXIT CHANGED ONE OR MORE OPTIONS IN EFFECT                       
ICE751I 0 C5-K76982 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K76585
ICE143I 0 BLOCKSET     SORT  TECHNIQUE SELECTED                                 
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R12 - 10:35 ON MON AP
ICE201I H RECORD TYPE IS F - DATA STARTS IN POSITION 1                         
ICE162I 0 ICEIEXIT CHANGED ONE OR MORE OPTIONS IN EFFECT                       
ICE751I 0 C5-K76982 C6-K90026 C7-K58148 C8-K67572 E9-K60824 C9-BASE   E5-K76585
ICE193I 0 ICEAM1 INVOCATION ENVIRONMENT IN EFFECT - ICEAM1 ENVIRONMENT SELECTED
ICE252I 1 PARMLIB OPTIONS WERE MERGED WITH INSTALLATION MODULE DEFAULTS         
ICE088I 1 RFYYY13Z.PS140   .        , INPUT LRECL = 247, BLKSIZE = 32604, TYPE =
ICE093I 0 MAIN STORAGE = (MAX,11312032,11300430)                               
ICE156I 0 MAIN STORAGE ABOVE 16MB = (11238288,11238288)                         
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,
ICE128I 0 OPTIONS: SIZE=11312032,MAXLIM=1048576,MINLIM=450560,EQUALS=Y,LIST=Y,ER
ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=SHORT,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=
ICE130I 0 OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=N,WRKREL=Y,OUTREL=Y,CKPT=
ICE131I 0 OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=65536,CINV=Y,CFW=
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=N,IEXIT=Y,TEXIT=N,LISTX=N,EFS=NONE    ,EXITC
ICE133I 0 OPTIONS: HIPRMAX=0      ,DSPSIZE=0   ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMI
ICE235I 0 OPTIONS: NULLOUT=RC0                                                 
ICE236I 0 OPTIONS: DYNAPCT=10 ,MOWRK=Y                                         
ICE084I 0 BSAM ACCESS METHOD USED FOR SORTOUT                                   
ICE084I 0 BSAM ACCESS METHOD USED FOR SORTIN                                   
ICE750I 0 DC 1757152319 TC 0 CS DSVNN KSZ 20 VSZ 20                             
ICE752I 0 FSZ=7113977 RC  IGN=0 E  AVG=124 0  WSP=1145740 C  DYN=20752 56552   
ICE751I 2 DE-K61787 D5-K58148 DA-K69255                                         
ICE805I 1 JOBNAME: RFYYY13Z , STEPNAME: PS140                                   
ICE802I 0 BLOCKSET     TECHNIQUE IN CONTROL                                     
ICE992I 0 RA 0 WR 0 TR 1                                                       
ICE915I 0 MOFSZ=0,MOSZ=0,MOSYS=0(1),MOSTG=4113,MEML=1941(1)                     
ICE916I 0 MOFR=0703,MOVR=VV                                                     
ICE996I 0 ESM=3213824,ESO=0,ESR=64000,ESP=4096,ESS=16384,CES=3213824,HSZ=524288
ICE997I 0 HWSP=538411,HMAX=0,HES=0,ASV=1053168,EQ=N0,HN=0                       
ICE898I 0 OMAX=1053168,NMAX=2366240,ENQT=1053168,CMAX=0,HU=0,BUN=0,MD=N1,N1,DU=0
ICE889I 0 CT=MAX     , SB=8, L=0, D=0000, CCW=1MAM                             
ICE901I 0 W 05PP13 08PP13 06PP13 01PP13 04PP13 02PP13 09PP13 07PP13             
ICE901I 0 W 03PP13                                                             
ICE902I 0 O PP10  I PP10                                                       
ICE185A 0 AN S0C7  ABEND WAS ISSUED BY DFSORT, ANOTHER PROGRAM OR AN EXIT (PHASE1)   



Let me know if you need SORTSNAP for this.
Back to top
View user's profile Send private message

Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 8:31 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Have you looked at ICETOOL VERIFY?

There is also NUM. Where are your Control Cards?
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 8:37 pm    Post subject:
Reply with quote

Code:
//SYSIN     DD *                         
  INREC  FIELDS=(001:001,002,           
                 003:025,006,           
                 009:(031,008,PD,DIV,   
                     +100),             
                     TO=PD,LENGTH=010,   
                 019:006,010,           
                 029:115,003,           
                 032:017,008,PD,         
                     TO=PD,LENGTH=010,   
                 042:((039,008,PD,ADD,   
                       047,008,PD),DIV, 
                       +100),           
                       TO=PD,LENGTH=010,
                 052:124,002,           
                 054:126,001,           
                 055:149,007,ZD,         
                     TO=PD,LENGTH=008,   
                 063:156,001,           
                064:(118,006,PD,MUL,       
                     +10),                 
                    TO=PD,LENGTH=007,     
                071:127,010,               
                081:137,001,               
                082:165,007,ZD,           
                    TO=PD,LENGTH=008,     
                090:172,001,               
                091:157,007,ZD,           
                    TO=PD,LENGTH=008,     
                099:164,001,               
                100:173,007,ZD,           
                    TO=PD,LENGTH=008,     
                108:180,001,               
                109:((229,010,ZD,MUL,     
                      071,008,PD),DIV,     
                      +10000),             
                      TO=PD,LENGTH=08,     
                117:239,001)               
SORT   FIELDS=(006,010,CH,A,                     *       
               025,006,CH,A)     



also we found out the problem is at the below location,

Code:
109:((229,010,ZD,MUL,     
                      071,008,PD),DIV,     
                      +10000),             
                      TO=PD,LENGTH=08,   


but how to get into the exact record which has the bad data.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 8:42 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Have you looked at ICETOOL VERIFY? Echo...echo...echo...
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 8:45 pm    Post subject:
Reply with quote

Code:
OPTIONS: VIO=N,RESDNT=ALL ,SMF=SHORT,WRKSEC=Y,OUTSEC=Y,VERIFY=N


I am new to this analysis....so may I know where it is exactly located...also I am using SORT as program
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 8:52 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Code:
//HUNTS0C7 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1  DD DSN=yours
//TOOLIN DD *
VERIFY FROM(IN1) ON(071,008,PD) LIMIT(1)


That would find the first invalid value for your field.

If you want to check the whole file, specify a different LIMIT. The default with no LIMIT is 200.

You are making the maintenance difficult by specifying all the columns where fields abut each other. Also, BUILD is better than FIELDS. They are the same, but FIELDS is very "overloaded", which detracts from ready understanding.
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 8:57 pm    Post subject:
Reply with quote

okay..Thanks
I will try this and update you with the results
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 9:02 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Just spotted the bit that fell away to the left, they can both be checked at the same time:


Code:
//HUNTS0C7 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1  DD DSN=yours
//TOOLIN DD *
VERIFY FROM(IN1)  ON(071,008,PD) ON (229,010,ZD) LIMIT(1)
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 9:04 pm    Post subject:
Reply with quote

Code:
ICE600I 0 DFSORT ICETOOL UTILITY RUN STARTED                                   
                                                                               
ICE650I 0 VISIT http://www.ibm.com/storage/dfsort FOR ICETOOL PAPERS, EXAMPLES A
                                                                               
ICE632I 0 SOURCE FOR ICETOOL STATEMENTS:  TOOLIN                               
                                                                               
                                                                               
ICE630I 0 MODE IN EFFECT:  STOP                                                 
                                                                               
            VERIFY FROM(IN1) ON(071,008,PD) LIMIT(1)                           
ICE618A 0 INVALID (71,8,PD)      VALUE - RECORD:  000000000000001               
ICE649A 0   HEX VALUE:  50000C0000000000                                       
ICE626A 0 LIMIT FOR INVALID VALUES REACHED                                     
ICE627I 0 DFSORT CALL 0001 FOR COPY FROM IN1      TO E35 EXIT COMPLETED         
ICE628I 0 RECORD COUNT:  000000000000001                                       
ICE602I 0 OPERATION RETURN CODE:  12                                           
                                                                               
                                                                               
ICE601I 0 DFSORT ICETOOL UTILITY RUN ENDED - RETURN CODE:  12   


This is the output...it ended with MAXCC=12
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 9:07 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Another Victory for VERIFY. First record on the file. Do you have a file header? Or is your stat-position/length messed up?
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 9:09 pm    Post subject:
Reply with quote

No I do not have header...Today only this job abended..everyday it works fine.
Back to top
View user's profile Send private message
Bill Woodger

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7225

PostPosted: Mon Apr 15, 2013 9:16 pm    Post subject: Reply to: DFSORT-Find the bad record
Reply with quote

Well, the first record has a problem.

Run a SORT step with your DSN going in, and SORTOUT to a catalogued dataset,

Code:
  OPTION COPY,STOPAFT=1


You can then look at the record and see what you think.

Then let the VERIFY rip with, say, LIMIT(10) and see if there are more.
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Mon Apr 15, 2013 9:24 pm    Post subject:
Reply with quote

Yes..Bill.
The first record has the problem.. the root cause is the the data gets messed up in the QA process which is different than the production process so this needs to be in sync.

Specifically, a wrong data is placed from 71th position onwards in QA (bad one) where in production it is correct.

Thanks for all your time..
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Apr 16, 2013 12:05 am    Post subject:
Reply with quote

Hello,

Quote:
the root cause is the the data gets messed up in the QA process which is different than the production process
Why are these 2 processes not the same?

How many other places has this been done (accidentally or intentionally).

I would hope that there should not be different routines for the same thing . . .
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Tue Apr 16, 2013 12:29 am    Post subject:
Reply with quote

Dick,

Yes you are right.

Actually the control cards which feeds the data to the input file (which is being used in input for SORT) has been changed in QA and yet to go in production, that is the reason the downstream process that is above job got abended.

So notifications has already been sent to them and they are working on this.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Apr 16, 2013 1:18 am    Post subject:
Reply with quote

Thank you for the follow-up icon_smile.gif

d
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 1713
Location: UK

PostPosted: Tue Apr 16, 2013 12:32 pm    Post subject:
Reply with quote

QA spould not change things - they are there to test that changes made by developers work as specified and without impacting the production process.
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 1609
Location: NY,USA

PostPosted: Wed Apr 17, 2013 1:01 am    Post subject:
Reply with quote

Nic,

Yes right.

but I said, some other DEV team put the changed code in QA which feeds their files to us and we got screwed up. SO we intimated them about this abend and they are going to correct that.....icon_smile.gif
Back to top
View user's profile Send private message
Ed Goodman

Active Member


Joined: 08 Jun 2011
Posts: 556
Location: USA

PostPosted: Thu Apr 18, 2013 6:57 pm    Post subject:
Reply with quote

Man oh man Bill, that 'echo...' post cracked me up!
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts How to find the first monday of the w... abdulrafi COBOL Programming 10 Fri Nov 25, 2016 3:24 pm
No new posts How to update a portion of text in a ... Bill Woodger DFSORT/ICETOOL 25 Wed Nov 09, 2016 9:41 pm
No new posts How to get the remainder and quotient... vnktrrd DFSORT/ICETOOL 2 Mon Oct 31, 2016 10:59 am
No new posts Find out a active PGM jpsager JCL & VSAM 10 Fri Oct 07, 2016 4:32 pm
No new posts sort with previous record anatol DFSORT/ICETOOL 9 Thu Oct 06, 2016 2:36 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us