RCTASK
          IDENT  RCTASK 
          LCC    OVERLAY(RCTASK,0,0)
          SST    BEGN,CMBL
          ENTRY  RCTASK 
          SYSCOM B1 
          TITLE  RCTASK - RECOVER *CDCS* TRANSACTIONS.
*COMMENT  RCTASK - RECOVER *CDCS* TRANSACTIONS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RCTASK   SPACE  4,10 
***       RCTASK - RECOVER *CDCS* TRANSACTIONS. 
* 
*         E. D. REDIG.       81/06/19.
 RCTASK   SPACE  4,20 
***       *RCTASK* RECOVERS RERUNNABLE CDCS TRANSACTIONS
*         AND MUST BE INSTALLED ON THE SYSTEM LIBRARY.
* 
*         *RCTASK* READS THE ENTIRE *CRF* BY ISSUING *TSTAT*
*         REQUESTS TO OBTAIN INFORMATION ABOUT EACH USER AND
*         PROCESSES THIS INFORMATION AS FOLLOWS.
* 
*         1.  IF *CDCS* MAY NOT BE USED BY THIS TRANSACTION,
*             THEN READ THE NEXT *CRF* ENTRY. 
* 
*         2.  IF THE TRANSACTION STEP IS NOT *CDCS* DOWN, THEN
*             READ THE NEXT *CRF* ENTRY.
* 
*         3.  IF THE TRANSACTION TYPE IS *BTRAN*, THEN GO TO
*             STEP 5. 
* 
*         4.  IF THE TERMINAL USER IS NOT ACTIVE, THEN READ THE 
*             NEXT *CRF* ENTRY. 
* 
*         5.  ISSUE *SRERUN* TO RERUN THE CDCS TRANSACTION AND
*             READ THE NEXT *CRF* ENTRY.
 RCTASK   SPACE  4,15 
***       DAYFILE MESSAGES ISSUED.
* 
*         ABNORMAL COMPLETION.
* 
*         * RCTASK - TAF AUTOMATIC RECOVERY NOT INSTALLED.* 
*                THE KEYWORD SPECIFIED IN A *TSTAT* REQUEST 
*                REQUIRES TAF AUTOMATIC RECOVERY. 
* 
*         * RCTASK - TASK LOGICAL ERROR.* 
*                A LOGICAL ERROR OCCURRED THAT WAS NOT EXPECTED.
* 
*         * RCTASK - USER NOT DEFINED IN NETWORK FILE.* 
*                THE USER IS NOT DEFINED IN THE NETWORK FILE ON 
*                AN *SRERUN* OR *TSTAT* REQUEST.
 RCTASK   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* AND *COMKTSC*.
  
 BEGN     BSS    0           SAVE ORIGIN COUNTER
*CALL     COMKCBD 
          LIST   X
*CALL     COMKTRF 
          LIST   -X 
*CALL     COMKTSC 
          ORG    BEGN        RESTORE ORIGIN COUNTER 
 RCTASK   SPACE  4,10 
***       COMMUNICATION BLOCK.
  
  
          BSS    CMBL 
 RCTASK   SPACE  4,15 
***       RCTASK - RECOVER *CDCS* TRANSACTIONS. 
* 
*         ENTRY  BOI OF *CRF*.
* 
*         EXIT   RERUNNABLE *CDCS* TRANSACTIONS RECOVERED.
* 
*         ERROR  TO *RCT4*, IF ERROR ENCOUNTERED. 
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1. 
* 
*         MACROS CEASE, SCALL, SEND.
  
  
 RCTASK   SB1    1           ENTRY
          SA2    TNAM 
          SA3    RCTBL       DAYFILE MESSAGE
          SA1    RCTT 
          LX2    59-CBSYS 
          BX6    X1 
          PL     X2,RCT4     IF NOT SYSTEM ORIGIN TRANSACTION 
          SA6    RCTO        INITIALIZE *NEXT* FOR *TSTAT*
  
*         ISSUE *TSTAT* REQUEST TO OBTAIN STATUS OF TRANSACTION.
  
 RCT1     SCALL  TSTAT,(RCTM,RCTN,RCTO,RCTP,RCTQ,RCTR,RCTS,RCTU,RCTV) 
          SA1    RCTM 
          SA3    RCTAL       DAYFILE MESSAGE
          SX2    X1-TSRU
          ZR     X2,RCT4     IF RECOVERY UNAVAILABLE
          SX2    X1-TSEN
          ZR     X2,RCT5     IF END OF *NEXT* PROCESSING
          SA3    RCTCL       DAYFILE MESSAGE
          SX2    X1-TSUU
          ZR     X2,RCT4     IF USER UNKNOWN
          SA3    RCTBL       DAYFILE MESSAGE
          SX2    X1-TSNE
          NZ     X2,RCT4     IF ERRORS IN *TSTAT* 
          SA1    RCTS        GET *CDCS* USAGE 
          ZR     X1,RCT1     IF *CDCS* NOT USED BY TRANSACTION
          SA1    RCTQ        GET TRANSACTION STEP 
          SX2    X1-CSCD
          NZ     X2,RCT1     IF *CDCS* NOT DOWN 
  
*         SET UP *SEND* REQUEST PARAMETERS. 
  
          SA1    RCTI 
          SA2    RCTJ 
          BX6    X1 
          BX7    X2 
          SA6    RCTH 
          SA1    RCTO 
          MX3    TRUNN
          BX6    X3*X1
          SA6    A6+B1       USER NAME
          BX2    X6 
          SA7    A6+B1
          BX6    X6-X6
          SA6    A7+B1       STATUS OF USER NAME
          BX7    X2 
          SA7    RCTL 
          SA1    RCTV        GET TRANSACTION TYPE 
          SX2    X1-TYBT
          ZR     X2,RCT2     IF *BTRAN* TRANSACTION 
  
