IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Help in Comparing Large record lenght and huge size DSNs.


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Thu May 06, 2010 5:57 pm
Reply with quote

Hi,

I have two files.

File#1 - (Previous day file.) RECFM=FB, LRECL=5448, Key is from Position 2 to 11.
Code:
1300001200032000320003      20004                A200031N4DL01D3YC129344
1300001200092000920009      20009                A20009JN8AR07Y4YW411999
1300001200642006420064      20064                A20064JN8AR07Y4YW406432
1300001200762007620076      20076                A200761N4DL01D0YC133299
1300001200812008120081      20081                A200811N4DL01DXYC135142
1300001200872008720087      20087                A20087JN1CA31A1YT210137
1300001202422024220242      20242                A202425N1ED28Y0YC538767
1300001203142031420314      20314                A203141N4DL01D3YC137654
1300001203402034020340      20340                A203401N4DL01D3YC115623



File#2 - (Current day file.) RECFM=FB, LRECL=5448 Key is from Position 2 to 11.
Code:
1300001200032000320003      20003                A200031N4DL01D3YC129344
1300001200092000920009      20010                A20009JN8AR07Y4YW411999
1300001200642006420064      20064                A20064JN8AR07Y4YW406432
1300001200762007620076      20076                A200761N4DL01D0YC133299
1300001200812008120081      20081                A200811N4DL01DXYC135142
1300001200872008720087      20087                A20087JN1CA31A1YT210137
1300001202422024220242      20242                A202425N1ED28Y0YC538767
1300001203142031420314      20314                A203141N4DL01D3YC137654
1300001203142031499999      20314                A203141N4DL01D3YC137654


In this case, the output i should get is below.
Code:
1300001200032000320003      20003                A200031N4DL01D3YC129344
1300001200092000920009      20010                A20009JN8AR07Y4YW411999
1300001203142031499999      20314                A203141N4DL01D3YC137654


If key from File#1 is not found in File#2, then file#3 should not include the record from file#1.basically the record was deleted from the current day file.so i need to ignore the deleted record.
If Key from file#1 is found in File#2, then compare by record for that particular key in file1 and file2. if the record are matching in both file#1 and file#2, then ignore this record. otherwise, write the record form file#2 to file#3.
If key from File#2 is NOT found in File#2, then include the record from file#2 to file#3.

In simple words, my requirements are below,
If any new record addition, include the record into file#3.
If any record deleted, ignore the deletion. No need to include into file#3.
If any record updated, include the record file#2 to file#3.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Fri May 07, 2010 2:09 am
Reply with quote

Javalal,

With z/OS DFSORT V1R5 PTF UK51706 or z/OS DFSORT V1R10 PTF UK51707 (Nov, 2009), DFSORT now supports the JOINKEYS function which will give you the desired results as shown below

Code:

//STEP0100 EXEC PGM=SORT                   
//SYSOUT   DD SYSOUT=*                     
//PREVDAY  DD DSN=your Previous day file,DISP=SHR
//CURRDAY  DD DSN=your Current day file,DISP=SHR
//SORTOUT  DD SYSOUT=*                     
//SYSIN    DD *
  JOINKEYS F1=PREVDAY,FIELDS=(2,11,A)                             
  JOINKEYS F2=CURRDAY,FIELDS=(2,11,A)                             
  JOIN UNPAIRED,F2                                                 
  REFORMAT FIELDS=(?,F2:1,5448,F1:1,5448)                         
  SORT FIELDS=COPY                                                 
                                                                   
  OUTREC IFTHEN=(WHEN=(0001,1,CH,EQ,C'B',AND,                     
                      (0002,256,CH,EQ,05450,256,CH,AND,           
                       0258,256,CH,EQ,05706,256,CH,AND,           
                       0514,256,CH,EQ,05962,256,CH,AND,           
                       0770,256,CH,EQ,06218,256,CH,AND,           
                       1026,256,CH,EQ,06474,256,CH,AND,           
                       1282,256,CH,EQ,06730,256,CH,AND,           
                       1538,256,CH,EQ,06986,256,CH,AND,           
                       1794,256,CH,EQ,07242,256,CH,AND,           
                       2050,256,CH,EQ,07498,256,CH,AND,           
                       2306,256,CH,EQ,07754,256,CH,AND,           
                       2562,256,CH,EQ,08010,256,CH,AND,           
                       2818,256,CH,EQ,08266,256,CH,AND,           
                       3074,256,CH,EQ,08522,256,CH,AND,           
                       3330,256,CH,EQ,08778,256,CH,AND,           
                       3586,256,CH,EQ,09034,256,CH,AND,           
                       3842,256,CH,EQ,09290,256,CH,AND,           
                       4098,256,CH,EQ,09546,256,CH,AND,           
                       4354,256,CH,EQ,09802,256,CH,AND,           
                       4610,256,CH,EQ,10058,256,CH,AND,           
                       4866,256,CH,EQ,10314,256,CH,AND,           
                       5122,256,CH,EQ,10570,256,CH,AND,           
                       5378,072,CH,EQ,10826,072,CH)),             
         OVERLAY=(1:C'D'))                                         
                                                                   
  OUTFIL OMIT=(1,1,CH,EQ,C'D'),BUILD=(2,5448)                     

