IEBCOMPR


IEBCOMPR is used to compare two sequential datasets , two PDS or PDSE.
Note that we should not use IEBCOMPR to compare load modules.

IEBCOMPR allows two tape datasets to be compared. This is advantage over Fileaid as Fileaid online compare does not allow tape datasets to be compared.

Two sequential dataset is considered as identical if:
  1. The datasets contain same number of records.
  2. Corresponding records and keys are identical.

If the records are found unequal , the record and block numbers, the names of the dd statements that define the datasets and unequal records are listed in the message dataset.

By default 10 successive unequal comparisons will stop the IEBCOMPR step(RC=12). If differences are found but they are less than 10 then it will end with 08.


General Structure:

//STEPCMPR EXEC PGM=IEBCOMPR
//SYSUT1   DD DSN=G1SG00AT.INPUT1,DISP=SHR--> SYSUT1: dataset 1 to be compared.
//SYSUT2   DD DSN=G1SG00AT.INPUT2,DISP=SHR--> SYSUT2: dataset 2 to be compared.
//SYSOUT   DD *
//SYSPRINT DD SYSOUT=*
//SYSIN    DD DUMMY

SYSUT1 and SYSUT2 are the ddnames used for the two datasets to be compared.



Example 1: Comparing two tape files

BC00       SM017R.TEST1.JCL(IEBCOMPR) - 01.00              Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000100 //IEBCOMPR JOB (EWDS),'COMPARE TAPES'                                  
000300 //STEP001  EXEC PGM=IEBCOMPR                                           
000400 //SYSUT1    DD DSN=SM017R.DW220.C.LS.TCTN807.LOAD01.G0001V00,          
000500 //             UNIT=VTSTAPE,                                           
000600 //             DISP=(OLD,KEEP)                                         
000700 //SYSUT2    DD DSN=DWPC.DW220.C.LS.TCTN807.LOAD01.G0254V00,            
000800 //             UNIT=VTSTAPE,                                           
000900 //             DISP=(OLD,KEEP)                                         
001000 //SYSPRINT  DD SYSOUT=*                                                
001100 //SYSIN     DD DUMMY                                                   
****** **************************** Bottom of Data ****************************

Here we have given dummy in the SYSIN which defaults to compare.

BC00 ------------------- SSO Sysout (Today Is 12242) -------------- Job 1 Of 4
COMMAND ===>                                                 SCROLL ===> CSR  
  Job Name   Nbr  MaxCC  Sys   Started     Ended     Lines Description        
  IEBCOMPR  4921  0008  CC00 12242/0126 12242/0126     127 COMPARE TAPES      

Since only 2 records (<10) were found as different, job ends with Rc 08.

BC00       SSO.D0126372.T712242.IEBCOMPR                   Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000001 »                                                                      
000002                                                 COMPARE UTILITY        
000003                                                                        
000004  IEB221I    RECORDS ARE NOT EQUAL                                      
000005      DDNAME = SYSUT1                                                   
000006      PHYSICAL RECORD NUMBER = 00000001  LOGICAL RECORD NUMBER WITHIN PHY
000007  F040001EB4514000000000C35C40E3C3E3D5F8F0F740F2F0F1F2F2F4F14040404040F0F
000008  F9                                                                    
000009      DDNAME = SYSUT2                                                   
000010      PHYSICAL RECORD NUMBER = 00000001  LOGICAL RECORD NUMBER WITHIN PHY
000011  F040001EB44B4000000000C35C40E3C3E3D5F8F0F740F2F0F1F2F2F3F54040404040F0F
000012  F9                                                                    
000013  IEB221I    RECORDS ARE NOT EQUAL                                      
000014      DDNAME = SYSUT1                                                   
000015      PHYSICAL RECORD NUMBER = 00000338  LOGICAL RECORD NUMBER WITHIN PHY
000016  F940001EB4514000000000C35C40E3C3E3D5F8F0F74040F0F0F0F1F8F1F1F6F44040404
000017  40                                                                    
000018      DDNAME = SYSUT2                                                   
000019      PHYSICAL RECORD NUMBER = 00000338  LOGICAL RECORD NUMBER WITHIN PHY
000020  F940001EB44B4000000000C35C40E3C3E3D5F8F0F74040F0F0F0F1F8F1F1F6F44040404
000021  40                                                                    
000022      END OF JOB-TOTAL NUMBER OF RECORDS COMPARED = 00181166            
****** **************************** Bottom of Data ****************************


Below syntax can also be used:

BC00       SM017R.TEST1.JCL(IEBCOMPR) - 01.01              Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000100 //IEBCOMPR JOB (EWDS),'COMPARE TAPES'                                  
000300 //STEP001  EXEC PGM=IEBCOMPR                                           
000400 //SYSUT1    DD DSN=SM017R.DW220.C.LS.TCTN807.LOAD01.G0001V00,          
000500 //             UNIT=VTSTAPE,                                           
000600 //             DISP=(OLD,KEEP)                                         
000700 //SYSUT2    DD DSN=DWPC.DW220.C.LS.TCTN807.LOAD01.G0254V00,            
000800 //             UNIT=VTSTAPE,                                           
000900 //             DISP=(OLD,KEEP)                                         
001000 //SYSPRINT  DD SYSOUT=*                                                
001100 //SYSIN     DD *                                                       
001200  COMPARE TYPORG=PS--> PS stands for physical sequential                                                     
****** **************************** Bottom of Data ****************************