*         SEND MESSAGE TO TERMINAL TO CHECK IF ACTIVE.
  
          SEND   RCTH 
          SA1    RCTH+3      GET STATUS OF USER NAME
          SX2    RCTD        CONNECTION ENDED MESSAGE 
          LX1    18 
          SX1    X1+         SUPERVISORY MESSAGE FROM NAM 
          IX1    X1-X2
          ZR     X1,RCT1     IF TERMINAL NOT ACTIVE 
  
*         ISSUE *SRERUN* REQUEST TO RERUN TRANSACTION USING USER NAME.
  
 RCT2     SCALL  SRERUN,(RCTK,RCTL) 
          SA1    RCTK        GET STATUS OF REQUEST
          SX2    X1-TSNO
          ZR     X2,RCT1     IF TRANSACTION NOT RERUNNABLE
          SA3    RCTCL
          SX2    X1-TSUU
          ZR     X2,RCT4     IF USER UNKNOWN
          SA3    RCTBL
          SX2    X1-TSNE
          ZR     X2,RCT1     IF NO ERRORS IN *SRERUN* 
  
*         IF AN ERROR OCCURS ON *SRERUN* THEN SEND ERROR MESSAGE
*         TO ORIGINATING TERMINAL OR TAF-S DAYFILE AND CONTINUE 
*         PROCESSING. 
  
          SA1    RCTV        GET TRANSACTION TYPE 
          SX2    X1-TYBT
          ZR     X2,RCT3     IF *BTRAN* TRANSACTION 
          MX2    -48
          BX6    -X2*X3      MESSAGE ADDRESS AND NUMBER OF WORDS
          SA1    RCTJ 
          MX4    1           TERMINAL FLAG
          BX6    X6+X4
          SA6    RCTH        WORD ONE OF *SEND* PARAMETERS
          MX2    48 
          LX3    12 
          SA4    RCTL 
          BX6    X2*X1       APPLICATION BLOCK AND CHARACTER TYPE 
          BX3    -X2*X3      TEXT LENGTH COUNT
          BX7    X4          USER NAME
          SA7    A6+B1       WORD TWO OF *SEND* PARAMETERS
          BX6    X6+X3
          BX7    X7-X7
          SA6    A7+B1       WORD THREE OF *SEND* PARAMETERS
          SA7    A6+B1       WORD FOUR OF *SEND* PARAMETERS 
          SEND   RCTH        SEND MESSAGE TO ORIGINATING TERMINAL 
          EQ     RCT1        READ NEXT ENTRY FROM *CRF* 
  
 RCT3     AX3    30 
          SX4    X3          MESSAGE ADDRESS
          AX3    18          MESSAGE LENGTH 
          BX6    X3 
          SA6    RCTW 
          SCALL  TMSG,(X4,RCTW)  SEND MESSAGE TO DAYFILE
          EQ     RCT1        READ NEXT ENTRY FROM *CRF* 
  
*         A SYSTEM ERROR OCCURRED AND AN ERROR MESSAGE WILL BE PUT
*         IN TAF-S DAYFILE, THEN *RCTASK* WILL CEASE WITH A DUMP. 
  
 RCT4     AX3    30 
          SX4    X3          MESSAGE ADDRESS
          AX3    18          MESSAGE LENGTH 
          BX6    X3 
          SA6    RCTW 
          SCALL  TMSG,(X4,RCTW)  SEND MESSAGE TO DAYFILE
          CEASE  2           ABNORMAL CEASE WITH DUMP 
  
 RCT5     CEASE              EXIT TASK WITH CEASE 
  
*         DAYFILE MESSAGES. 
  
 RCTA     DATA   C* RCTASK - TAF AUTOMATIC RECOVERY NOT INSTALLED.* 
 RCTAL    VFD    12/**10-RCTA*10,18/RCTA,30/*-RCTA
 RCTB     DATA   C* RCTASK - TASK LOGICAL ERROR.* 
 RCTBL    VFD    12/**10-RCTB*10,18/RCTB,30/*-RCTB
 RCTC     DATA   C* RCTASK - USER NOT DEFINED IN NETWORK FILE.* 
 RCTCL    VFD    12/**10-RCTC*10,18/RCTC,30/*-RCTC
 RCTD     EQU    306030B     CONNECTION ENDED SUPERVISORY MESSAGE 
 RCTE     DATA   C* BEGIN TRANSACTION RERUN.* 
 RCTF     EQU    *-RCTE 
 RCTG     EQU    RCTF*10
  
*         *SEND* REQUEST PARAMETERS.
  
 RCTH     BSSZ   4
 RCTI     VFD    1/1,3/0,1/1,7/0,18/RCTE,12/0,18/RCTF 
 RCTJ     VFD    6/2,30/0,4/4,8/0,12/RCTG 
  
*         *SRERUN* REQUEST PARAMETERS.
  
 RCTK     CON    0           STATUS OF REQUEST
 RCTL     CON    0           USER NAME
  
*         *TSTAT* REQUEST PARAMETERS. 
  
 RCTM     CON    0           STATUS OF *TSTAT* REQUEST
 RCTN     DATA   4HNEXT 
 RCTO     CON    0           NEXT USER FROM *CRF* 
 RCTP     DATA   4HSTEP 
 RCTQ     CON    0           TRANSACTION STEP 
 RCTR     DATA   4HCDCS 
 RCTS     CON    0           *CDCS* USAGE 
 RCTT     DATA   1H          BLANK WORD 
 RCTU     DATA   4HTRAN 
 RCTV     CON    0           TRANSACTION TYPE 
 RCTW     CON    0           MESSAGE LENGTH 
  
          END    RCTASK 