//*



For complete details on JOINKEYS and the other new functions available with the Nov, 2009 DFSORT PTF, see:

www.ibm.com/support/docview.wss?rs=114&uid=isg3T7000174
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Fri May 07, 2010 8:19 am
Reply with quote

Hi,

the above solution did not work for me. i think i dont have the latest DFSORT installed in my mainframe.
getting the below error message. can u suggest me another solution for me?
Code:
ICE143I 0 BLOCKSET     COPY  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 V1R5 - 22:43 ON THU MAY
            JOINKEYS F1=PREVDAY,FIELDS=(2,11,A)                                 
            $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
            JOINKEYS F2=CURRDAY,FIELDS=(2,11,A)                                 
            $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
            JOIN UNPAIRED,F2                                                   
            $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
            REFORMAT FIELDS=(?,F2:1,5448,F1:1,5448)                             
            $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
            SORT FIELDS=COPY                                                   
            OUTREC IFTHEN=(WHEN=(0001,1,CH,EQ,C'B',AND,                         
                                (0002,256,CH,EQ,05450,256,CH,AND,               
                                 0258,256,CH,EQ,05706,256,CH,AND,               
                                 0514,256,CH,EQ,05962,256,CH,AND,               
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Fri May 07, 2010 9:36 pm
Reply with quote

javalal,

Do you have duplicates in any of the files on the key?
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Fri May 07, 2010 11:13 pm
Reply with quote

Hi,

No duplicates will there in the file. the key is unique.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Sat May 08, 2010 12:34 am
Reply with quote

Javalal,

Use the following DFSORT JCL which will give you the desired results. I assumed the key length to be 11 bytes starting from position 2 which would match the results which you provided.

Code:

//STEP0100 EXEC PGM=SORT                                   
//SYSOUT   DD SYSOUT=*                                     
//SORTIN   DD *                                             
//SORTOUT  DD DSN=&&HDR,DISP=(,PASS),SPACE=(TRK,(1,0),RLSE)
//SYSIN    DD *                                             
  SORT FIELDS=COPY                                         
  INREC OVERLAY=(5448:X)                                   
  OUTFIL REMOVECC,NODETAIL,HEADER1=('$$$')                 
//*                                                         
//STEP0200 EXEC PGM=SORT                                     
//SYSOUT   DD SYSOUT=*                                       
//SORTIN   DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT   
//         DD DSN=Your Previous Day file,DISP=SHR
//         DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT   
//         DD DSN=Your Current Day file,DISP=SHR
//SORTOUT  DD SYSOUT=*   
//SYSIN    DD *                                                       
  INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,3,CH,EQ,C'$$$'),PUSH=(10897:ID=1))
  SORT FIELDS=(2,11,CH,A),EQUALS                                       
  OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(10899:SEQNUM,8,ZD,RESTART=(2,11))),
  IFTHEN=(WHEN=GROUP,BEGIN=(10899,8,ZD,EQ,1),                         
    PUSH=(5449:1,5448,10898:10897,1)),                                 
  IFTHEN=(WHEN=(10897,2,ZD,EQ,21,AND,                                 
               (0001,256,CH,EQ,05449,256,CH,AND,                       
                0257,256,CH,EQ,05705,256,CH,AND,                       
                0513,256,CH,EQ,05961,256,CH,AND,                       
                0769,256,CH,EQ,06217,256,CH,AND,                       
                1025,256,CH,EQ,06473,256,CH,AND,                       
                1281,256,CH,EQ,06729,256,CH,AND,                       
                1537,256,CH,EQ,06985,256,CH,AND,                       
                1793,256,CH,EQ,07241,256,CH,AND,                       
                2049,256,CH,EQ,07497,256,CH,AND,                       
                2305,256,CH,EQ,07753,256,CH,AND,                       
                2561,256,CH,EQ,08009,256,CH,AND,                       
                2817,256,CH,EQ,08265,256,CH,AND,                       
                3073,256,CH,EQ,08521,256,CH,AND,                       
                3329,256,CH,EQ,08777,256,CH,AND,                       
                3585,256,CH,EQ,09033,256,CH,AND,                       
                3841,256,CH,EQ,09289,256,CH,AND,                       
                4097,256,CH,EQ,09545,256,CH,AND,                       
                4353,256,CH,EQ,09801,256,CH,AND,                       
                4609,256,CH,EQ,10057,256,CH,AND,                       
                4865,256,CH,EQ,10313,256,CH,AND,                       
                5121,256,CH,EQ,10569,256,CH,AND,                       
                5377,072,CH,EQ,10825,072,CH)),                         
         OVERLAY=(10897:C'DD'))                                       
  OUTFIL OMIT=(10897,2,SS,EQ,C'11,DD'),BUILD=(1,5448)
