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:
- The datasets contain same number of records.
- 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