上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
8.6 运行银行主文件维护平衡线程序的作业流(GOBKUPD1)
下面是运行主文件维护程序的作业流。第3行到第12行的第1个作业步用来对交易文件分类,因为我们的交易文件是按交易日志号而不是按账户的顺序排列的。第11行的SORT FIELDS短语,使用了两个字段,首先是账号(8,14,CH,A),其次是交易日志号(1,4,CH,A),这样做是必需的,因为如果不指定交易日志号作为第2个分类字段,就不能保证同账号的交易按照交易的先后顺序排列。
第13行到第22行的第2个作业步对旧主文件按照账号分类,这是可选的,理论上,旧主文件是按照账号的顺序排列好了的。
第23行到第31行的第3个作业步,才是真正运行平衡线算法的,注意所使用的交易和旧主文件都是排好序的。
000001 //IBMUSERA JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),NOTIFY=&SYSUID, 000002 // REGION=4M 000003 //SRTRAN EXEC PGM=ICEMAN 000004 //SYSOUT DD SYSOUT=* 000005 //SORTIN DD DSN=IBMUSER.TEST.BKTRAN,DISP=SHR 000006 //SORTOUT DD DSN=IBMUSER.TEST.BKTRAN.SORT,DISP=OLD 000007 //* DISP=(NEW,PASS), 000008 //* SPACE=(TRK,(5,5),RLSE), 000009 //* DCB=(RECFM=FB,LRECL=80,DSORG=PS) 000010 //SYSIN DD * 000011 SORT FIELDS=(8,14,CH,A,1,4,CH,A) 000012 /* 000013 //SRTMASTO EXEC PGM=ICEMAN 000014 //SYSOUT DD SYSOUT=* 000015 //SORTIN DD DSN=IBMUSER.TEST.BKMASTO,DISP=SHR 000016 //SORTOUT DD DSN=IBMUSER.TEST.BKMASTO.SORT,DISP=OLD 000017 //* DISP=(NEW,PASS), 000018 //* SPACE=(TRK,(5,5),RLSE), 000019 //* DCB=(RECFM=FB,LRECL=100,DSORG=PS) 000020 //SYSIN DD * 000021 SORT FIELDS=(1,14,CH,A) 000022 /* 000023 //GOBKUPD EXEC PGM=BKUPD1 000024 //STEPLIB DD DSN=IBMUSER.TEST.LOAD,DISP=SHR 000025 //SYSOUT DD SYSOUT=* 000026 //SYSPRINT DD SYSOUT=* 000027 //SORTOUT DD SYSOUT=* 000028 //SYSUDUMP DD SYSOUT=* 000029 //BKTRAN DD DSN=IBMUSER.TEST.BKTRAN.SORT,DISP=SHR 000030 //BKMASTO DD DSN=IBMUSER.TEST.BKMASTO.SORT,DISP=SHR 000031 //BKMASTN DD DSN=IBMUSER.TEST.BKMASTN,DISP=SHR