//*
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Sat May 08, 2010 9:56 am
Reply with quote

hi,

i am getting the following error.

Code:
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 00:24 ON SAT MAY
          INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,3,CH,EQ,C'$$$'),                   
                $                                                               
ICE005A 0 STATEMENT DEFINER ERROR                                               
           PUSH=(10897:ID=1))                                                   
           $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
          SORT FIELDS=(2,11,CH,A),EQUALS                                       
               $                                                               
ICE005A 0 STATEMENT DEFINER ERROR                                               
          OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(10899:SEQNUM,8,ZD,                 
                 $                                                             
ICE005A 0 STATEMENT DEFINER ERROR                                               
          RESTART=(2,11))),                                                     
          IFTHEN=(WHEN=GROUP,BEGIN=(10899,8,ZD,EQ,1),                           
            PUSH=(5449:1,5448,10898:10897,1)),                                 
            $                                                                   
ICE005A 0 STATEMENT DEFINER ERROR                                               
          IFTHEN=(WHEN=(10897,2,ZD,EQ,21,AND,                                   
                      (0001,256,CH,EQ,05449,256,CH,AND,                         
                      $                           
ICE007A 1 SYNTAX ERROR                                     
                          0257,256,CH,EQ,05705,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          0513,256,CH,EQ,05961,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          0769,256,CH,EQ,06217,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          1025,256,CH,EQ,06473,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          1281,256,CH,EQ,06729,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          1537,256,CH,EQ,06985,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          1793,256,CH,EQ,07241,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR       
                          2049,256,CH,EQ,07497,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          2305,256,CH,EQ,07753,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          2561,256,CH,EQ,08009,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          2817,256,CH,EQ,08265,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          3073,256,CH,EQ,08521,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          3329,256,CH,EQ,08777,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          3585,256,CH,EQ,09033,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                   
                          3841,256,CH,EQ,09289,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          4097,256,CH,EQ,09545,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          4353,256,CH,EQ,09801,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          4609,256,CH,EQ,10057,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          4865,256,CH,EQ,10313,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          5121,256,CH,EQ,10569,256,CH,AND,
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                          5377,072,CH,EQ,10825,072,CH)),   
                          $                               
ICE007A 0 SYNTAX ERROR                                     
                   OVERLAY=(10897:C'DD'))                 
                   $                                       
