| 1 | 000100 IDENTIFICATION DIVISION. 00010012 |
| 2 | 000200 PROGRAM-ID. CODATE01 IS INITIAL. 00020012 |
| 3 | 000300 AUTHOR. AWS. 00030012 |
| 4 | 000400 DATE-WRITTEN. 03/21. 00040012 |
| 5 | 000500 DATE-COMPILED. 00050012 |
| 6 | 000600 00060012 |
| 7 | 000700 ENVIRONMENT DIVISION. 00070012 |
| 8 | 000800 00080012 |
| 9 | 000900 DATA DIVISION. 00090012 |
| 10 | 001000 00100012 |
| 11 | 001100 WORKING-STORAGE SECTION. 00110012 |
| 12 | 001700 00120012 |
| 13 | 001800 01 WS-MQ-MSG-FLAG PIC X(01) VALUE 'N'. 00130012 |
| 14 | 001900 88 NO-MORE-MSGS VALUE 'Y'. 00140012 |
| 15 | 002000 00150012 |
| 16 | 002100 01 WS-RESP-QUEUE-STS PIC X(01) VALUE 'N'. 00160012 |
| 17 | 002200 88 RESP-QUEUE-OPEN VALUE 'Y'. 00170012 |
| 18 | 002300 00180012 |
| 19 | 002400 01 WS-ERR-QUEUE-STS PIC X(01) VALUE 'N'. 00190012 |
| 20 | 002500 88 ERR-QUEUE-OPEN VALUE 'Y'. 00200012 |
| 21 | 002600 00210012 |
| 22 | 002700 01 WS-REPLY-QUEUE-STS PIC X(01) VALUE 'N'. 00220012 |
| 23 | 002800 88 REPLY-QUEUE-OPEN VALUE 'Y'. 00230012 |
| 24 | 002900 00240012 |
| 25 | 003700 00250012 |
| 26 | 003800 01 WS-CICS-RESP-CDS. 00260012 |
| 27 | 003900 05 WS-CICS-RESP1-CD PIC S9(08) COMP VALUE ZERO. 00270012 |
| 28 | 004000 05 WS-CICS-RESP2-CD PIC S9(08) COMP VALUE ZERO. 00280012 |
| 29 | 004300 05 WS-CICS-RESP1-CD-D PIC 9(08) VALUE ZERO. 00290012 |
| 30 | 004400 05 WS-CICS-RESP2-CD-D PIC 9(08) VALUE ZERO. 00300012 |
| 31 | 004500 00310012 |
| 32 | 004600*********************************************** 00320012 |
| 33 | 004700** DATE FIELDS ** 00330012 |
| 34 | 004800*********************************************** 00340012 |
| 35 | 004900 01 WS-DATE-TIME. 00350012 |
| 36 | 005000 10 WS-ABS-TIME PIC S9(15) COMP-3 VALUE ZERO. 00360012 |
| 37 | 005100 10 WS-MMDDYYYY PIC X(10) VALUE SPACES. 00370012 |
| 38 | 005200 10 WS-TIME PIC X(8) VALUE SPACES. 00380012 |
| 39 | 004600*********************************************** 00390012 |
| 40 | 004700** MQ FIELDS ** 00400012 |
| 41 | 004800*********************************************** 00410012 |
| 42 | 005000 01 MQ-QUEUE PIC X(48). 00420012 |
| 43 | 005100 01 MQ-QUEUE-REPLY PIC X(48). 00430012 |
| 44 | 005200 01 MQ-HCONN PIC S9(09) BINARY VALUE 0. 00440012 |
| 45 | 005300 01 MQ-CONDITION-CODE PIC S9(09) BINARY VALUE 0. 00450012 |
| 46 | 005400 01 MQ-REASON-CODE PIC S9(09) BINARY VALUE 0. 00460012 |
| 47 | 005500 01 MQ-HOBJ PIC S9(09) BINARY VALUE 0. 00470012 |
| 48 | 005600 01 MQ-OPTIONS PIC S9(09) BINARY VALUE 0. 00480012 |
| 49 | 005700 01 MQ-BUFFER-LENGTH PIC S9(09) BINARY. 00490012 |
| 50 | 005800 01 MQ-BUFFER PIC X(1000). 00500012 |
| 51 | 005900 01 MQ-DATA-LENGTH PIC S9(09) BINARY. 00510012 |
| 52 | 006000 01 MQ-CORRELID PIC X(24). 00520012 |
| 53 | 006100 01 MQ-MSG-ID PIC X(24). 00530012 |
| 54 | 006200 01 MQ-MSG-COUNT PIC 9(09). 00540012 |
| 55 | 006300 01 SAVE-CORELID PIC X(24). 00550012 |
| 56 | 006400 01 SAVE-MSGID PIC X(24). 00560012 |
| 57 | 006500 01 SAVE-REPLY2Q PIC X(48). 00570012 |
| 58 | 006600 01 MQ-ERR-DISPLAY. 00580012 |
| 59 | 006700 05 MQ-ERROR-PARA PIC X(25) . 00590012 |
| 60 | 006800 05 FILLER PIC X(02) VALUE SPACES. 00600012 |
| 61 | 006900 05 MQ-APPL-RETURN-MESSAGE PIC X(25). 00610012 |
| 62 | 007000 05 FILLER PIC X(02) VALUE SPACES. 00620012 |
| 63 | 007100 05 MQ-APPL-CONDITION-CODE PIC 9(02). 00630012 |
| 64 | 007200 05 FILLER PIC X(02) VALUE SPACES. 00640012 |
| 65 | 007300 05 MQ-APPL-REASON-CODE PIC 9(05). 00650012 |
| 66 | 007400 05 FILLER PIC X(02) VALUE SPACES. 00660012 |
| 67 | 007500 05 MQ-APPL-QUEUE-NAME PIC X(48). 00670012 |
| 68 | 007600 00680012 |
| 69 | 007700 00690012 |
| 70 | 007800 01 MQ-GET-MESSAGE-OPTIONS. 00700012 |
| 71 | 007900 COPY CMQGMOV. 00710012 |
| 72 | 008000 00720012 |
| 73 | 008100 00730012 |
| 74 | 008200 01 MQ-PUT-MESSAGE-OPTIONS. 00740012 |
| 75 | 008300 COPY CMQPMOV. 00750012 |
| 76 | 008400 00760012 |
| 77 | 008500 00770012 |
| 78 | 008600 01 MQ-MESSAGE-DESCRIPTOR. 00780012 |
| 79 | 008700 COPY CMQMDV. 00790012 |
| 80 | 008800 00800012 |
| 81 | 008900 00810012 |
| 82 | 009000 01 MQ-OBJECT-DESCRIPTOR. 00820012 |
| 83 | 009100 COPY CMQODV. 00830012 |
| 84 | 009200 00840012 |
| 85 | 009300 00850012 |
| 86 | 009400 01 MQ-CONSTANTS. 00860012 |
| 87 | 009500 COPY CMQV. 00870012 |
| 88 | 009600 00880012 |
| 89 | 009700 01 MQ-GET-QUEUE-MESSAGE. 00890012 |
| 90 | 009800 COPY CMQTML. 00900012 |
| 91 | 009900 00910012 |
| 92 | 010000 01 QUEUE-INFO. 00920012 |
| 93 | 010100 05 QMGR-NAME PIC X(48) VALUE SPACES. 00930012 |
| 94 | 010200 05 INPUT-QUEUE-NAME PIC X(48) VALUE SPACES. 00940012 |
| 95 | 010300 05 REPLY-QUEUE-NAME PIC X(48) VALUE SPACES. 00950012 |
| 96 | 010400 05 ERROR-QUEUE-NAME PIC X(48) VALUE SPACES. 00960012 |
| 97 | 010500 00970012 |
| 98 | 010600 01 INPUT-QUEUE-HANDLE PIC S9(09) BINARY VALUE 0. 00980012 |
| 99 | 010700 00990012 |
| 100 | 010800 01 OUTPUT-QUEUE-HANDLE PIC S9(09) BINARY VALUE 0. 01000012 |
| 101 | 010900 01010012 |
| 102 | 011000 01 ERROR-QUEUE-HANDLE PIC S9(09) BINARY VALUE 0. 01020012 |
| 103 | 011100 01030012 |
| 104 | 011200 01 QMGR-HANDLE-CONN PIC S9(09) BINARY VALUE 0. 01040012 |
| 105 | 011300 01 QUEUE-MESSAGE PIC X(1000). 01050012 |
| 106 | 011400 01 REQUEST-MESSAGE PIC X(1000). 01060012 |
| 107 | 011500 01 REPLY-MESSAGE PIC X(1000). 01070012 |
| 108 | 011600 01 ERROR-MESSAGE PIC X(1000). 01080012 |
| 109 | 011700 01 REQUEST-MSG-COPY. 01090012 |
| 110 | 011700 10 WS-FUNC PIC X(04) VALUE SPACES. 01100012 |
| 111 | 011700 10 WS-KEY PIC 9(11) VALUE ZEROES. 01110012 |
| 112 | 011700 10 WS-FILLER PIC X(985) VALUE SPACES. 01120012 |
| 113 | 011800 01130012 |
| 114 | 01 WS-VARIABLES. 01140012 |
| 115 | 05 LIT-ACCTFILENAME PIC X(8) 01150012 |
| 116 | VALUE 'ACCTDAT '. 01160012 |
| 117 | 05 WS-RESP-CD PIC S9(09) COMP 01170012 |
| 118 | VALUE ZEROS. 01180012 |
| 119 | 05 WS-REAS-CD PIC S9(09) COMP 01190012 |
| 120 | VALUE ZEROS. 01200012 |
| 121 | 01210012 |
| 122 | 011900 01220012 |
| 123 | 012000 LINKAGE SECTION. 01230012 |
| 124 | 012100 01240012 |
| 125 | 012200 PROCEDURE DIVISION. 01250012 |
| 126 | 012300 01260012 |
| 127 | 012400 1000-CONTROL. 01270012 |
| 128 | 012500 01280012 |
| 129 | 013600 MOVE SPACES TO 01290012 |
| 130 | 013700 INPUT-QUEUE-NAME 01300012 |
| 131 | 013800 QMGR-NAME 01310012 |
| 132 | 013900 QUEUE-MESSAGE 01320012 |
| 133 | 014000 01330012 |
| 134 | 014100 INITIALIZE MQ-ERR-DISPLAY 01340012 |
| 135 | 014200 01350012 |
| 136 | 014600 PERFORM 2100-OPEN-ERROR-QUEUE 01360012 |
| 137 | 015300******************************************************************01370012 |
| 138 | 015400* GET THE QUEUE NAME WHICH STARTED THE TRANSACTION *01380012 |
| 139 | 015500******************************************************************01390012 |
| 140 | 015600 EXEC CICS RETRIEVE 01400012 |
| 141 | 015700 INTO(MQTM) 01410012 |
| 142 | 015800 RESP(WS-CICS-RESP1-CD) 01420012 |
| 143 | 015900 RESP2(WS-CICS-RESP2-CD) 01430012 |
| 144 | 016000 END-EXEC 01440012 |
| 145 | 016100 IF WS-CICS-RESP1-CD = DFHRESP(NORMAL) 01450012 |
| 146 | 016200 MOVE MQTM-QNAME TO INPUT-QUEUE-NAME 01460012 |
| 147 | 016300 MOVE 'CARD.DEMO.REPLY.DATE' TO REPLY-QUEUE-NAME 01470012 |
| 148 | 016400 ELSE 01480012 |
| 149 | 016500 MOVE 'CICS RETRIEVE' TO MQ-ERROR-PARA 01490012 |
| 150 | 016600 MOVE WS-CICS-RESP1-CD TO WS-CICS-RESP1-CD-D 01500012 |
| 151 | 016700 MOVE WS-CICS-RESP2-CD TO WS-CICS-RESP2-CD 01510012 |
| 152 | 016800 STRING 'RESP: ', WS-CICS-RESP1-CD-D , WS-CICS-RESP2-CD-D, 01520012 |
| 153 | 016900 'END' DELIMITED BY SIZE 01530012 |
| 154 | 017000 INTO MQ-APPL-RETURN-MESSAGE 01540012 |
| 155 | 017100 END-STRING 01550012 |
| 156 | 017200 01560012 |
| 157 | PERFORM 9000-ERROR 01570012 |
| 158 | 017400 PERFORM 8000-TERMINATION 01580012 |
| 159 | 017500 END-IF 01590012 |
| 160 | 014500 01600012 |
| 161 | 014800 PERFORM 2300-OPEN-INPUT-QUEUE 01610012 |
| 162 | 014900 PERFORM 2400-OPEN-OUTPUT-QUEUE 01620012 |
| 163 | 012700 PERFORM 3000-GET-REQUEST 01630012 |
| 164 | 012800 PERFORM 4000-MAIN-PROCESS UNTIL 01640012 |
| 165 | 012900 NO-MORE-MSGS 01650012 |
| 166 | 013000 01660012 |
| 167 | 013100 PERFORM 8000-TERMINATION. 01670012 |
| 168 | 013200 01680012 |
| 169 | 015000 . 01690012 |
| 170 | 015100 01700012 |
| 171 | 017800 2300-OPEN-INPUT-QUEUE. 01710012 |
| 172 | 017900* OPEN-INPUT WILL OPEN A QUEUE FOR GET PROCESSING 01720012 |
| 173 | 018000 01730012 |
| 174 | 018400 01740012 |
| 175 | 018500 MOVE SPACES TO MQOD-OBJECTQMGRNAME 01750012 |
| 176 | 018600 MOVE INPUT-QUEUE-NAME TO MQOD-OBJECTNAME 01760012 |
| 177 | 018700 01770012 |
| 178 | 018800 COMPUTE MQ-OPTIONS = MQOO-INPUT-SHARED 01780012 |
| 179 | 018900 + MQOO-SAVE-ALL-CONTEXT 01790012 |
| 180 | 019000 + MQOO-FAIL-IF-QUIESCING 01800012 |
| 181 | 019100 01810012 |
| 182 | 019200 CALL 'MQOPEN' USING QMGR-HANDLE-CONN 01820012 |
| 183 | 019300 MQ-OBJECT-DESCRIPTOR 01830012 |
| 184 | 019400 MQ-OPTIONS 01840012 |
| 185 | 019500 MQ-HOBJ 01850012 |
| 186 | 019600 MQ-CONDITION-CODE 01860012 |
| 187 | 019700 MQ-REASON-CODE 01870012 |
| 188 | 019800 01880012 |
| 189 | 019900 EVALUATE MQ-CONDITION-CODE 01890012 |
| 190 | 020000 WHEN MQCC-OK 01900012 |
| 191 | 020100 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 01910012 |
| 192 | 020200 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 01920012 |
| 193 | 020300 MOVE MQ-HOBJ TO INPUT-QUEUE-HANDLE 01930012 |
| 194 | 020400 SET REPLY-QUEUE-OPEN TO TRUE 01940012 |
| 195 | 020500 WHEN OTHER 01950012 |
| 196 | 020600 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 01960012 |
| 197 | 020700 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 01970012 |
| 198 | 020800 MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 01980012 |
| 199 | 020900 MOVE 'INP MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE 01990012 |
| 200 | 021000 PERFORM 9000-ERROR 02000012 |
| 201 | 021100 PERFORM 8000-TERMINATION 02010012 |
| 202 | 021200 END-EVALUATE. 02020012 |
| 203 | 021300 02030012 |
| 204 | 021400 2400-OPEN-OUTPUT-QUEUE. 02040012 |
| 205 | 021500 02050012 |
| 206 | 021600* OPEN-OUTPUT WILL OPEN A QUEUE FOR PUT PROCESSING 02060012 |
| 207 | 021700 02070012 |
| 208 | 022100 02080012 |
| 209 | 022200 MOVE SPACES TO MQOD-OBJECTQMGRNAME 02090012 |
| 210 | 022300 MOVE REPLY-QUEUE-NAME TO MQOD-OBJECTNAME 02100012 |
| 211 | 022400 02110012 |
| 212 | 022500 COMPUTE MQ-OPTIONS = MQOO-OUTPUT 02120012 |
| 213 | 022600 + MQOO-PASS-ALL-CONTEXT 02130012 |
| 214 | 022700 + MQOO-FAIL-IF-QUIESCING 02140012 |
| 215 | 022800 02150012 |
| 216 | 022900 CALL 'MQOPEN' USING QMGR-HANDLE-CONN 02160012 |
| 217 | 023000 MQ-OBJECT-DESCRIPTOR 02170012 |
| 218 | 023100 MQ-OPTIONS 02180012 |
| 219 | 023200 MQ-HOBJ 02190012 |
| 220 | 023300 MQ-CONDITION-CODE 02200012 |
| 221 | 023400 MQ-REASON-CODE 02210012 |
| 222 | 023500 02220012 |
| 223 | 023600 EVALUATE MQ-CONDITION-CODE 02230012 |
| 224 | 023700 WHEN MQCC-OK 02240012 |
| 225 | 023800 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 02250012 |
| 226 | 023900 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 02260012 |
| 227 | 024000 MOVE MQ-HOBJ TO OUTPUT-QUEUE-HANDLE 02270012 |
| 228 | 024100 SET RESP-QUEUE-OPEN TO TRUE 02280012 |
| 229 | 024200 WHEN OTHER 02290012 |
| 230 | 024300 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 02300012 |
| 231 | 024400 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 02310012 |
| 232 | 024500 MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 02320012 |
| 233 | 024600 MOVE 'OUT MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE 02330012 |
| 234 | 024700 PERFORM 9000-ERROR 02340012 |
| 235 | 024800 PERFORM 8000-TERMINATION 02350012 |
| 236 | 024900 END-EVALUATE. 02360012 |
| 237 | 025000 02370012 |
| 238 | 025100 2100-OPEN-ERROR-QUEUE. 02380012 |
| 239 | 025200 02390012 |
| 240 | 025300* OPEN-OUTPUT WILL OPEN A QUEUE FOR PUT PROCESSING 02400012 |
| 241 | 025400 02410012 |
| 242 | 025800 02420012 |
| 243 | 025900 MOVE 'CARD.DEMO.ERROR' TO ERROR-QUEUE-NAME 02430012 |
| 244 | 026000 MOVE SPACES TO MQOD-OBJECTQMGRNAME 02440012 |
| 245 | 026100 MOVE ERROR-QUEUE-NAME TO MQOD-OBJECTNAME 02450012 |
| 246 | 026200 02460012 |
| 247 | 026300 COMPUTE MQ-OPTIONS = MQOO-OUTPUT 02470012 |
| 248 | 026400 + MQOO-PASS-ALL-CONTEXT 02480012 |
| 249 | 026500 + MQOO-FAIL-IF-QUIESCING 02490012 |
| 250 | 026600 02500012 |
| 251 | 026700 CALL 'MQOPEN' USING QMGR-HANDLE-CONN 02510012 |
| 252 | 026800 MQ-OBJECT-DESCRIPTOR 02520012 |
| 253 | 026900 MQ-OPTIONS 02530012 |
| 254 | 027000 MQ-HOBJ 02540012 |
| 255 | 027100 MQ-CONDITION-CODE 02550012 |
| 256 | 027200 MQ-REASON-CODE 02560012 |
| 257 | 027300 02570012 |
| 258 | 027400 EVALUATE MQ-CONDITION-CODE 02580012 |
| 259 | 027500 WHEN MQCC-OK 02590012 |
| 260 | 027600 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 02600012 |
| 261 | 027700 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 02610012 |
| 262 | 027800 MOVE MQ-HOBJ TO ERROR-QUEUE-HANDLE 02620012 |
| 263 | 027900 SET ERR-QUEUE-OPEN TO TRUE 02630012 |
| 264 | 028000 WHEN OTHER 02640012 |
| 265 | 028100 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 02650012 |
| 266 | 028200 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 02660012 |
| 267 | 028300 MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 02670012 |
| 268 | 028400 MOVE 'ERR MQOPEN ERR' TO MQ-APPL-RETURN-MESSAGE 02680012 |
| 269 | 028500 DISPLAY MQ-ERR-DISPLAY 02690012 |
| 270 | 028600 PERFORM 8000-TERMINATION 02700012 |
| 271 | 028700 END-EVALUATE. 02710012 |
| 272 | 028800 02720012 |
| 273 | 028900 02730012 |
| 274 | 029000 4000-MAIN-PROCESS. 02740012 |
| 275 | 029100 EXEC CICS 02750012 |
| 276 | 029200 SYNCPOINT 02760012 |
| 277 | 029300 END-EXEC 02770012 |
| 278 | 029400 02780012 |
| 279 | 029500 PERFORM 3000-GET-REQUEST 02790012 |
| 280 | 029600 . 02800012 |
| 281 | 029700 02810012 |
| 282 | 029800 02820012 |
| 283 | 029900 3000-GET-REQUEST. 02830012 |
| 284 | 030000* GET WILL GET A MESSAGE FROM THE QUEUE 02840012 |
| 285 | 030700*** ADDED 5000 MS (5 SECS) AS THE WAIT INTERVAL FOR GET 02850012 |
| 286 | 030800 MOVE 5000 TO MQGMO-WAITINTERVAL 02860012 |
| 287 | 030900 MOVE SPACES TO MQ-CORRELID 02870012 |
| 288 | 031000 MOVE SPACES TO MQ-MSG-ID 02880012 |
| 289 | 031100 MOVE INPUT-QUEUE-NAME TO MQ-QUEUE 02890012 |
| 290 | 031200 MOVE INPUT-QUEUE-HANDLE TO MQ-HOBJ 02900012 |
| 291 | 031300 MOVE 1000 TO MQ-BUFFER-LENGTH 02910012 |
| 292 | 031400 MOVE MQMI-NONE TO MQMD-MSGID 02920012 |
| 293 | 031500 MOVE MQCI-NONE TO MQMD-CORRELID 02930012 |
| 294 | 031500 INITIALIZE REQUEST-MSG-COPY REPLACING NUMERIC BY ZEROES 02940012 |
| 295 | 031600 02950012 |
| 296 | 031700 COMPUTE MQGMO-OPTIONS = MQGMO-SYNCPOINT 02960012 |
| 297 | 031800 + MQGMO-FAIL-IF-QUIESCING 02970012 |
| 298 | 031900 + MQGMO-CONVERT 02980012 |
| 299 | 032000 + MQGMO-WAIT 02990012 |
| 300 | 032100 03000012 |
| 301 | 032200 CALL 'MQGET' USING MQ-HCONN 03010012 |
| 302 | 032300 MQ-HOBJ 03020012 |
| 303 | 032400 MQ-MESSAGE-DESCRIPTOR 03030012 |
| 304 | 032500 MQ-GET-MESSAGE-OPTIONS 03040012 |
| 305 | 032600 MQ-BUFFER-LENGTH 03050012 |
| 306 | 032700 MQ-BUFFER 03060012 |
| 307 | 032800 MQ-DATA-LENGTH 03070012 |
| 308 | 032900 MQ-CONDITION-CODE 03080012 |
| 309 | 033000 MQ-REASON-CODE 03090012 |
| 310 | 033100 03100012 |
| 311 | 033200 03110012 |
| 312 | 033300 IF MQ-CONDITION-CODE = MQCC-OK 03120012 |
| 313 | 033400 MOVE MQMD-MSGID TO MQ-MSG-ID 03130012 |
| 314 | 033500 MOVE MQMD-CORRELID TO MQ-CORRELID 03140012 |
| 315 | 033600 MOVE MQMD-REPLYTOQ TO MQ-QUEUE-REPLY 03150012 |
| 316 | 033700 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 03160012 |
| 317 | 033800 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 03170012 |
| 318 | 033900 MOVE MQ-BUFFER TO REQUEST-MESSAGE 03180012 |
| 319 | 034000 MOVE MQ-CORRELID TO SAVE-CORELID 03190012 |
| 320 | 034100 MOVE MQ-QUEUE-REPLY TO SAVE-REPLY2Q 03200012 |
| 321 | 034200 MOVE MQ-MSG-ID TO SAVE-MSGID 03210012 |
| 322 | 034300 MOVE REQUEST-MESSAGE TO REQUEST-MSG-COPY 03220012 |
| 323 | 034400 PERFORM 4000-PROCESS-REQUEST-REPLY 03230012 |
| 324 | 034500 ADD 1 TO MQ-MSG-COUNT 03240012 |
| 325 | 034600 ELSE 03250012 |
| 326 | 034700 IF MQ-REASON-CODE = MQRC-NO-MSG-AVAILABLE 03260012 |
| 327 | 034800 SET NO-MORE-MSGS TO TRUE 03270012 |
| 328 | 034900 03280012 |
| 329 | 035000 ELSE 03290012 |
| 330 | 035100 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 03300012 |
| 331 | 035200 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 03310012 |
| 332 | 035300 MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 03320012 |
| 333 | 035400 MOVE 'INP MQGET ERR:' TO MQ-APPL-RETURN-MESSAGE 03330012 |
| 334 | 035500 PERFORM 9000-ERROR 03340012 |
| 335 | 035600 PERFORM 8000-TERMINATION 03350012 |
| 336 | 035700 END-IF 03360012 |
| 337 | 035800 END-IF. 03370012 |
| 338 | 035900 03380012 |
| 339 | 036000 4000-PROCESS-REQUEST-REPLY. 03390012 |
| 340 | 036100 MOVE SPACES TO REPLY-MESSAGE 03400012 |
| 341 | 036100 INITIALIZE WS-DATE-TIME REPLACING NUMERIC BY ZEROES 03410012 |
| 342 | 036100 03420012 |
| 343 | 036100 EXEC CICS ASKTIME 03430012 |
| 344 | 036100 ABSTIME (WS-ABS-TIME) 03440012 |
| 345 | 036100 END-EXEC 03450012 |
| 346 | 036100 03460012 |
| 347 | 036100 EXEC CICS FORMATTIME 03470012 |
| 348 | 036100 ABSTIME(WS-ABS-TIME) 03480012 |
| 349 | 036100 MMDDYYYY(WS-MMDDYYYY) 03490012 |
| 350 | 036100 DATESEP('-') 03500012 |
| 351 | 036100 TIME(WS-TIME) 03510012 |
| 352 | 036100 TIMESEP 03520012 |
| 353 | 036100 END-EXEC 03530012 |
| 354 | 036100 03540012 |
| 355 | 036200 STRING 'SYSTEM DATE : ' WS-MMDDYYYY 03550012 |
| 356 | 036200 'SYSTEM TIME : ' WS-TIME 03560012 |
| 357 | 036200 DELIMITED BY SIZE 03570012 |
| 358 | 036400 INTO 03580012 |
| 359 | 036500 REPLY-MESSAGE 03590012 |
| 360 | 036600 END-STRING 03600012 |
| 361 | PERFORM 4100-PUT-REPLY 03610012 |
| 362 | 036100 03620012 |
| 363 | 036100 03630012 |
| 364 | 036800 . 03640012 |
| 365 | 036900 03650012 |
| 366 | 037000 4100-PUT-REPLY. 03660012 |
| 367 | 037100 03670012 |
| 368 | 037200* PUT WILL PUT A MESSAGE ON THE QUEUE AND CONVERT IT TO A STRING 03680012 |
| 369 | 037300 03690012 |
| 370 | 037600 03700012 |
| 371 | 037700 MOVE REPLY-MESSAGE TO MQ-BUFFER 03710012 |
| 372 | 037800 MOVE 1000 TO MQ-BUFFER-LENGTH 03720012 |
| 373 | 037900 MOVE SAVE-MSGID TO MQMD-MSGID 03730012 |
| 374 | 038000 MOVE SAVE-CORELID TO MQMD-CORRELID 03740012 |
| 375 | 038100 MOVE MQFMT-STRING TO MQMD-FORMAT 03750012 |
| 376 | 038200 03760012 |
| 377 | 038300 COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGR 03770012 |
| 378 | 038400 03780012 |
| 379 | 038500 COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT 03790012 |
| 380 | 038600 + MQPMO-DEFAULT-CONTEXT 03800012 |
| 381 | 038700 + MQPMO-FAIL-IF-QUIESCING 03810012 |
| 382 | 038800 03820012 |
| 383 | 038900 CALL 'MQPUT' USING MQ-HCONN 03830012 |
| 384 | 039000 OUTPUT-QUEUE-HANDLE 03840012 |
| 385 | 039100 MQ-MESSAGE-DESCRIPTOR 03850012 |
| 386 | 039200 MQ-PUT-MESSAGE-OPTIONS 03860012 |
| 387 | 039300 MQ-BUFFER-LENGTH 03870012 |
| 388 | 039400 MQ-BUFFER 03880012 |
| 389 | 039500 MQ-CONDITION-CODE 03890012 |
| 390 | 039600 MQ-REASON-CODE 03900012 |
| 391 | 039700 03910012 |
| 392 | 039800 EVALUATE MQ-CONDITION-CODE 03920012 |
| 393 | 039900 WHEN MQCC-OK 03930012 |
| 394 | 040000 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 03940012 |
| 395 | 040100 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 03950012 |
| 396 | 040200 WHEN OTHER 03960012 |
| 397 | 040300 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 03970012 |
| 398 | 040400 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 03980012 |
| 399 | 040500 MOVE REPLY-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 03990012 |
| 400 | 040600 MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGE 04000012 |
| 401 | 040700 PERFORM 9000-ERROR 04010012 |
| 402 | 040800 PERFORM 8000-TERMINATION 04020012 |
| 403 | 040900 END-EVALUATE. 04030012 |
| 404 | 041000 04040012 |
| 405 | 041100 9000-ERROR. 04050012 |
| 406 | 041200* PUT WILL PUT A MESSAGE ON THE QUEUE AND CONVERT IT TO A STRING 04060012 |
| 407 | 041300 04070012 |
| 408 | 041600 04080012 |
| 409 | 041700 MOVE MQ-ERR-DISPLAY TO ERROR-MESSAGE, 04090012 |
| 410 | 041800 MOVE ERROR-MESSAGE TO MQ-BUFFER 04100012 |
| 411 | 041900 MOVE 1000 TO MQ-BUFFER-LENGTH 04110012 |
| 412 | 042200 MOVE MQFMT-STRING TO MQMD-FORMAT 04120012 |
| 413 | 042300 04130012 |
| 414 | 042400 COMPUTE MQMD-CODEDCHARSETID = MQCCSI-Q-MGR 04140012 |
| 415 | 042500 04150012 |
| 416 | 042600 COMPUTE MQPMO-OPTIONS = MQPMO-SYNCPOINT 04160012 |
| 417 | 042700 + MQPMO-DEFAULT-CONTEXT 04170012 |
| 418 | 042800 + MQPMO-FAIL-IF-QUIESCING 04180012 |
| 419 | 042900 04190012 |
| 420 | 043000 CALL 'MQPUT' USING MQ-HCONN 04200012 |
| 421 | 043100 ERROR-QUEUE-HANDLE 04210012 |
| 422 | 043200 MQ-MESSAGE-DESCRIPTOR 04220012 |
| 423 | 043300 MQ-PUT-MESSAGE-OPTIONS 04230012 |
| 424 | 043400 MQ-BUFFER-LENGTH 04240012 |
| 425 | 043500 MQ-BUFFER 04250012 |
| 426 | 043600 MQ-CONDITION-CODE 04260012 |
| 427 | 043700 MQ-REASON-CODE 04270012 |
| 428 | 043800 04280012 |
| 429 | 043900 EVALUATE MQ-CONDITION-CODE 04290012 |
| 430 | 044000 WHEN MQCC-OK 04300012 |
| 431 | 044100 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04310012 |
| 432 | 044200 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04320012 |
| 433 | 044300 WHEN OTHER 04330012 |
| 434 | 044400 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04340012 |
| 435 | 044500 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04350012 |
| 436 | 044600 MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 04360012 |
| 437 | 044700 MOVE 'MQPUT ERR' TO MQ-APPL-RETURN-MESSAGE 04370012 |
| 438 | 044800 DISPLAY MQ-ERR-DISPLAY 04380012 |
| 439 | 044900 PERFORM 8000-TERMINATION 04390012 |
| 440 | 045000 END-EVALUATE. 04400012 |
| 441 | 045100 . 04410012 |
| 442 | 045200 8000-TERMINATION. 04420012 |
| 443 | 045300 04430012 |
| 444 | 045400 IF REPLY-QUEUE-OPEN 04440012 |
| 445 | 045500 PERFORM 5000-CLOSE-INPUT-QUEUE 04450012 |
| 446 | 045600 END-IF 04460012 |
| 447 | 045700 IF RESP-QUEUE-OPEN 04470012 |
| 448 | 045800 PERFORM 5100-CLOSE-OUTPUT-QUEUE 04480012 |
| 449 | 045900 END-IF 04490012 |
| 450 | 046000 IF ERR-QUEUE-OPEN 04500012 |
| 451 | 046100 PERFORM 5200-CLOSE-ERROR-QUEUE 04510012 |
| 452 | 046200 END-IF 04520012 |
| 453 | 046300 EXEC CICS RETURN END-EXEC 04530012 |
| 454 | 046400 GOBACK. 04540012 |
| 455 | 046500 04550012 |
| 456 | 046600 5000-CLOSE-INPUT-QUEUE. 04560012 |
| 457 | 046700 MOVE INPUT-QUEUE-NAME TO MQ-QUEUE 04570012 |
| 458 | 046800 MOVE INPUT-QUEUE-HANDLE TO MQ-HOBJ 04580012 |
| 459 | 046900 COMPUTE MQ-OPTIONS = MQCO-NONE 04590012 |
| 460 | 047000 04600012 |
| 461 | 047100 CALL 'MQCLOSE' USING MQ-HCONN 04610012 |
| 462 | 047200 MQ-HOBJ 04620012 |
| 463 | 047300 MQ-OPTIONS 04630012 |
| 464 | 047400 MQ-CONDITION-CODE 04640012 |
| 465 | 047500 MQ-REASON-CODE 04650012 |
| 466 | 047600 04660012 |
| 467 | 047700 EVALUATE MQ-CONDITION-CODE 04670012 |
| 468 | 047800 WHEN MQCC-OK 04680012 |
| 469 | 047900 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04690012 |
| 470 | 048000 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04700012 |
| 471 | 048100 WHEN OTHER 04710012 |
| 472 | 048200 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04720012 |
| 473 | 048300 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04730012 |
| 474 | 048400 MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 04740012 |
| 475 | 048500 MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE 04750012 |
| 476 | 048600 PERFORM 8000-TERMINATION 04760012 |
| 477 | 048700 END-EVALUATE. 04770012 |
| 478 | 048800 5100-CLOSE-OUTPUT-QUEUE. 04780012 |
| 479 | 048900 MOVE REPLY-QUEUE-NAME TO MQ-QUEUE 04790012 |
| 480 | 049000 MOVE OUTPUT-QUEUE-HANDLE TO MQ-HOBJ 04800012 |
| 481 | 049100 COMPUTE MQ-OPTIONS = MQCO-NONE 04810012 |
| 482 | 049200 04820012 |
| 483 | 049300 CALL 'MQCLOSE' USING MQ-HCONN 04830012 |
| 484 | 049400 MQ-HOBJ 04840012 |
| 485 | 049500 MQ-OPTIONS 04850012 |
| 486 | 049600 MQ-CONDITION-CODE 04860012 |
| 487 | 049700 MQ-REASON-CODE 04870012 |
| 488 | 049800 04880012 |
| 489 | 049900 EVALUATE MQ-CONDITION-CODE 04890012 |
| 490 | 050000 WHEN MQCC-OK 04900012 |
| 491 | 050100 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04910012 |
| 492 | 050200 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04920012 |
| 493 | 050300 WHEN OTHER 04930012 |
| 494 | 050400 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 04940012 |
| 495 | 050500 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 04950012 |
| 496 | 050600 MOVE INPUT-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 04960012 |
| 497 | 050700 MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE 04970012 |
| 498 | 050800 PERFORM 8000-TERMINATION 04980012 |
| 499 | 050900 END-EVALUATE. 04990012 |
| 500 | 051000 05000012 |
| 501 | 051100 5200-CLOSE-ERROR-QUEUE. 05010012 |
| 502 | 051200 MOVE ERROR-QUEUE-NAME TO MQ-QUEUE 05020012 |
| 503 | 051300 MOVE ERROR-QUEUE-HANDLE TO MQ-HOBJ 05030012 |
| 504 | 051400 COMPUTE MQ-OPTIONS = MQCO-NONE 05040012 |
| 505 | 051500 05050012 |
| 506 | 051600 CALL 'MQCLOSE' USING MQ-HCONN 05060012 |
| 507 | 051700 MQ-HOBJ 05070012 |
| 508 | 051800 MQ-OPTIONS 05080012 |
| 509 | 051900 MQ-CONDITION-CODE 05090012 |
| 510 | 052000 MQ-REASON-CODE 05100012 |
| 511 | 052100 05110012 |
| 512 | 052200 EVALUATE MQ-CONDITION-CODE 05120012 |
| 513 | 052300 WHEN MQCC-OK 05130012 |
| 514 | 052400 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 05140012 |
| 515 | 052500 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 05150012 |
| 516 | 052600 WHEN OTHER 05160012 |
| 517 | 052700 MOVE MQ-CONDITION-CODE TO MQ-APPL-CONDITION-CODE 05170012 |
| 518 | 052800 MOVE MQ-REASON-CODE TO MQ-APPL-REASON-CODE 05180012 |
| 519 | 052900 MOVE ERROR-QUEUE-NAME TO MQ-APPL-QUEUE-NAME 05190012 |
| 520 | 053000 MOVE 'MQCLOSE ERR' TO MQ-APPL-RETURN-MESSAGE 05200012 |
| 521 | 053100 PERFORM 9000-ERROR 05210012 |
| 522 | 053200 PERFORM 8000-TERMINATION 05220012 |
| 523 | 053300 END-EVALUATE. 05230012 |
| 524 | 053400 05240012 |