gtpi1m63 | System Installation Support Reference |
The following is STC input for the GOA chain for I-stream 1:
* I-STREAM 1 PRIME GOA RECORD GO1GO GSTAR 1. BSTA06 ENT (#GLOBL)1. #GLOBL ORDINAL NUMBER 1 * STANDARD HEADER GO1BID ENT GO. GO1FCH ENT X'00000002'. FORWARD CHAIN AT ORDINAL # 2 * TABLE HEADER GO1ENT ENTIT 1-1-X'0002'. 2 ENTRIES THIS TABLE GO1NUM ENTIT 1-1-X'07'. LOAD MODE 07 GO1CHN ENTIT 1-1-X'80'. THERE IS A FORWARD CHAIN * TABLE OF ENTRIES * RECORD 1 GO1CON ENTIT 1-2-X'84000000'. LOAD 84D RECORD TO GL1 GO1EIX ENTIT 1-2-X'0009'. SLOT # 9 GO1EID ENTIT 1-2-GL. RECORD ID GL GO1EON ENTIT 1-2-X'00000002'. FROM ORDINAL # 2 * RECORD 2 GO1CON ENTIT 1-3-X'84240000'. LOAD 84D KEYPOINTABLE REC TO I-S shared GL1 GO1EIX ENTIT 1-3-X'000A'. SLOT # 10 GO1EID ENTIT 1-3-GL. RECORD ID GL GO1EON ENTIT 1-3-X'00000003'. FROM ORDINAL # 3 GEND * I-STREAM 1 FORWARD CHAIN GOA GO1GO GSTAR 1. BSTA06 ENT (#GLOBL)2. #GLOBL ORDINAL NUMBER 2 * STANDARD HEADER GO1BID ENT GO. RECORD ID GO1FCH ENT X'00000000'. NO FORWARD CHAIN * TABLE HEADER GO1ENT ENTIT 1-1-X'0002'. 2 ENTRIES IN THIS TABLE GO1NUM ENTIT 1-1-X'07'. LOAD MODE 07 GO1CHN ENTIT 1-1-X'00'. NO FORWARD CHAIN * TABLE ENTRIES * RECORD 3 GO1CON ENTIT 1-2-X'58020100'. LOAD 58D SSU COMMON REC TO GL2 GO1EIX ENTIT 1-2-X'0079'. GL3 SLOT # 65 GO1EID ENTIT 1-2-GL. RECORD ID GL GO1EON ENTIT 1-2-X'0000003E'. FROM ORDINAL # 62 * RECORD 4 GO1CON ENTIT 1-3-X'64060200'. 64D KYPTBL SSU COMMON REC TO GL3 GO1EIX ENTIT 1-3-X'0049'. SLOT # 17 GO1EID ENTIT 1-3-GL. RECORD ID GL GO1EON ENTIT 1-3-X'0000003F'. FROM ORDINAL # 63 GEND
The following is STC input for the GOA chain for I-stream 2:
* I-STREAM 2 PRIME GOA RECORD GO1GO GSTAR 1. BSTA06 ENT (#GLOBL)18. #GLOBL ORDINAL NUMBER 18 * STANDARD HEADER GO1BID ENT GO. RECORD ID GO GO1FCH ENT X'00000011'. FORWARD CHAIN AT ORDINAL # 17 * TABLE HEADER GO1ENT ENTIT 1-1-X'0002'. 2 ENTRIES THIS TABLE GO1NUM ENTIT 1-1-X'07'. LOAD MODE 07 GO1CHN ENTIT 1-1-X'80'. THERE IS A FORWARD CHAIN * TABLE OF ENTRIES * RECORD 1 GO1CON ENTIT 1-2-X'84000000'. LOAD 84D RECORD TO GL1 GO1EIX ENTIT 1-2-X'0009'. SLOT # 9 GO1EID ENTIT 1-2-GL. RECORD ID GL GO1EON ENTIT 1-2-X'00000002'. FROM ORDINAL # 2 * RECORD 2 I-STREAM SHARED * * (Note that no record is defined here. * The corresponding record for I-stream 1 * will appear in the directory slot for * for this I-stream.) * GEND * I-STREAM 2 FORWARD CHAIN GOA GO1GO GSTAR 1. BSTA06 ENT (#GLOBL)17. #GLOBL ORDINAL NUMBER 17 * STANDARD HEADER GO1BID ENT GO. RECORD ID GO1FCH ENT X'00000000'. NO FORWARD CHAIN * TABLE HEADER GO1ENT ENTIT 1-1-X'0002'. 2 ENTRIES IN THIS TABLE GO1NUM ENTIT 1-1-X'07'. LOAD MODE 07 GO1CHN ENTIT 1-1-X'00'. NO FORWARD CHAIN * TABLE ENTRIES * RECORD 3 GO1CON ENTIT 1-2-X'58020100'. LOAD 58D SSU COMMON REC TO GL2 GO1EIX ENTIT 1-2-X'0079'. GL3 SLOT # 65 GO1EID ENTIT 1-2-GL. RECORD ID GL GO1EON ENTIT 1-2-X'0000003E'. FROM ORDINAL # 62 * RECORD 4 GO1CON ENTIT 1-3-X'64060200'. 64D KYPTBL SSU COMMON REC TO GL3 GO1EIX ENTIT 1-3-X'0049'. SLOT # 17 GO1EID ENTIT 1-3-GL. RECORD ID GL GO1EON ENTIT 1-3-X'00000040'. FROM ORDINAL # 64 GEND
The previous code produces a pilot tape that initializes the #GLOBL records so that 4 globals records are loaded.
Records 1 and 3 are both I-stream unique since there is an item in each I-stream's GOA chain for both records. Each I-stream has its own main storage copy of both record 1 and record 3, but the file address for each global is shared. This is because the global is loaded to each I-stream from the same #GLOBL ordinal number.
Record 2 is an example of an I-stream shared global. Since there is an entry for record 2 only in I-stream 1's GOA chain, I-Stream 2's slot for record 2 (GL1 slot #10) contains the same values as I-stream 1's slot for record 2. Each I-stream points to the same main storage address and file address for record 2. This is what is meant by I-stream shared.
Record 4, like records 1 and 3, is I-stream unique, but record 4 is loaded from a different #GLOBL ordinal number on each I-stream. Record 4 has not only a unique main storage copy for each I-stream but also a unique DASD copy for each I-stream.
The following diagram shows this relationship:
The following is an example of a main storage copy of a super GOA.
Figure 11. Example of the Super GOA
+000 G O0000 A C P F +008 00000000 00300000 +010 00000000 00000000 +018 00000008 00100018 +020 00200028 00000000 +028 00000000 00000000 +030 00000000 00000001 +038 00000001 00000000 +040 00000002 00000010 +048 00000000 00000003 +050 00000010 00000000 +058 00000004 00000010 +060 00000000 00000005 +068 00000010 00000000 +070 00000006 00000010 +078 00000000 00000007 +080 00000010 00000000 +088 00000008 00000010 +090 00000001 00000001 +ABS 00000001 00000001 +0A0 00000002 00000010 +0A8 00000001 00000003 +0B0 00000010 00000001 +0B8 00000004 00000010 +0C0 00000001 00000005 +0C8 00000010 00000001 +0D0 00000006 00000010 +0D8 00000001 00000007 +0E0 00000010 00000001 +0E8 00000008 00000010 +0F0 00000002 00000001 +0F8 00000001 00000002 +100 00000002 00000010 +108 00000002 00000003 +110 00000010 00000002 +118 00000004 00000010 +120 00000002 00000005 +128 00000010 00000002 +130 00000006 00000010 +138 00000002 00000007 +140 00000010 00000002 +148 00000008 00000010 +150 00000003 00000001 +158 00000001 00000003 +160 00000002 00000010 +168 00000003 00000003 +170 00000010 00000003 +178 00000004 00000010 +180 00000003 00000005 +188 00000010 00000003 +190 00000006 00000010 +198 00000003 00000007 +1A0 00000010 00000003 +1A8 00000008 00000010 +1B0 00000004 00000001 +1B8 00000001 00000004 +1C0 00000002 00000010 +1C8 00000004 00000003 +1D0 00000010 00000004 +1D8 00000004 00000010 +1E0 00000004 00000005 +1E8 00000010 00000004 +1F0 00000006 00000010 +1F8 00000004 00000007 +200 00000010 00000004 +208 00000008 00000010 +210 00000005 00000001 +218 00000001 00000005 +220 00000002 00000010 +228 00000005 00000003 +230 00000010 00000005 +238 00000004 00000010 +240 00000005 00000005 +248 00000010 00000005 +250 00000006 00000010 +258 00000005 00000007 +260 00000010 00000005 +268 00000008 00000010 +270 00000000 00000000 +278 00000000 00000000 +280 00000000 00000000 +288 00000000 00000000 +290 00000000 00000000 +298 00000000 00000000 +2A0 00000000 00000000 +2A8 00000000 00000000 +2B0 00000000 00000000 +2B8 00000000 00000000 +2C0 00000000 00000000 +2C8 00000000 00000000 +2D0 00000000 00000000 +2D8 00000000 00000000 +2E0 00000000 00000000 +2E8 00000000 00000000 +2F0 00000000 00000000 +2F8 00000000 00000000 +300 00000000 00000000 +308 00000000 00000000 +310 00000000 00000000 +318 00000000 00000000 +320 00000000 00000000 +328 00000000 00000000 +330 00000000 00000000 +338 00000000 00000000 +340 00000000 00000000 +348 00000000 00000000 +350 00000000 00000000 +358 00000000 00000000 +360 00000000 00000000 +368 00000000 00000000 +370 00000000 00000000 +378 00000000 00000000 +380 00000000 00000000 +388 00000000 00000000 +390 00000000 00000000 +398 00000000 00000000 +3A0 00000000 00000000 +3A8 00000000 00000000 +3B0 00000000 00000000 +3B8 00000000 00000000 +3C0 00000000 00000000 +3C8 00000000 00000000 +3D0 00000000 00000000 +3D8 00000000 00000000 +3E0 00000000 00000000 +3E8 00000000 00000000 +3F0 00000000 00000000 +3F8 00000000 00000000 +400 00000000 00000000 +408 00000000 00000000 +410 00000000 00000000 +418 00000000 00000013
The following is an example of a main storage copy of a prime GOA.
Figure 12. Example of a Prime GOA
+000 G O0004 A C P F +008 00000002 001A0700 +010 ABS00000 00000000 +018 84000000 0009 G L +020 00000003 84040000 +028 000A G L 00000004 +030 09000000 0022 G L +038 00000023 08040000 +040 0023 G L 00000024 +048 11000000 0024 G L +050 00000025 03040000 +058 0025 G L 00000026 +060 64040000 0001 M E +068 00000043 32040000 +070 0002 R T 00000044 +078 10040000 0003 P M +080 00000041 10040000 +088 0004 G C 00000042 +090 84040000 002E Q X +ABS 0000004B 64040000 +0A0 0005 T R 00000046 +0A8 64060000 0007 T R +0B0 00000048 64040000 +0B8 002B T R 00000027 +0C0 64060000 002D T R +0C8 0000002B 81000100 +0D0 0013 X U 0000001F +0D8 09000100 0014 X U +0E0 00000020 12000100 +0E8 0016 X C 00000018 +0F0 64040100 0006 T R +0F8 00000047 64060100 +100 0008 T R 00000049 +108 64040100 002C T R +110 00000028 64060100 +118 002F T R 0000002C +120 64060100 0056 T R +128 00000035 64040100 +130 0058 T R 0000002A +138 64040100 0054 T R +140 00000033 64060100 +148 005A T R 0000002E +150 00000000 00000000 +158 00000000 00000000 +160 00000000 00000000 +168 00000000 00000000 +170 00000000 00000000 +178 00000000 00000000 +180 00000000 00000000 +188 00000000 00000000 +190 00000000 00000000 +198 00000000 00000000 +1A0 00000000 00000000 +1A8 00000000 00000000 +1B0 00000000 00000000 +1B8 00000000 00000000 +1C0 00000000 00000000 +1C8 00000000 00000000 +1D0 00000000 00000000 +1D8 00000000 00000000 +1E0 00000000 00000000 +1E8 00000000 00000000 +1F0 00000000 00000000 +1F8 00000000 00000000 +200 00000000 00000000 +208 00000000 00000000 +210 00000000 00000000 +218 00000000 00000000 +220 00000000 00000000 +228 00000000 00000000 +230 00000000 00000000 +238 00000000 00000000 +240 00000000 00000000 +248 00000000 00000000 +250 00000000 00000000 +258 00000000 00000000 +260 00000000 00000000 +268 00000000 00000000 +270 00000000 00000000 +278 00000000 00000000 +280 00000000 00000000 +288 00000000 00000000 +290 00000000 00000000 +298 00000000 00000000 +2A0 00000000 00000000 +2A8 00000000 00000000 +2B0 00000000 00000000 +2B8 00000000 00000000 +2C0 00000000 00000000 +2C8 00000000 00000000 +2D0 00000000 00000000 +2D8 00000000 00000000 +2E0 00000000 00000000 +2E8 00000000 00000000 +2F0 00000000 00000000 +2F8 00000000 00000000 +300 00000000 00000000 +308 00000000 00000000 +310 00000000 00000000 +318 00000000 00000000 +320 00000000 00000000 +328 00000000 00000000 +330 00000000 00000000 +338 00000000 00000000 +340 00000000 00000000 +348 00000000 00000000 +350 00000000 00000000 +358 00000000 00000000 +360 00000000 00000000 +368 00000000 00000000 +370 00000000 00000000 +378 00000000 00000000 +380 00000000 00000000 +388 00000000 00000000 +390 00000000 00000000 +398 00000000 00000000 +3A0 00000000 00000000 +3A8 00000000 00000000 +3B0 00000000 00000000 +3B8 00000000 00000000 +3C0 00000000 00000000 +3C8 00000000 00000000 +3D0 00000000 00000000 +3D8 00000000 00000000 +3E0 00000000 00000000 +3E8 00000000 00000000 +3F0 00000000 00000000 +3F8 00000000 00000000 +400 00000000 00000000 +408 00000000 00000000 +410 00000000 00000000 +418 00000000 00000013
SDMU ENTER GL0BBLAB0001 00010000 GL0BB GSTAR CREATE,1. 00020000 BSTA06 ENT (#GL0BL)3. 00030000 0 ENT X@C7D30020@. 00040000 @TRTAL ENT X'0000000000000000000000000000000000000000000000000000' ;00050000 X'0000000000000000000000000000000000000000000000000000' ;00060000 X'0000000000000000000000000000000000000000000000000000' ;00070000 X'0000000000000000000000000000000000000000000000000000' ;00080000 X'0000000000000000000000000000000000000000000000000000' ;00090000 X'0000000000000000000000000000000000000000000000000000' ;00100000 X'0000000000000000000000000000000000000000000000000000' ;00110000 X'0000000000000000000000010101020202020303000000000000' ;00120000 X'0003030304040404050500000000000000000506060606060606' ;00130000 X'00000000000000000000000000000000000000000000'. 00140000 @TRTNO ENT X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00150000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00160000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00170000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00180000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00190000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00200000 X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ;00210000 X'FFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFF' ;00220000 X'FF000000000000000000FFFFFFFFFFFFFFFF0000000000000000' ;00230000 X'FFFFFFFFFFFF01010101010101010101FFFFFFFFFFFF'. 00240000 @ESRLC ENT (#MISCL)1. 00250000 @FCTAD ENT (#MISCS)6. 00260000 @NC1NC ENT (#MISCS)7. 00270000 @NS1NS ENT (#MISCS)8. 00280000 @P9ADR ENT (#MISCS)10. 00290000 @P9PDC ENT X'00000021'. 33 00300000 @Q6PI1 ENT (#MISCS)0. 00310000 @Q6PI2 ENT (#MISCS)1. 00320000 @Q6PI3 ENT (#MISCS)2. 00330000 @ROTTY ENT (#MISCL)7. 00340000 @STTSF ENT (#MISCS)5. 00350000 @TTTEM ENT (#MISCL)0. 00360000 @U1TFT ENT (#MISCS)9. 00370000 @U7CRC ENT (#QCRRI)1. 00380000 @ALPHA ENT X@0006@. 6 00390000 @CRCOD ENT RC. 00400000 @HAALC ENT CO. 00410000 @LSTCH ENT X'0000'. 00420000 @MAXBK ENT X'0156'. 342 00430000 @MAXCL ENT X'0040'. 64 00440000 @MAXHL ENT X'0045'. 69 00450000 @MINBK ENT X'0105'. 261 00460000 @NBADY ENT X@0007@. 00470000 @NOCUR ENT X@0008@. 8 00480000 @NOREM ENT X@014D@. 333 00490000 @NRDET ENT X@000A@. 10 00500000 @NRGRO ENT X@016E@. 366 00510000 @NRRDI ENT X@003D@. 00520000 @OADET ENT X@0005@. 5 00530000
@OAGRO ENT X@014F@. 335 00540000 @OMSGI ENT X'0005'. 5 00550000 @P9PDO ENT X'000B'. 00560000 @P9PNL ENT X'0004'. 4 00570000 @XIPCT ENT X@0004@. TON'S 0-3 NOT ASSIGNED XILD 00580000 @XLSLC ENT X@0010@. # LOW SPEED LINES,16 LOW SPEE LINES 00-0F 00590000 @XLSLQ ENT X@000A@. # LS ENTRIES(XTQC) 00600000 @XLSTC ENT X@000E@. # OF L/S TERMINALS 00610000 @XMXML ENT X@000A@. MAX MESSAGE LENGTH IN SEGMENTS 00620000 @XMXRC ENT X@0005@. MAX RETRIEVAL COUNT @XMXRT ENT X@000F@. MAX RETRIEVAL TIME LIMIT -15 MIN 00640000 @XNHST ENT X'0016'. # H/S M/S TERMINALS 00650000 @XSATS ENT X'0007'. # ENTRIES PER XSAT RECORD 00660000 @XSYLC ENT X@0013@. # ENTRIES IN XOCT 00670000 @XSYTC ENT X'0028'. # ENTRIES IN XTRT 00680000 @XTATS ENT X@000A@. # ENTRIES PER XTAT RECORD 00690000 @X1SDL ENT X'0048'. 72 SDL'S PER XDSL 00700000 @TTHAM ENT TSTAL. 00710000 @CRAS ENT X'010000'. 00720000 @CRCCC ENT LAX. 00730000 @FCOCC ENT LAX. 00740000 @PARSC ENT LAX. 00750000 @CRCORD ENT X'01'. 00760000 @PQ5NR ENT X@01@. 00770000 @XIPLG ENT X'FF'. INPUT LOGGING ON 00780000 @XSYST ENT X@03@. RES EOM/S- H/S AND L/S 00790000 GEND 00800000 SDMU ENTER GL0BCLAB0001 00810000 GL0BC GSTAR CREATE,1. 00820000 BSTA06 ENT (#GL0BL)4. 00830000 0 ENT X@C7D30020@. 00840000 @U1CAL ENT X@1EE2C5D700F1@. SEP ;00850000 X@1FD6C3E3010F@. OCT ;00860000 X@1ED5D6E5012E@. NOV ;00870000 X@1FC4C5C3014C@. DEC ;00880000 X@1FD1C1D5016B@. JAN ;00890000 X@1CC6C5C2018A@. FEB ;00900000 X@1FD4C1D901A6@. MAR ;00910000 X@1EC1D7D901C5@. APR ;00920000 X@1FD4C1E801E3@. MAY ;00930000 X@1ED1E4D50202@. JUN ;00940000 X@1FD1E4D30220@. JUL ;00950000 X@1FC1E4C7023F@. AUG ;00960000 X'1EE2C5D7025E'. SEP ;00970000 X'1FD6C3E3027C'. OCT 0ABS0000 @U1GMT ENT 2000. 00990000 @U1TYM ENT 1200. 01000000 @U1MID ENT X@000001E0@. 480 01010000 @C0CLO ENT X@000004B0@. 1200 01020000 @U1ZID ENT X'00000000'. 01030000 @IFLTN ENT X@00000000000000@. 01040000 @CFLTN ENT 0000. 01050000 @DFLTN ENT 0000. 01060000 @PFLTN ENT 0000. 01070000 @GMTDA ENT X'0120'. 288 01080000 @NARAV ENT X'0000'. 01090000
@NRDDP ENT X@0007@. 01100000 @NRFMA ENT X@0000@. 01110000 @NRGDP ENT X'011F'. 287 01120000 @N9ARS ENT X'011F'. 287 01130000 @C0DEF ENT X'00'. 01140000 @U1DAY ENT X'0120'. 288 01150000 @U1DMO ENT X'011F'. 287 01160000 @NBADT ENT X@0000C9@. 01170000 @TTHDM ENT 120017OCT. 01180000 @GMTDY ENT 17OCT. 01190000 @C0TOL ENT X'00'. 01200000 @U1DMT ENT 17OCT. 01210000 @VCHEK ENT X'00'. 01220000 @VSTAT ENT I. 01230000 GEND 01240000 SDMU ENTER GL0BD0000001,TPF DEV,70131 01250000 GL0BD GSTAR 1. 01260000 BSTA06 ENT (#GL0BL)35. 01270000 0 ENT X@C7D303@. 01280000 @FQMIN ENT X'03E8'. 01290000 @FTADR ENT X'0000000000000000'. 01300000 @FQADJ ENT X'0000'. 01310000 @FQNCS ENT X'0096'. 01320000 @TMSLR ENT X'00000101'. 01330000 @FQCTX ENT X'0008'. 01340000 @ISNAM ENT TPF AIR. 01350000 GEND 01360000 SDMU ENTER GL0BE0000001,TPF DEV,70131 01370000 GL0BE GSTAR 1. 01380000 BSTA06 ENT (#GL0BL)36. 01390000 0 ENT X@C7D30304@. 01400000 @F1KEY ENT X'0000'. 01410000 @TMACT ENT X'00'. 01420000 @HIORD ENT X'0000'. 01430000 @TKTNO ENT X'00000000'. 01440000 @COIBM ENT 01450000 GEND 01460000 SDMU ENTER GL0BF0000001,TPF DEV,70131 01470000 GL0BF GSTAR 1. 01480000 BSTA06 ENT (#GL0BL)37. 01490000 0 ENT X@C7D303@. 01500000 GEND 01510000 SDMU ENTER GL0BG0000001,TPF DEV,70131 01520000 GL0BG GSTAR 1. 01530000 BSTA06 ENT (#GL0BL)38. 01540000 0 ENT X@C7D30304@. 01550000 GEND 01560000 SDMU ENTER GL0BP0000001 01570000 GL0BP GSTAR 1. 01580000 BSTA06 ENT (#GL0BL)62. 01590000 0 ENT X'C7D3'. 01600000 GEND 01610000 SDMU ENTER GL0BQ0000001 01620000 GL0BQ GSTAR 1. 01630000 BSTA06 ENT (#GL0BL)63. 01640000 0 ENT X@C7D3@. 01650000
The following coding examples are illustrations, not the definitive method for using the SYNCC macro; they should be consulted only as examples. TPF General Macros contains a detailed explanation of the SYNCC macro.
Updating a single synchronizable field requires the insertion of the SYNCC macro at 2 points in the logic. The synchronization macro usually replaces the GLMOD and FILKW macros.
In the following example, the field @AFIELD is locked (statement 7), and the main storage copy is refreshed from the file copy. The protection key is set to the value appropriate for the field, and control is returned to the problem program at the next sequential instruction. A hold is maintained on the file copy of the record for the field by the processor. The request to synchronize the field between all processors is issued in statement 14. The protection key is returned appropriately for the problem program. The synchronization process for the other active processors is initiated by filing the synchronization copy of the field, sending messages to the other active processors, and releasing the hold on the synchronization record.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7... 1) . 2) . 3) LABEL GLOBZ REGR=R1 4) . 5) . 6) . 7) LABEL1 SYNCC LOCK,@AFIELD 8) . ** ** 9) . ** Logic may not modify working storage ** 10) . ** without the proper use of GLMOD and ** 11) . ** FILKW macros. ** 12) . ** ** 13) ST RG5,@AFIELD Update the single field 14) LABEL2 SYNCC SYNC,@AFIELD 15) . 16) .
Requests to update multiple synchronizable fields must be done serially. Inserting a SYNCC macro before and after each field update request will substantially increase the size of a program. To avoid issuing many SYNCC macros, the database design should be reevaluated in an LC system. GLMOD and FILKW macros may have to remain in the program to properly update nonsynchronizable fields or records. Two synchronized fields cannot be updated with a single SYNCC macro call.
In the following example, the field @AFIELD is locked (statement 6), and the main storage copy is refreshed from the file copy. The protection key is set to the value appropriate for the field, and control is returned to the problem program at the next sequential instruction. A hold is maintained on the file copy of the record for the field by the processor. The request to synchronize the field between all processors is issued in statement 14. The protection key is returned appropriately for the problem program. The synchronization process for the other active processors is initiated by filing the synchronization copy of the field, sending messages to the other active processors and releasing the hold on the synchronization record. The entire process is repeated for @BFIELD.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7... 1) . 2) . 3) LABEL GLOBZ REGR=R1 4) . 5) . 6) LABEL1 SYNCC LOCK,@AFIELD 7) . 8) . ** ** 9) . ** Logic may not modify working storage ** 10) . ** without the proper use of GLMOD and ** 11) . ** FILKW macros. ** 12) . ** ** 13) ST RG5,@AFIELD Update single field 14) LABEL2 SYNCC SYNC,@AFIELD 15) . 16) . ** Additional logic ** 17) . 18) LABEL3 SYNCC LOCK,@BFIELD 19) . ** ** 20) . ** Logic may not modify working storage ** 21) . ** without the proper use of GLMOD and ** 22) . ** FILKW macros. ** 23) . ** ** 24) ST RG5,@BFIELD Update single field 25) LABEL4 SYNCC SYNC,@BFIELD 26) . 27) .
In this example, the field @AFIELD is locked (statement 6) and the main storage copy is refreshed from the file copy. The protection key is set to the value appropriate for the field and control is returned to the problem program at the next sequential instruction. A hold is maintained on the file copy of the record for the field by the processor. In following code (statements 7 through 12), the program properly addresses the field, modifies the data, and in this example, uses a store register to update the field (statement 13). The request to synchronize the field across all processors is then issued (statement 14) and the program continues. As a result of the request for synchronization (statement 14), the protection key is returned appropriately for the problem program and the synchronization process for the other active processors is initiated by filing the synchronization copy of the field, sending messages to the other active processors, and releasing the hold on the synchronization record. The update to @BFIELD is by conventional use of the GLMOD and FILKW macros.
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7... 1) . 2) . 3) LABEL GLOBZ REGR=R1 4) . 5) . 6) LABEL1 SYNCC LOCK,@AFIELD 7) . 8) . ** ** 9) . ** Logic may not modify working storage ** 10) . ** without the proper use of GLMOD and ** 11) . ** FILKW macros. ** 12) . ** ** 13) ST RG5,@AFIELD Update single field 14) LABEL2 SYNCC SYNC,@AFIELD 15) . 16) . ** Additional logic ** 17) . 18) LABEL3 GLMOD 19) . 20) . ** ** 21) . ** Logic may not modify working storage ** 22) . ** without the proper use of GLMOD and ** 23) . ** FILKW macros. ** 24) . ** ** 25) . ST RG5,@BFIELD Update single field 26) LABEL4 FILKW R,@GBLCC 27) . 28) .