ICE005A 0 STATEMENT DEFINER ERROR                               
            OUTFIL OMIT=(10897,2,SS,EQ,C'11,DD'),BUILD=(1,5448)
ICE010A 0 NO SORT OR MERGE CONTROL STATEMENT                   
ICE751I 0 C5-K90007 C6-K90007 E7-K11698                         
ICE052I 3 END OF DFSORT                                         
                             
                             
Back to top
View user's profile Send private message
Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Sat May 08, 2010 12:04 pm
Reply with quote

Javalal, It looks you don't have PTF installed required for using WHEN=GROUP(PTF UK90013)...
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Sat May 08, 2010 6:39 pm
Reply with quote

Hi,

can you suggest me someother method for comparing two DSNs with same LRECL?
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Sat May 08, 2010 8:05 pm
Reply with quote

Hello,

Try SUPERC. . .

There are many topics in our forum. Use the "search" above.
Back to top
View user's profile Send private message
Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Sat May 08, 2010 11:19 pm
Reply with quote

One thing to notify... in current day file key 30000120314 repeated.
Is it typo or intentional?

It would be very simple task by selcopy. Check if you have installed at your shop.
If you are not aware of if it is there,you might want to check if you have library SYS*.SELCOPY.LOADLIB

Let us know if it is available...

It would also be possible using splice flavor of solution apart from above but it would be little complicated than above two provided by Kolusu.
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Sun May 09, 2010 9:24 am
Reply with quote

yes, the file will have duplicate key.

i have checked in the lib SYS*.SELCOPY.LOADLIB . it si not available in my system.

i have similar requirement for one of the smaller dataset which is LRECL=600 with few records. the below code works for my requirement. But for the larger files, it does not work. i am getting SPACE abend for dataset &&T1. i can not allocated UNIT=TAPE for this in ICETOOL. my files are TAPE datasets and almost 2500 Cylinders. since i compare two files, i need to allocated 5000 cylinders which i should not do...
Code:

//SORTSTEP EXEC PGM=ICETOOL                       
//TOOLMSG  DD  SYSOUT=*                           
//DFSMSG   DD  SYSOUT=*                           
//IN1      DD  DSN=ABCD.SALT(-1),DISP=SHR         
//IN2      DD  DSN=ABCD.SALT(+0),DISP=SHR         
//T1       DD  DSN=&&T1,UNIT=PRD,DISP=(MOD,PASS),
//             SPACE=(CYL,(200,200),RLSE)         
//OUT      DD  DSN=NCFT.SALT(+1),                 
//             DISP=(NEW,CATLG,DELETE),           
//             UNIT=PRD,                         
//             SPACE=(CYL,(100,100),RLSE),       
//             DCB=(MODDSCB,LRECL=600,RECFM=FB)   
//TOOLIN DD *                                         
COPY FROM(IN1) TO(T1) USING(CTL1)                     
COPY FROM(IN2) TO(T1) USING(CTL2)                     
SELECT FROM(T1) TO(OUT) ON(2,54,CH) ON(55,500,CH) -   
  NODUPS USING(CTL3)                                 