Comparing two PDS:

BC00       SM017R.TEST1.JCL(IEBCOMPR) - 01.01              Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000100 //IEBCOMPR JOB (EWDS),'COMPARE TAPES'                                  
000300 //STEP001  EXEC PGM=IEBCOMPR                                           
000400 //SYSUT1    DD DSN=SM017R.TEST1.JCL,  --> PDS being compared                                  
000600 //             DISP=(OLD,KEEP)                                         
000700 //SYSUT2    DD DSN=SM017R.TEST.JCL,   --> PDS being compared                                 
000900 //             DISP=(OLD,KEEP)                                         
001000 //SYSPRINT  DD SYSOUT=*                                                
001100 //SYSIN     DD *                                                       
001200  COMPARE TYPORG=PO --> PO stands for partitioned.                                                     
****** **************************** Bottom of Data ****************************


BC00       SSO.D0254138.T812242.IEBCOMPR                   Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000001 »                                                                      
000002                                                 COMPARE UTILITY        
000003                                                                        
000004   COMPARE TYPORG=PO                                                    
000005          TRUE NAME MISSING FROM SYSUT2                                 
000006      DDNAME = SYSUT2    MEMBER NAME = ADDSTEST                         
000007          TRUE NAME MISSING FROM SYSUT1                                 
000008      DDNAME = SYSUT1    MEMBER NAME = ALTERGDG                         
000009          TRUE NAME MISSING FROM SYSUT1                                 
000010      DDNAME = SYSUT1    MEMBER NAME = APPLDUMP                         
000011  IEB205I USER DATA FIELDS UNEQUAL                                      
000012      DDNAME = SYSUT1    MEMBER NAME = ARCDUMP                          
000013  010900120103269F0105033F1155002900280000E2C6F2F5F4F540404040          
000014      DDNAME = SYSUT2    MEMBER NAME = ARCDUMP                          
000015  010A00040103269F0111207F0450002700280000E2D4F0F1F7D940404040          
000016  IEB205I USER DATA FIELDS UNEQUAL                                      
000017      DDNAME = SYSUT1    MEMBER NAME = BTEQ                             
000018  010700120103169F0111047F2341000F00E80000E2D4F0F1F7D940404040          
000019      DDNAME = SYSUT2    MEMBER NAME = BTEQ                             
000020  011500280103169F0111338F2325001100E80000E2D4F0F1F7D940404040          
000021  IEB205I USER DATA FIELDS UNEQUAL                                      
000022      DDNAME = SYSUT1    MEMBER NAME = BTEQEXPT                         
000023  010100140110232F0110232F0330001D001D0000E2D4F0F1F7D940404040          
000024      DDNAME = SYSUT2    MEMBER NAME = BTEQEXPT                         
000025  010300330110232F0110253F0548001D001D0000E2D4F0F1F7D940404040          
000026  IEB205I USER DATA FIELDS UNEQUAL                                      
000027      DDNAME = SYSUT1    MEMBER NAME = CHKUTILS                         
000028  010300270101008F0112233F01550018000F0000E2D4F0F1F7D940404040          
000029      DDNAME = SYSUT2    MEMBER NAME = CHKUTILS                         
000030  010200020101008F0103169F1553000F000F0000E2C6F2F5F4F540404040          
000031          TRUE NAME MISSING FROM SYSUT1                                 
000032      DDNAME = SYSUT1    MEMBER NAME = DELEFILE                         
000033          TRUE NAME MISSING FROM SYSUT2                                 
000034      DDNAME = SYSUT2    MEMBER NAME = DWA2CTST                         
000035          TRUE NAME MISSING FROM SYSUT1                                 
000036      DDNAME = SYSUT1    MEMBER NAME = DWGENRIC                         
000037          TRUE NAME MISSING FROM SYSUT1                                 
000038      DDNAME = SYSUT1    MEMBER NAME = DWLTESTS                         
000039          TRUE NAME MISSING FROM SYSUT1                                 
000040      DDNAME = SYSUT1    MEMBER NAME = DWRST003                         
000041          TRUE NAME MISSING FROM SYSUT1                                 
000042      DDNAME = SYSUT1    MEMBER NAME = DWR1CTST                         


Return Codes from IEBCOMPR:

00 (X'00') - Successful completion.
08 (X'08') - An unequal comparison. Processing continues.
12 (X'0C') - An unrecoverable error exists for unequal comparison. Utility ends.(more than 10 unequal matches)
16 (X'10') - A user routine passed a return code of 16 to IEBCOMPR. The utility ends.

No comments:

Post a Comment