IDENT MSABT ENTRY MSABT LCC OVERLAY(MSABT,0,0) COMMENT 72/09/24. 72/09/24. MESSAGE ABORT TASK. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. MSABT TITLE MSABT - MESSAGE ABORT TASK. ***** MSABT - MESSAGE ABORT TASK. * J. R. HOGUE. 1972. MSABT SPACE 4 *** MSABT - MESSAGE ABORT TASK. * * *MSABT* IS A SYSTEM TASK WHICH SENDS ERROR MESSAGES TO * THE ORIGINATING TERMINAL WHEN A TRANSACTION DOES NOT END * NORMALLY DUE TO A SYSTEM DETECTED ERROR. ERROR CODES ARE * PLACED IN THE COMMUNICATIONS BLOCK BY THE CALLING PROGRAM, * THE TRANSACTION FACILITY, OR THE INITIAL TASK. *MSABT* IS * SCHEDULED AS ANY OTHER TASK, CHECKS THE ERROR CODE, AND SENDS * THE APPROPRIATE MESSAGE VIA THE *SEND* MACRO. *MSABT* THEN * ENDS WITH AN ABNORMAL CEASE. * * *MSABT* IS ALSO CALLED BY THE INITIAL TASK TO ISSUE ERROR * MESSAGES. * * THE DESIGN, IMPLEMENTATION AND TESTING OF CHANGES TO * *MSABT* MUST BE DONE WITH SPECIAL CARE SINCE IT IS * THIS TASK THAT INSURES THAT AT LEAST ONE RESPONSE * IS RETURNED FOR EACH TRANSACTION. * * *MSABT* WILL BE SCHEDULED BY THE TRANSACTION FACILITY * TO SEND AN ERROR MESSAGE TO THE ORIGINATING * TERMINAL IF AT LEAST ONE *SEND* HAS NOT BEEN MADE TO THE * ORIGINATING TERMINAL DURING THE LIFE OF THE TRANSACTION. * IT WILL ALSO INSURE THAT AN ERROR MESSAGE IS SENT TO * THE ORIGINATING TERMINAL IF THE TRANSACTION ABORTS OR * IF *ITASK* CANNOT PROCESS THE TRANSACTION. TITLE COMMUNICATION BLOCK DEFINITION. * COMMON DECKS. *CALL COMCMAC *CALL COMKMAC *CALL COMSPRD TRXCOM B1 DEFINE COMMUNICATION BLOCK SYMBOLS MACROS SPACE 4 ** TMSG DEFINE A TERMINAL ERROR MESSAGE. * * TMSG A * * A MESSAGE TEXT PURGMAC TMSG TMSG MACRO A LOCAL ADR,LEN .1 NOREF ADR SET * LOC .1 .1 SET .1+1 DIS ,*_A* LOC *O LEN SET *-ADR RMSG RMT VFD 12/0,12/LEN*10,18/LEN,18/ADR RMSG RMT ENDM SPACE 4,10 *** COMMUNICATION BLOCK HEADER WORDS. * *T SEQC 12/ DB,24/ UA,24/ SEQ *T, TERC 42/ TN,18/ * * DB DATA BASE FOR TERMINAL. * UA USER ARGUMENT FOR TERMINAL. * SEQ TRANSACTION SEQUENCE NUMBER. * TN TERMINAL NAME. BSS COMCL RESERVE SPACE FOR COMMUNICATION BLOCK MSABT TITLE MAP ERROR CODE TO ERROR MESSAGE. ** MSABT - SEND MESSAGE TO A TERMINAL TO INFORM THE USER THAT * THE TRANSACTION ENDED ABNORMALLY DUE TO SYSTEM ERROR. * IF THE ERROR CODE IS 32 (CDCS FATAL ERROR) SEND THE * MESSAGE FROM THE LAST 14 WORDS OF COMMUNICATION BLOCK AREA. * * ENTRY (TERC) = TERMINAL NAME IF NONZERO. * (TIMC) = ERROR CODE. * (TIMC-1) = ZERO IF ERROR NOT FROM *ITASK*. * * EXIT MESSAGE SENT. * * USES X - 0, 1, 4, 6, 7. * A - 1, 4, 6, 7. * B - 2, 3. * * CALLS CBT. * * MACROS CEASE, SEND. MSABT SA1 TERC CHECK FOR SYSTEM ORIGN MX0 42 BX1 X1*X0 NZ X1,MSA1 IF TRANSACTION ASSOCIATED WITH A TERMINAL CEASE NO TERMINAL - DONT SEND MESSAGE * DETERMINE WHICH MESSAGE TO SEND. MSA1 SA1 TIMC-1 PICK UP ERROR CODE ZR X1,MSA2 IF ERROR FROM TRANSACTION SB2 X1+ INITIAL TASK ERROR CODE NG B2,MSA5 IF INCORRECT CODE SB3 B2-TITML-1 PL B3,MSA5 IF INCORRECT CODE SA4 B2+TITM-1 EQ MSA3 SEND MESSAGE MSA2 SA1 TIMC PICK UP TRANSACTION ERROR CODE SB2 X1 BX7 X1 NG B2,MSA5 IF INCORRECT CODE SB3 B2-TTEML PL B3,MSA5 IF INCORRECT CODE SA4 B2+TTEM SA7 MSAE SAVE ERROR CODE * SEND MESSAGE TO THE ORIGINATING TERMINAL. MSA3 SX6 X4 FWA OF MESSAGE MX5 48 SA3 MSAA SEND CONTROL WORD MX0 6 AX4 18 MESSAGE LENGTH IN WORDS SA2 MSAB APPLICATION BLOCK HEADER BX3 X0*X3 SX1 X4 LX6 30 BX7 X6+X1 AX4 18 MESSAGE LENGTH IN CHARACTERS BX7 X3+X7 SA7 A3 BX2 X5*X2 BX6 X4+X2 APPLICATION BLOCK HEADER CHARACTER LENGTH SA6 A2 SEND MSAA SEND MESSAGE * CHECK FOR BINARY TERMINAL. SA1 SEQC TRANSACTION USER ARGUMENTS RJ CBT CHECK FOR BINARY TERMINAL ZR X6,MSA4 IF NOT BINARY TERMINAL SA6 MSAD SEND MSAC SEND MESSAGE MSA4 SA1 TIMC-1 ZR X1,MSA5 IF FROM TRANSACTION FACILITY CEASE NORMAL CEASE IF FROM INITIAL TASK MSA5 SB3 32 SA1 MSAE CHECK CDCS ERROR CODE SB2 X1 NE B2,B3,MSA6 IF NOT CDCS FATAL ERROR BX7 X7-X7 SA4 MSAF SA7 MSAE EQ MSA3 SEND CDCS FATAL ERROR MESSAGE MSA6 CEASE 1 CEASE WITH ABORT MSAA VFD 3/0,1/1,1/0,1/1,54/0 SEND CONTROL WORD CON 0 DEFAULT TERMINAL MSAB VFD 6/2,30/0,4/4,8/0,12/0 APPLICATION BLOCK HEADER MSAC VFD 12/0,18/MSAD,12/0,18/1 BINARY SEND CONTROL WORD MSAD CON 0 BINARY REQUEST WORD MSAE BSSZ 1 TEMPORARY ERROR CODE STORAGE MSAF VFD 12/0,12/120,18/12,18/TIMC-14 ** TRANSACTION ERROR MESSAGE TABLE. .1 SET 0 TMSG ("SYSPR"ARITHMETIC OR OTHER SOFTWARE ERROR IN TASK) TMSG ("SYSPR"TASK CEASE WITH REQUESTED ABORT.) TMSG ("SYSPR"SYSTEM REQUEST PARAMETER ADDRESS OUTSIDE FL) TMSG ("SYSPR"SYSTEM REQUEST WITH INCORRECT FUNCTION CODE) TMSG ("SYSPR"SYSTEM REQUEST CALL ERROR) TMSG ("SYSPR"MORE THAN FIVE TASKS IN TASK CHAIN) TMSG ("SYSPR"INCORRECT TASK NAME REQUESTED FOR SCHEDULING) TMSG ("SYSPR"REFERENCE MADE TO INCORRECT TERMINAL NAME) TMSG ("SYSPR"INCORRECT WORD COUNT ON TERMINAL OUTPUT) TMSG ("SYSPR"INCORRECT JOURNAL FILE REQUEST) TMSG ("SYSPR"TASK REQUESTED CEASE BEFORE DM FINISHED) TMSG ("SYSPR"TASK NOT VALIDATED FOR REQUEST) TMSG ("SYSPR"TOO MANY BRANCHES IN TASK CHAIN REQUESTED) TMSG ("SYSPR"INCORRECT PARAMETER IN SYSTEM REQUEST CALL) TMSG ("SYSPR"TOO MANY SYSTEM REQUEST CALLS) TMSG ("SYSPR"TASK TIME LIMIT) TMSG ("SYSPR"SYSTEM ABORT OF TASK) TMSG ("SYSPR"ERROR IN SUBMITTED FILE) TMSG ("SYSPR"CALLRTN NESTED CALL LIMIT EXCEEDED.) TMSG ("SYSPR"MSABT CALL ERROR.) TMSG ("SYSPR"INCORRECT TERMINAL INPUT REQUEST.) TMSG ("SYSPR"WAITINP FROM MULTI QUEUED TASK.) TMSG ("SYSPR"APPLICATON ERROR - NO TERMINAL OUTPUT.) TMSG ("SYSPR"INVALID DATA MANAGER PARAMETER.) TMSG ("SYSPR"MSABT CALL ERROR.) TMSG ("SYSPR"TOTAL DATA MANAGER NOT LOADED.) TMSG ("SYSPR"INCORRECT TOTAL INTERLOCK REQUEST.) TMSG ("SYSPR" SEND TO TERMINAL NOT LOGGED IN.) TMSG ("SYSPR"TASK REQUEST ARGUMENT ERROR.) TMSG ("SYSPR"MSABT CALL ERROR.) TMSG ("SYSPR"CRM DATA MANAGER NOT LOADED.) TMSG ("SYSPR"CDCS NOT AVAILABLE.) TMSG ("SYSPR"CDCS REQUESTED ABORT.) TMSG ("SYSPR"REQUEST FOR EXTENDED MEMORY NOT ALLOWED.) TMSG ("SYSPR"INCORRECT COMMON MEMORY MANAGER REQUEST.) TMSG ("SYSPR"FL REQUEST BEYOND MFL-CM.) TMSG ("SYSPR"INCORRECT FL REDUCTION.) TMSG ("SYSPR"MEMORY REQUEST WITH D.M. REQUEST OUTSTANDING.) TMSG ("SYSPR"CDCS INVOKE FAILURE.) TMSG ("SYSPR"DATA MANAGER USAGE NOT SELECTED.) TMSG ("SYSPR"TAF TRANSACTION NAME UNKNOWN.) TTEM BSS 0 TAF ERROR MESSAGE INDEX TABLE RMSG HERE TTEML EQU *-TTEM LENGTH OF TABLE ** MESSAGE TABLE FOR INITIAL TASK ERROR MESSAGES. .1 SET 1 TMSG ("SYSPR"INCORRECT SUB-TRANSACTION CODE - INITIAL TASK) TITM BSS 0 MESSAGE INDEX TABLE RMSG HERE TITML EQU *-TITM LENGTH OF A MESSAGE TABLE SPACE 4 * COMMON DECK. *CALL COMKCBT SPACE 4 END MSABT