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