IDENT BTASK ENTRY BTASK LCC OVERLAY(BTASK,0,0) SST BEGN,CMBL SYSCOM B1 BTASK TITLE BTASK - RECOVER *BTRAN* USERS. *COMMENT BTASK - RECOVER *BTRAN* USERS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. BTASK SPACE 4,10 *** BTASK - RECOVER *BTRAN* USERS. * * E. D. REDIG. 80/10/06. BTASK SPACE 4,25 *** *BTASK* RECOVERS RERUNNABLE *BTRAN* TRANSACTIONS AND * MUST BE INSTALLED ON THE TAF SYSTEM LIBRARY. * * *BTASK* READS THE ENTIRE *CRF* BY ISSUING *TSTAT* REQUESTS * TO OBTAIN INFORMATION ABOUT EACH USER AND PROCESSES THIS * INFORMATION AS FOLLOWS. * * 1. IF THE TRANSACTION TYPE IS NOT A *BTRAN* USER, THEN * READ THE NEXT *CRF* ENTRY. * * 2. IF THE TRANSACTION STEP IS NOT RECOVERABLE, THEN * READ THE NEXT *CRF* ENTRY. * * 3. MOVE THE *OLDID*, *NEWID*, USERNAME, AND *BTRAN* USER * CASE TO THE COMMUNICATION BLOCK. * * 4. ISSUE A *CALLRTN* TO *CTASK* TO RERUN * THE TRANSACTION AND READ THE NEXT *CRF* ENTRY. BTASK SPACE 4,20 *** DAYFILE MESSAGES ISSUED. * * ABNORMAL COMPLETION. * * * BTASK - TAF AUTOMATIC RECOVERY NOT INSTALLED.* * KEYWORD SPECIFIED IN A *TSTAT* REQUEST REQUIRES * *TAF* AUTOMATIC RECOVERY. * * * BTASK - TASK LOGICAL ERROR.* * A LOGICAL ERROR OCCURRED THAT WAS NOT EXPECTED. * * * BTASK - USER NOT DEFINED IN NETWORK FILE.* * THE USER IS NOT DEFINED IN THE NETWORK FILE * ON A *TSTAT* REQUEST. * * * BTASK - XXXXXXX TRANSACTION NOT RERUNNABLE NOW.* * THIS OCCURS WHEN AN I/O ERROR IS DETECTED AND THE * DATA CANNOT BE RECOVERED FOR THE USER XXXXXXX. BTASK SPACE 4,10 *** COMMON DECKS. *CALL COMCMAC *CALL COMKTAF *CALL COMKFLD *CALL COMKIPR *CALL COMKMAC * SAVE ORIGIN COUNTER TO REMOVE COMMON DECK STORAGE * IN *COMKCBD*, *COMKTSC*. BEGN BSS 0 SAVE ORIGIN COUNTER *CALL COMKCBD LIST X *CALL COMKTRF LIST -X *CALL COMKTSC ORG BEGN RESTORE ORIGIN COUNTER BTASK SPACE 4,15 *** COMMUNICATION BLOCK HEADER WORDS AND MESSAGES. * *T TMSW 60/ CASE *T, TMSW+1 60/ RECOVERY FLAG (RF) *T, TMSW+2 60/ OLDID *T, TMSW+3 60/ NEWID *T, TMSW+4 60/ USERNAME * * CASE = 2 RECOVER *BTRAN* USER. * RF IF BIT 59 = 1, *CRM* AUTOMATIC RECOVERY IS USED. * IF BIT 0 = 1, *TAF* AUTOMATIC RECOVERY IS USED. * OLDID = PREVIOUS *CRM* IDENTIFIER. * NEWID = CURRENT *CRM* IDENTIFIER. * USERNAME = ONE-TO-SEVEN CHARACTER USERNAME LEFT-JUSTIFIED * WITH BLANK FILL. BSS CMBL RESERVE SPACE FOR COMMUNICATION BLOCK BTASK SPACE 4,25 ** BTASK - RECOVER *BTRAN* USERS. * * ENTRY BOI OF *CRF*. * * EXIT RERUNNABLE *BTRAN* TRANSACTIONS RECOVERED. * TO *CTASK* TO RERUN TRANSACTIONS AND RETURN. * (TMSW) = RECOVER *BTRAN* USER CASE. * (TMSW+1) = RECOVERY FLAG. * (TMSW+2) = OLDID. * (TMSW+3) = NEWID. * (TMSW+4) = USERNAME. * * ERROR TO *BTA4* IF ERROR ENCOUNTERED. * * USES X - 1, 2, 3, 5, 6, 7. * A - 1, 2, 6, 7. * B - 1, 2, 3, 5. * * CALLS SNM. * * MACROS CALLRTN, CEASE, SCALL. BTASK SB1 1 ENTRY SA2 TNAM SX5 BTAC DAYFILE MESSAGE SA1 BTAW LX2 59-CBSYS BX6 X1 SB3 BTACL MESSAGE LENGTH PL X2,BTA4 IF NOT SYSTEM ORIGIN TRANSACTION SA6 BTAN INITIALIZE *NEXT* FOR *TSTAT* * ISSUE *TSTAT* REQUEST TO OBTAIN STATUS OF TRANSACTION. BTA1 SCALL TSTAT,(BTAL,BTAM,BTAN,BTAO,BTAP,BTAQ,BTAR,BTAS,BTAT,BTA ,U,BTAV) SA1 BTAL GET STATUS OF REQUEST SX5 BTAB DAYFILE MESSAGE SX2 X1-TSRU SB3 BTABL MESSAGE LENGTH ZR X2,BTA4 IF RECOVERY UNAVAILABLE SX2 X1-TSEN ZR X2,BTA5 IF END OF *NEXT* PROCESSING SX5 BTAD DAYFILE MESSAGE SX2 X1-TSUU SB3 BTADL MESSAGE LENGTH ZR X2,BTA4 IF USER UNKNOWN SX5 BTAC DAYFILE MESSAGE SX2 X1-TSNE SB3 BTACL MESSAGE LENGTH NZ X2,BTA4 IF ERRORS IN *TSTAT* SA1 BTAR GET TRANSACTION TYPE SX2 X1-TYBT NZ X2,BTA1 IF NOT *BTRAN* USER SA1 BTAP GET TRANSACTION STEP SX2 X1-CSCD ZR X2,BTA3 IF *CDCS2* DOWN SX2 X1-CSTN NZ X2,BTA2 IF NOT TRANSACTION NO LONGER RERUNNABLE * THIS OCCURS WHEN AN I/O ERROR IS DETECTED AND THE * DATA CANNOT BE RECOVERED FOR THE USER. SB2 1RX SA1 BTAN GET RECOVERY UNIT NAME SB3 BTAX MESSAGE ASSEMBLY AREA SB5 -BTAE RJ SNM SET NAME IN MESSAGE SB3 BTAEL MESSAGE LENGTH SA2 BTAX SCALL TMSG,(A2,B3) SEND MESSAGE TO DAYFILE EQ BTA1 GET NEXT *BTRAN* USER BTA2 PL X2,BTA3 IF STEP IS TO BE RECOVERED EQ BTA1 GET NEXT *BTRAN* USER * ISSUE A *CALLRTN* TO *CTASK* TO RERUN THE TRANSACTION * AND READ THE NEXT *CRF* ENTRY. BTA3 SX6 TYBT SET *BTRAN* USER CASE SA1 BTAT GET *OLDID* SA2 BTAV GET *NEWID* SA6 TMSW STORE CASE IN COMMUNICATION BLOCK BX6 X1 BX7 X2 SA6 TMSW+2 STORE *OLDID* IN COMMUNICATION BLOCK SA7 TMSW+3 STORE *NEWID* IN COMMUNICATION BLOCK SA1 BTAN GET USERNAME BX7 X1 SA7 A7+B1 STORE USERNAME IN COMMUNICATION BLOCK CALLRTN BTAA CALL *CTASK* TO RERUN TRANSACTION EQ BTA1 GET NEXT *BTRAN* USER BTA4 SCALL TMSG,(X5,B3) SEND MESSAGE TO DAYFILE CEASE 2 ABNORMAL CEASE WITH DUMP BTA5 CEASE EXIT TASK WITH CEASE * *CALLRTN* TASK LIST. BTAA DATA 5LCTASK CALL TO *CTASK* CON 0 * DAYFILE MESSAGES. BTAB DATA C* BTASK - TAF AUTOMATIC RECOVERY NOT INSTALLED.* BTABL CON **10-BTAB*10 BTAC DATA C* BTASK - TASK LOGICAL ERROR.* BTACL CON **10-BTAC*10 BTAD DATA C* BTASK - USER NOT DEFINED IN NETWORK FILE.* BTADL CON **10-BTAD*10 BTAE DATA C* BTASK - XXXXXXX TRANSACTION NOT RERUNNABLE NOW.* BTAEL CON **10-BTAE*10 * *TSTAT* REQUEST PARAMETERS. BTAL CON 0 STATUS OF *TSTAT* REQUEST BTAM DATA 4HNEXT BTAN CON 0 NEXT USER FROM *TRF* BTAO DATA 4HSTEP BTAP CON 0 TRANSACTION STEP BTAQ DATA 4HTRAN BTAR CON 0 TRANSACTION TYPE BTAS DATA 5HOLDID BTAT CON 0 PREVIOUS *CRM* IDENTIFIER BTAU DATA 5HNEWID BTAV CON 0 CURRENT *CRM* IDENTIFIER BTAW DATA 1H BLANK WORD BTAX BSSZ 7 DAYFILE MESSAGE ASSEMBLY AREA BTASK SPACE 4,10 ** COMMON DECKS. *CALL COMCSNM END BTASK