/*                                                   
//CTL1CNTL DD *                                       
  INREC OVERLAY=(601:C'1')                           
/*                                                   
//CTL2CNTL DD *                                       
  INREC OVERLAY=(601:C'2')                           
/*                                                   
//CTL3CNTL DD *                                       
  OUTFIL FNAMES=OUT,INCLUDE=(601,1,CH,EQ,C'2'),       
    BUILD=(1,600)                                     
/*                                                   

Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Sun May 09, 2010 9:58 am
Reply with quote

Hello,

Quote:
No duplicates will there in the file. the key is unique.

Quote:
yes, the file will have duplicate key.
Which should be believed. . ?

There is already tested code to do what you want in the "Sticky" at the top of the COBOL part of the forum. Both input files must be in key sequence. It should take less than an hour to modify this for your process.

If you do not want to use code, then you need to get permission to create a larger t1 file.

Quote:
i can not allocated UNIT=TAPE for this in ICETOOL.
Why not?
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Sun May 09, 2010 10:06 am
Reply with quote

Hi,

Duplicates will there in the file.

Currently i am using the NATURAL program to compare the files. which is running so long time to compare the files. almoste more that 30 mins.

that is the reason, i wanted to change it to DFSORT/ICETOOL.

I dont have the latest ICETOOL version in my mainframe. which is not allowing to specify TAPE for the T1 dataset.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Sun May 09, 2010 10:15 am
Reply with quote

Hello,

I don't have dfsort/icetool available so i can't run a test, but what happens if you change the unit=, remove the space=, and submit the job?

Does ICETOOL prevent this or is this something particular to your system? What happens if you specify tape/cart for the t1 dataset?
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Sun May 09, 2010 8:12 pm
Reply with quote

Hi,

i have ran the job with UNIT=TAPE for T1 dataset and removed the space parameter.

i got the below error message.

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                                                 
                                                                               
          COPY FROM(IN1) TO(T1) USING(CTL1)                                     


the below message from JES2 Job log.
Code:

10.38.35 JOB07241 ---- SUNDAY,    09 MAY 2010 ----                             
10.38.35 JOB07241  IRR010I  USERID ANTONYJ  IS ASSIGNED TO THIS JOB.           
10.38.35 JOB07241  ICH70001I ANTONYJ  LAST ACCESS AT 10:34:58 ON SUNDAY, MAY 9,
10.38.35 JOB07241  $HASP373 ANTONYJA STARTED - INIT 8    - CLASS F - SYS NCI1 
10.38.35 JOB07241  IEF403I ANTONYJA - STARTED - TIME=10.38.35                 
10.38.35 JOB07241  IEF233A M 2328,316378,,ANTONYJA,SORTSTEP,NCFP.COMBINE.COMPAR
10.38.35 JOB07241  IEF233A M 2108,313597,,ANTONYJA,SORTSTEP,NCFP.COMBINE.COMPAR
10.38.36 JOB07241  ICHRIX02 - NCFP.COMBINE.COMPARE.G0748V00                   
10.38.36 JOB07241  SVM4000I ANTONYJA, SORTSTEP, T1, ATTEMPTING SPACVOLA FOR SYS
10.38.36 JOB07241  SVM4001I RECOVERY ATTEMPT FAILED TO PASS FLST/RLST CRITERIA
10.38.36 JOB07241  IEC030I B37-04,IFG0554A,ANTONYJA,SORTSTEP,T1,VIO ,      ,SYS
10.38.36 JOB07241  IEA995I SYMPTOM DUMP OUTPUT  797                           
   797             SYSTEM COMPLETION CODE=B37  REASON CODE=00000004           
   797              TIME=10.38.36  SEQ=34506  CPU=0000  ASID=0095             
   797              PSW AT TIME OF ERROR  075C1000   80E4ACDE  ILC 2  INTC 0D 
   797                NO ACTIVE MODULE FOUND                                   
   797                NAME=UNKNOWN                                             
   797                DATA AT PSW  00E4ACD8 - 41003846  0A0DB20A  00509808     
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Sun May 09, 2010 9:27 pm
Reply with quote

Hello,

The t1 dataset was not allocated to tape/cart - it was assigned to vio.

Suggest you talk with your storage management people for guidance/resolution.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Mon May 10, 2010 11:21 pm
Reply with quote

Javalal,

Here is the last attempt of mine which would give you the desired results.

Code:

//STEP0100 EXEC PGM=SORT                                       
//SYSOUT   DD SYSOUT=*                                         
//SORTIN   DD *                                               
//SORTOUT  DD DSN=&&HDR,DISP=(,PASS),SPACE=(TRK,(1,0),RLSE)   
//SYSIN    DD *                                               
  SORT FIELDS=COPY                                             
  INREC OVERLAY=(5448:X)                                       
  OUTFIL REMOVECC,NODETAIL,HEADER1=('$$$')                     
//*                                                           
//STEP0200 EXEC PGM=ICETOOL                                           
//TOOLMSG  DD SYSOUT=*                                                 
//DFSMSG   DD SYSOUT=*
//IN       DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT   
//         DD DSN=Your Previous Day file,DISP=SHR
//         DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT   
//         DD DSN=Your Current Day file,DISP=SHR
//OUT      DD SYSOUT=*           
//TOOLIN   DD *                                                       
  SPLICE FROM(IN) TO(OUT) ON(2,11,CH) WITHALL KEEPNODUPS -             
    WITH(1,5448) WITH(10898,1) USING(CTL1)
//CTL1CNTL DD *                                                   
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(10897:C'22',SEQNUM,8,ZD)),     
  IFTHEN=(WHEN=(1,3,CH,EQ,C'$$$'),OVERLAY=(10899:SEQNUM,8,ZD)),   
  IFTHEN=(WHEN=(1,3,CH,NE,C'$$$'),                                 
  OVERLAY=(10907:SEQNUM,8,ZD,                                     
          10899:10899,8,ZD,SUB,10907,8,ZD,M11,LENGTH=8),HIT=NEXT),
  IFTHEN=(WHEN=(10899,8,ZD,EQ,1),OVERLAY=(5449:1,5448,C'11'))     
                                                                   
  OUTFIL FNAMES=OUT,BUILD=(1,5448),                               
  OMIT=(10897,2,ZD,EQ,11,OR,1,3,CH,EQ,C'$$$',OR,                   
        (10897,2,ZD,EQ,12,AND,                                     
         00001,256,CH,EQ,05449,256,CH,AND,                         
         00257,256,CH,EQ,05705,256,CH,AND,                         
         00513,256,CH,EQ,05961,256,CH,AND,                         
         00769,256,CH,EQ,06217,256,CH,AND,                         
         01025,256,CH,EQ,06473,256,CH,AND,                         
         01281,256,CH,EQ,06729,256,CH,AND,                         
         01537,256,CH,EQ,06985,256,CH,AND,                         
         01793,256,CH,EQ,07241,256,CH,AND,                         
         02049,256,CH,EQ,07497,256,CH,AND,                         
         02305,256,CH,EQ,07753,256,CH,AND,                         
         02561,256,CH,EQ,08009,256,CH,AND,                         
         02817,256,CH,EQ,08265,256,CH,AND,                         
         03073,256,CH,EQ,08521,256,CH,AND,                         
         03329,256,CH,EQ,08777,256,CH,AND,                         
         03585,256,CH,EQ,09033,256,CH,AND,                         
         03841,256,CH,EQ,09289,256,CH,AND,                         
         04097,256,CH,EQ,09545,256,CH,AND,                         
         04353,256,CH,EQ,09801,256,CH,AND,                         
         04609,256,CH,EQ,10057,256,CH,AND,                         
         04865,256,CH,EQ,10313,256,CH,AND,                         
         05121,256,CH,EQ,10569,256,CH,AND,                         
         05377,072,CH,EQ,10825,072,CH))                           
//*
Back to top
View user's profile Send private message
javalal

New User


Joined: 03 Oct 2007
Posts: 12
Location: Chennai,India

PostPosted: Tue May 11, 2010 9:14 pm
Reply with quote

Hi Kolusu,

The above JCL worked as expected. thanks a lot. also, this JCL executed very fast less than 6 mins....earlier i had a NATURAL program, it compares two datasets which runs almost 25mins.

I admire about the logic you put above.

can you please explain me the logic, so that i can apply the same to some of the other files.
Back to top
View user's profile Send private message
Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Tue May 11, 2010 9:17 pm
Reply with quote

Rather than Kolusu explaining logic for current sortcard he has posted,
If you go though documentation(DFSORT getting started atleast) It will take you far in DFSORT knowledge.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
No new posts To find whether record count are true... DFSORT/ICETOOL 6
No new posts Validating record count of a file is ... DFSORT/ICETOOL 13
Search our Forums:

Back to Top