*COMDECK HISTORY  
 CD2*78    COPYRIGHT CONTROL DATA CORP. 1978
           WR      06/30/77     CDCS
           WR      06/30/77     DBMSTRD 
           WR      06/30/77     DBQRFA
           WR      06/30/77     DBRCN 
           WR      06/30/77     DBQRFI
           WR      06/30/77     DBRST 
           WR      06/30/77     DB$INV
           MLA     09/15/78     CDCSBTF 
 *L470*    ************************************************************* *L470* 
 CD2A042  FIX INTERNAL MASTER DIRECTORY UTILITY ERROR IN OVERLAY (4,0)   CD2A042
          SPL    011878      DB$MDDJ,DB$M40M,DB$DADD                     CD2A042
 CD2A047  CHECK RECORD LOCK STATUS AFTER SWAPPING OUT A USER.  RECORD    CD2A047
          MAY HAVE BEEN ASSIGNED TO THE USER WHILE THE SWAPOUT WAS BEING CD2A047
          PROCESSED.                                                     CD2A047
          JEE    01/30/78    DB$LOK,DB$GETN                              CD2A047
 CD2A048  MODIFY NON-FATAL ERROR PROCESSING TO ALLOW DB$ERR TO EXECUTE   CD2A048
          A READ RELATION CLEANUP PROCEDURE BEFORE COMMAND TERMINATION.  CD2A048
          JEE    02/01/78    DB$ERR,DB$RCBC,DB$REL$                      CD2A048
 CD2A049  MODIFY DB$ERR TO POP SAVED VALUES OFF STACK BEFORE EXITING FOR CD2A049
          FATAL ERROR PROCESSING.                                        CD2A049
          JEE    01/30/78    DB$ERR                                      CD2A049
 CD2A059  IF A USER IS SUSPENDED WAITING FOR THE PROCEDURE LIBRARY TO    CD2A059
          BE ATTACHED FOR ANOTHER USER, THEN THE CONSTRAINING ADDRESS    CD2A059
          MAY BE SET IMPROPERLY IN THE SCHEDULER CALL, AND THE APL MAY   CD2A059
          BE RELEASED BEFORE THE USER IS RESTARTED IF ALL OTHER SCHEMA   CD2A059
          USERS TERMINATE BEFORE THE WAITING JOB IS RESTARTED.           CD2A059
          JEE    2/9/78      DB$INV$,DB$PST                              CD2A059
 CD2A050  THE KEY ADDRESS IN THE FIT FOR THE ROOT RANK OF A RELATION     CD2A050
          IS NOT RESET FOR A SEQUENTIAL READ ON THE RELATION, RESULTING  CD2A050
          IN CRM WRITING THE KEY RANDOMLY IN CORE.                       CD2A050
          JEE    2/27/78     DB$MFP                                      CD2A050
 *L477*    **************************************************** 
CD2A055   THIS CODE CORRECTS PROCESSING OF RELATIONS WITH RESTRICT
          CLAUSES.  WHEN A NULL CONDITION WAS DETECTED, TWO BUBBLE
          UPS WERE DONE (THROUGH NXTLORANK) INSTEAD OF ONE. 
          MLA      01/16/78  DB$MFP 
 CD2A057  AREA AND RECORD NAMES THAT ARE 10 OR 20 CHARACTERS LONG ARE 
          NOT PROPERLY TERMINATED WHEN USED FOR ERROR MESSAGE INSERTION.
          JEE    2/10/78     DB$ERR 
 CD2A058  THE WRONG DATABASE PROCEDURE NAME IS PLACED IN THE TEXT FOR 
          ERROR MESSAGE 677.
          JEE    2/10/78     DB$DPIF
 CD2A060  THIS CODE ABORTS THE USER AT INVOKE TIME IF NO WRITE PERM 
          ISSION ON QRF FILE. 
          RCK    02/21/78    DB$QRF,CUGDFDCLS,DB$IO,DB$ERRM 
 CD2A069  WHEN CDCS/DBU ATTEMPT TO REWIND THE QRF FILE, THE 
          BUFFER POINTERS IN THE FET ARE NOT SET. THEY POINT TO THE 
          LAST BUFFER USED FOR LOGGING TO THE QRF. SINCE THIS BUFFER
          IS IN CMM SPACE AND PROBABLY IS NOW RELEASED, THE FET MAY 
          POINT OUTSIDE THE CURRENT FIELD LENGTH. THIS RESULTS IN A 
          CIO BUFFER ARGUMENT ERROR.
          JEE    03/20/78          DB$IO
 CD2A071  FIXES ERROR PROCESSING OF DATA BASE PROCEDURES
          RCK    78/03/28    DB$CEDP,DB$DPIF,CWEOR1 
  
 CD2A044  AVOID A DDL DIRECTORY ACCESS ROUTINE ERROR DETECTION PROBLEM
          SPL    021578      DB$SRTF,DB$SNTX
 CD2A056  THIS CODE CALCULATES MAXIMUM RECORD  LENGTH OF JOURNAL LOG. 
          BEFORE THE DIRECTORY IS WRITEN.ALSO THE NO. OF SCHEMAS AND
          THE LAST SCHEMA ID IS CALCULATED  THEN. 
          RCK    04/20/78    DB$MDWU,MDBCMDCLS,DB$SRDM,DB$MDDJ
                             DB$SR16,DB$ST12,DB$SR16,DB$M40M
  
 CD2A062  THIS CODE CORRECTS THE MODULE DB$SRFN WHICH WAS NOT 
          CHECKING THE LFN'S PROPERLY.  IT MAKES A CHANGE TO DB$CLFN
          TO ALLOW LFN'S TO IN THE MD INPUT TO BE CALLED "INPUT--"
          OR "OUTPUT-".  THE CODE ALSO CORRECTS A PROBLEM IN DB$SR10
          IN WHICH NON-EXISTENT SCHEMA ENTRIES COULD BE DELETED FROM
          THE MASTER DIRECTORY. 
          LGW      04/14/78  DB$SRFN,DB$CLFN,DB$SR10
 CD2A065  THIS CODE CORRECTS A PROBLEM IN DB$MURR WHERE THE ERROR 
          STATUS OF THE INPUT AND OUTPUT FILES WERE NOT CHECKED ON OPEN 
          THE CODE ALSO FIXES THE L=0 OPTION ON THE MASTER DIRECTORY
          CONTROL CARD. 
          DB$MURR,DBMSTRD    LGW       3/29/78
 CD2A078  OBJECT TIME ROUTINES ARE MODIFIED TO SET AND CLEAR THE END OF 
          DATA FLAG IN THE USER FIT.
          JEE    04/26/78    DB$RQST,DB$WEF 
 CD2A079  THE RECOVERY POINT TEXT FOR INTERNAL QRF RECOVERY POINTS
          CONTAINED ONE WORD OF GARBAGE.  THE TEXT IS MODIFIED TO BE
          BLANK FILLED. 
          JEE    05/02/78    DB$QRF,DB$UQIN 
 CD2A080  IF BLOCK LOGGING IS SPECIFIED, DBRCN/DBRST ATTEMPTED TO USE 
          THE DATABASE AREA FIT BEFORE IT WAS INITIALIZED, RESULTING
          IN A POSSIBLE MODE ERROR. 
          JEE    05/02/78    DB$UQIN
 CD2A081  PURGE THE COMMON DECKS THAT RESIDE ON THE DDL PL. 
          RMP    05/02/78    DITDECLS.SBDCDECLS 
 CD2A084  PROBLEM - STACK OVERFLOW IF A *SEEK* DURING *MFP* PROCESSING
          DETECTS AN ERROR. THIS CAUSED TOO MANY ENTRIES TO BE PUSHED.
          SOLUTION - IF PROCESSING AN ERROR (IN DB$ERR) FROM WHICH WE 
          WILL NOT RETURN TO PROCESSING THE USER REQUEST, FLUSH THE 
          STACK SINCE WE WILL NEVER RETURN TO USE IT. THIS IS DONE
          INSTEAD OF INCREASING THE STACK SPACE SO WE KEEP CM USAGE LOW.
          MLA    78/05/17    DB$ERR 
          CFR    78/07/10    DB$ERR 
  
CD2A095    THIS PSR CORRECTS THE CALCULATION OF MAX JOURNAL LOG 
           RECORD SIZE DONE IN PSR CD2A056. 
           MLA      78.07.06  DB$MDWU 
 CD2A098  FIX A MASTER DIRECTORY SCHEMA DIRECTORY ENTRY COUNT PROBLEM.
          SPL    07/27/78    DB$SR07
 F2622    CODE FOR CDCS 2 BATCH TEST FACILITY (CDCSBTF) 
          COG,JEE,MLA  78/08/25   DB$$COM,DB$$RCM,DB$$LDR,CWEOR8
                                  DB$$SIM,DB$$RTA,CDCSBTF,CWEOR7
 CD2A097  PROBLEM - IF AN OPERATOR DROP (OR OTHER ABORT) OCCURS WHILE 
          CDCS IS ROLLED OUT, THE REPRIEVE ADDRESS IS IN THE ROLLED 
          OUT PORTION AND IS OUT OF RANGE. THIS RESULTS IN CDCS NOT 
          BEING ABLE TO DO ANY REPRIEVE PROCESSING. 
          SOLUTION - CALL *RECOVR* MACRO TO SET AND CLEAR REPRIEVE
          AROUND THE TIMES WHEN WE ROLL OUT AND IN. THE CODE TO 
          RECEIVE CONTROL WILL ROLL IN CDCS BEFORE RETURNING TO 
          ALLOW THE OTHER LEVELS OF REPRIEVE. 
          CFR    78/08/03    DB$ROLL
  
 CD2A105  FIX A CDCS ERROR INHIBITING DETECTION OF PRIVACY BREACHES.
          SPL    08/14/78    CDGDFDCLS,CSLCMDCLS,DB$INV$,DB$PVCA
                             DB$PVC$
 CD2A112  PROBLEM - TARGET BUFFER ADDRESS WAS SET INCORRECTLY FOR 
          ITEM-LEVEL DATA BASE PROCEDURES.
          SOLUTION - SET IT CORRECTLY.
          MLA    78/09/18    DB$DPIF
  
 CD20001  PROBLEM - INVALID KEY ERRORS IN THE ROOT RANK DURING A
          RELATION READ RESULTED IN THE *ES* FIELD BEING ZEROED.
          WHEN DB$ERR WAS CALLED TO PROCESS THE ERROR, IT HUNG. 
          SOLUTION - INTRODUCE A NEW *EX* ROUTINE TO HANDLE CRM 
          ERRORS FOR THE ROOT RANK SEPARATELY FROM NON-ROOT RANK. 
          MLA    78/09/18    DB$MFP 
  
 CD2A114  PROBLEM - A NOS/BE ATTACH OF A DATA BASE AREA (OR ANY OTHER 
          FILE) WHICH CANNOT BE SATISFIED BECAUSE THE FILE IS ATTACHED
          ELSEWHERE RESULTS IN THE UCP BEING ABORTED WITH PFM ERROR 37. 
          SOLUTION - NOS/BE PFM SPLIT ITS ERROR CODE FOR FILE UNAVAILABL
          (CODE = 25) INTO THREE ERROR CODES: FILE ARCHIVED (CODE = 25),
          NO APF SPACE (CODE = 36), AND PERMISSION CONFLICT (CODE = 37).
          CDCS HAS SPECIAL CODE TO INTERNALLY QUEUE UP ON A CODE OF 25, 
          AND THIS MOD ALTERS IT TO QUEUE UP ON A CODE OF EITHER 36 OR
          37 INSTEAD OF 25. 
          CFR    78/09/21    DB$ATCH
  
 CD2A117  PROBLEM - EXECUTION OF AN ITEM LEVEL "ON ERROR" DATABASE
          PROCEDURE CAN BE SIGNIFICANTLY DELAYED FROM THE TIME THE
          RECORD/KEY MAPPING ERROR OCCURRED.  IF THIS OCCURS, THE 
          RECORD/KEY MAPPING CAPSULE MIGHT BE RELEASED, AND THE 
          PARAMETER AREA OVERWRITTEN, CAUSING UNPREDICTABLE RESULTS.
          ALSO, VALUES FOR MAPPING MODE AND LOCATION OF SUBSCHEMA-FORMAT
          RECORD MAY HAVE BEEN ALTERED BY AN INTERVENING CALL TO A
          RECORD/KEY MAPPING ROUTINE. 
          SOLUTION - IF A MAPPING ERROR WAS INDICATED AT THE TIME OF
          RETURN FROM THE RECORD/KEY MAPPER, SAVE THE PARAMETERS
          NECESSARY TO THE ITEM LEVEL DBP IN A MANAGED MEMORY BLOCK.
          WHEN IT COMES TIME TO CALL THE ITEM LEVEL DBP, RESTORE THE
          PARAMETERS AND, AFTER THE ITEM LEVEL DBP IS COMPLETE, RELEASE 
          THE BLOCK.
          CFR    78/10/19    DB$CEDP,DB$DPIF,DB$ERR,DB$KMIF 
                             DB$RCBC,DB$RMIF,CDCSCOMMN
  
 CD2A119  PROBLEM:  DURING INITIALIZATION OF A QRF, CDCS CALLS THE
          FILINFO MACRO TO DETERMINE THE STATUS OF A QRF.  WHEN 
          PRESETTING THE FIRST WORD OF THE PARAMETER BLOCK TO BE PASSED 
          TO THE MACRO, THE COMPLETE BIT IS CLEARED.  HOWEVER, ENTRY
          CONDITIONS DIFFER FOR THE FILINFO MACRO ON NOS AND NOS/BE.
          ON NOS, FILINFO EXPECTS THE COMPLETE BIT TO BE SET, AND SO, 
          WHEN CALLED BY CDCS WITH THE COMPLETE BIT CLEARED, CDCS 
          HANGS IN AUTO-RECALL, WAITING UNTIL THE BIT GETS SET. 
          SOLUTION:  THE COMPLETE BIT MUST BE CLEARED BEFORE CALLING
          FILINFO ONLY IF RUNNING ON NOS/BE. ON NOS, THE COMPLETE BIT 
          MUST REMAIN SET.
          MAD    10/17/78    DB$INFO
  
 CD2A122  PROBLEM - WHEN DB$WRP RELEASES AN RCB AND RETURNS TO THE
          SCHEDULER LOOP, IT LEAVES P<RCB> SET TO THE LOCATION OF THE 
          INACTIVE RCB. THIS RCB IS THEN ACCESSED BY DB$SCHD, WHICH 
          COULD CAUSE VARIOUS PROBLEMS, INCLUDING MODE ERRORS AND 
          BIZARRE EXECUTION.
          SOLUTION - BEFORE RELEASING THE RCB, DB$WRP WILL SAVE THE 
          LOCATION OF THE *NEXT* RCB. AFTER THE RCB HAS BEEN RELEASED,
          AND BEFORE RETURNING TO THE SCHEDULER, P<RCB> WILL BE 
          POSITIONED TO THAT *NEXT* RCB (UNLESS SCHDFLG INDICATES A 
          PARTICULAR RCB AT WHICH EXECUTION SHOULD CONTINUE). 
          CFR    78/10/18    DB$WRP 
  
 CD20006  PROBLEM:  WHEN THE OS INFORMS CDCS THAT A RUN UNIT HAS
          TERMINATED, CDCS ISSUES AN SF.ENDT TO DETACH THE RUN UNIT.
          IF CDCS IS INFORMED MORE THAN ONCE, THEN CDCS INITIATES 
          RUN UNIT TERMINATION PROCESSING FOR THE NON-EXISTENT RUN
          UNIT, ISSUING AN SF.ENDT AND PUSHING AN ENTRY ONTO THE RCB
          STACK.  WHEN THE OS REPLIES THAT THE JOB NO LONGER EXISTS,
          THEN RUN UNIT TERMINATION IS AGAIN INITIATED.  CDCS LOOPS 
          THROUGH THIS SEQUENCE OF EVENTS UNTIL THE RCB STACK OVERFLOWS,
          AND THEN CDCS ABORTS. 
          SOLUTION:  ENSURE THAT CDCS INITIATES RUN UNIT TERMINATION
          PROCESSING ONLY ONCE PER RUN UNIT.  CREATE A FLAG IN THE TQT
          ENTRY TO BE SET WHEN TERMINATION PROCESSING IS INITIATED FOR
          A RUN-UNIT.  IF THE FLAG IS SET, THEN CDCS SHOULD NOT 
          ATTEMPT TO TERMINATE THE RUN UNIT A SECOND TIME.
          MAD    09/25/78    CDCSCOMMN,DB$SFCL,DB$TQTC,DB$TRU 
  
 CD2A051  PROBLEM - WITHIN THE SCP, A RUN-UNIT WILL INTERMITTENTLY BE 
          CONTINUED AT AN ADDRESS INCONSISTENT WITH ITS REQUESTED 
          FUNCTION. THIS USUALLY WILL INCLUDE CRM ERRORS 71 OR 445, BUT 
          COUNTLESS UNKNOWN OTHERS MAY OCCUR. 
          SOLUTION - DB$NRR DID NOT SAVE ITS RETURN ADDRESS ACROSS A
          CALL TO DB$SFCL, AN INTERRUPTIBLE ROUTINE. TYPICALLY, THIS
          INCONSISTENT EXECUTION WOULD OCCUR DURING THE FIRST ACTION
          THAT MODIFIED A DATABASE AREA (THUS THE NO-RERUN BIT HAD TO BE
          SET VIA DB$SFCL). ALSO TYPICAL IS AN RSB STATISTICS WORD
          SHOWING ZERO WRITES, REWRITES, AND DELETES. ANOTHER CALLER OF 
          DB$NRR DURING THE INTERRUPTION WOULD DISTURB THE RETURN LINKAG
          SUCH THAT CONTINUATION OF THE INTERRUPTED RCB WOULD FOLLOW IN 
          THE OTHER CALLER"S RETURN LINKAGE. THIS MOD SAVES AND RESTORES
          THE DB$NRR RETURN LINK ACROSS THE DB$SFCL CALL, THUS AVOIDING 
          SIMILAR ERRORS IN THE FUTURE. 
          MAD/CFR    78/10/24    DB$NRR 
  
 CD2A127  PROBLEM - MODE ERROR DURING DB$DPIF PROCESSING FOR A RECORD 
          LEVEL GET ERROR DATABASE PROCEDURE. OTHER RANDOM SYMPTOMS MAY 
          OCCUR.
          SOLUTION - A RECORD LEVEL CALL THROUGH DB$DPIF REQUIRES 
          *RSRECBLK* TO BE CORRECTLY POSITIONED. DB$ERR CALLS DB$DPIF 
          AND, ALTHOUGH *RSRECBLK* MAY HAVE BEEN POSITIONED CORRECTLY 
          AT THE TIME OF THE DB$ERR CALL, DB$ERR CALLS DB$SFWR (A 
          ROUTINE WHICH MAY BE INTERRUPTED), AND THE POSITION OF
          *RSRECBLK* WILL NOT BE RESTORED, AND MAY NOT BE PRESERVED,
          ACROSS THE CALL TO DB$SFWR. THIS CORRECTIVE CODE ENSURES
          *RSRECBLK* IS POSITIONED CORRECTLY BEFORE DB$DPIF IS CALLED BY
          DB$ERR. 
          CFR/MAD    78/11/09    DB$ERR 
  
 CD2A129  PROBLEM: THE RECORD LENGTH FIELD (RL) IN THE FIT IS SUPPOSED
          TO BE UPDATED AT THE UCP, IF REQUESTED BY THE HOST LANGUAGE 
          ON A READ REQUEST.  COBOL ASKS FOR RL IF A READ INTO IS 
          PERFORMED.  THE RL FIELD IN THE FIT WAS NOT BEING UPDATED 
          PROPERLY BY CDCS. 
          SOLUTION:  CORRECT THE SUBSYSTEM WRITE REQUEST IN THE READ
          SYMBIONT TO WRITE THE RL VALUE TO THE REQUEST PACKET. 
          CORRECT THE READ OBJECT-TIME ROUTINES TO STORE THE RL 
          VALUE FROM THE REQUEST PACKET INTO THE UCP FIT. 
          MLA       78/12/04  DB$RD1,DB$RD2,DB$RD$
 F2640X01 INSERTION OF SUPPORT CODE AND NEW DECKS FOR THE EXTENDED
          OPERATOR INTERFACE. 
          CFR     78/12/04
  
 F2640W01A
          PROBLEM   -  COMPILATION ERRORS DURING BUILD
          SOLUTION  -  MAKE APPROPRIATE CORRECTIONS QUICKLY.
          CFR    78/12/19    CUGDFDCLS,MDSBDDCLS,UTMPCDCLS
                             UTMPTDCLS,DB$CCHK,DB$MDR2
  
 F2640X02 PROBLEM - THE VALUE OF SALX CHANGES ACROSS CONFIRMATION 
          REQUESTS, AND IS NOT RESTORED TO ITS PREVIOUS VALUE WHEN THE
          OPERATOR RESPONSE IS RECEIVED.
          SOLUTION - SAVE AND RESTORE SALX ACROSS THE CONFIRMATION
          REQUEST.
          CFR    78/12/19    DB$DSCS
  
 F2640X03 PROBLEM - SKELGEN MACROS REQUIRE MINOT TUNING TO INSURE A 
          TROUBLE FREE BUILD. 
          SOLUTION - CORRECT LIBRARY LISTS FOR SOME OF THE OVERLAYS.
          REMOVE REDUNDANT MAP MACROS.
          FIX THE OV=N OFF-BY-ONE PROBLEM.
          CFR    78/12/19    SKELETON, SKELGEN
  
 F2640A02 PROBLEM - KEY POSITION WAS NOT SET PROPERLY FOR A WRITE ON
          AN AK FILE, SINCE KEY ADDRESS IS SET TO POINT INTO THE RECORD.
          SOLUTION - SET KEY POSITION TO RKW FROM THE OFT FOR THE FILE. 
          MLA    78/12/21    DB$SFIT,DB$WR2$
  
 F2640X04 PROBLEM - AN *INCL* FOR DB$ROLL IS MISSING FROM SKELGEN.
          SOLUTION - INSERT AN *INCL* FOR DB$ROLL.
          CFR    78/12/21    SKELETON 
  
 F2640X05 PROBLEM - BATCH TEST FACILITY CODE IN DB$$STP WAS ATTEMPTING
          TO TERMINATE CDCS USING A CFO MESSAGE.  IN CDCS2.1, CFO HAS 
          BEEN REPLACED BY THE K/L DISPLAY, AND THE CFO INTERFACE IS NO 
          LONGER EFFECTIVE. 
          SOLUTION - CHANGE DB$$STP TO SET THE CDCS TERMINATION FLAG, 
          DB$TRMF, WHICH IS SET UP BY THE K/L DISPLAY CODE. 
          CFR    78/12/21    DB$$SIM
 F2640A04 PROBLEM - A MODE ERROR OCCURS ON A WRITE OF AN AK FILE
          IF THERE IS NO RECORD MAPPING.
          SOLUTION - A POINTER TO THE WSA ARRAY HAD NOT BEEN SET. 
          THE ADDRESS IN THE FIT WSA WAS SUBSTITUTED FOR
          THIS POINTER IN ROUTINE DB$WR2$.  THE POINTER TO THE CST
          RECORD BLOCK MUST ALSO BE SET IN DB$WR2$. 
          MLA    78/12/22    DB$WR2$
  
 F2640A06 PROBLEM - ON A WRITE OF AN AK FILE WITH NO RECORD MAPPING,
          THE KEY VALUE WAS NOT BEING STORED PROPERLY IN THE SCHEMA 
          RECORD, RESULTING IN INVALID KEY EXITS ON A WRITE.
          SOLUTION - STORE THE KEY PROPERLY IN THE SCHEMA RECORD. 
          MLA    78/12/28    DB$WR2$
  
 F2640X06 PROBLEM - MINOR TWEAKS ARE REQUIRED TO GET CORRECT ASSEMBLY 
          ON NOS. DB$IGNR WAS OMITTED FROM DMSLIB.
          SOLUTION - MODIFY SKELGEN TO INCL DB$IGNR INTO THE DMSLIB 
          ROUTINES. TWEAK CODE TO GET AROUND PROBLEMS OF CONFLICTING
          MACRO DEFINITIONS ON NOS. REMOVE INCL FOR DB$CFO FROM CDCS
          AND CDCSBTF SKELETONS. REMOVE UNNECESSARY LCC CARDS FROM
          DB$M10E, DB$M20E, DB$M30E, AND DB$M40E. 
          CFR/MAD    79/01/04    SKELETON, DB$INFO, DB$M10E, DB$M20E
                                 DB$M30E, DB$M40E, DB$RPV, DB$STAT
                                 CPUCIO, DB$DMGI
  
 F2640X07 MULTIPLE PROBLEMS ARE ADDRESSED BY THIS IDENT AS DETAILED 
          BELOW.
          CFR    78/09/27    DECKS LISTED BELOW 
  
          PROBLEM - WHEN A CMM ABORT OCCURS, THE CONTENTS OF X1 (ERROR
          INFORMATION FROM CMM) IS CONVERTED TO DISPLAY CODE AND PUT IN 
          A DAYFILE MESSAGE AT THE SCP. THE CODE TO CONVERT (X1) TO 
          DISPLAY CODE INADVERTANTLY REVERSES THE FIRST AND SECOND
          HALVES OF THE REGISTER, LEADING TO GREAT CONFUSION. 
          SOLUTION - CORRECT CODE SO THE HALVES DONT GET REVERSED.
          CFR    78/09/27    DB$MFI 
  
          PROBLEM - THE COMMENTS AT THE BEGINNING OF EXECUTABLE CODE IN 
          DB$FTEX AND DB$FTDX ARE BACKWARDS.
          SOLUTION - DELETE THE OLD CARDS AND INSERT THE CORRECT ONES.
          CFR    78/09/27    DB$FTDX, DB$FTEX 
  
          PROBLEM - SOME OF THE COMMENTS IN DB$ERR LEAD TO CONFUSION
          SINCE THEY DONT EXPLAIN THAT DB$ERR IS USED FOR INFORMATIVE 
          MESSAGES AS WELL AS ERRORS. IN ADDITION, IT SHOULD SAY THAT 
          CERTAIN MESSAGES ARE ALSO ISSUED ON THE CDCS OUTPUT FILE. 
          SOLUTION - CORRECT THE COMMENTS TO AVOID CONFUSION. 
          CFR    78/09/27    DB$ERR 
  
          PROBLEM - CERTAIN COMDECKS ARE RECOGNIZED ONLY AS *TEXT* BY 
          THE CROSS REFERENCER. 
          SOLUTION - PUT AN APPROPRIATE COMMENT AT THE FRONT OF EACH OF 
          THESE DECKS SO THE CROSS REFERENCER WILL BE ABLE TO RECOGNIZE 
          THE LANGUAGE USED IN THAT COMDECK.
          CFR    78/10/18    ACCNT, ACCTABLE, ACCMACRO
  
          PROBLEM - SPELLING ERRORS IN DB$CLOG. 
          SOLUTION - CORRECT THE SPELLING.
          CFR    78/10/20    DB$CLOG
  
          PROBLEM - DOCUMENTATION IN DB$RCBC DOES NOT SPECIFICALLY SAY
          THAT IT LINKS THE NEW RCB TO THE CURRENT TQT. 
          SOLUTION - ADD THE DOCUMENTATION TO CLEAR THIS UP.
          CFR    78/10/20    DB$RCBC
  
          PROBLEM - A PFN OR UN LISTED ON THE NOS TRACE FILE WILL BE
          FOLLOWED BY A # IF ITS LENGTH IS 7 CHARACTERS.
          SOLUTION - THE TRACE ROUTINE WAS BEING CALLED IN SUCH A WAY 
          THAT IT DID NOT RECEIVE THE COLON TERMINATOR IT EXPECTED FOR
          A CHARACTER STRING. THE FIRST COLON IT FOUND WAS IN THE NEXT
          WORD (UNINITIALIZED) WHICH STARTED WITH A 60B (#). THIS CODE
          CORRECTS THE CALL TO THE TRACE ROUTINE SO THE STRING IS 
          CORRECTLY TERMINATED. 
          CFR    78/10/18    DB$ATCH* 
  
          PROBLEM - LINES ON THE TRACE FILE CAN GET MESSED UP IF A LOCK 
          TRACE SPECIFIES A BINARY KEY. 
          SOLUTION - ALTER DB$LINE (FOR TRACE VERSION ONLY) TO CHECK
          EACH LINE FOR AN EARLY ZERO BYTE TERMINATOR, AND NULLIFY IT BY
          AN APPROPRIATELY PLACED BLANK.
          CFR    78/10/18    DB$LINE
  
          PROBLEM - THE TIME IN THE CDCS PAGE HEADER REFLECTS ONLY THE
          TIME OF INITIALIZATION. IN LARGE TRACE LISTINGS, IT WOULD BE
          USEFUL TO SEE THE ACTUAL TIME THE PAGE HEADER WAS GENERATED.
          SOLUTION - ALTER DB$LINE (TRACE VERSION ONLY) TO UPDATE THE 
          TIME FIELD IN THE PAGE HEADER EVERY TIME A NEW PAGE IS BEGUN. 
          CFR    78/10/18    DB$LINE
  
 F2640W02 PROBLEM - A RETURN MUST BE DONE IN DB$DPIF AFTER DATA COMPRESSION 
          CODE.  ALSO THE MASTER DIRECTORY UTILITY MUST BE MODIFIED SO THAT 
          ON AN UPDATE RUN THE CHECKSUM LIST IS COPIED FROM THE OLD MASTER
          DIRECTORY TO THE NEW MASTER DIRECTORY.
          SOLUTION - THIS CODE CORRECTS THESE PROBLEMS. 
          LGW    79/01/05    DB$DPIF,DB$MDRD,DB$MDWD
  
 CD2*79   CDCS2 COPYRIGHT CODE FOR 1979 
          MLA    79/01/02    CDCS,CDCSBTF,DBMSTRD,DBQRFA
                             DBRCN,DBRST,DBQRFI,DB$INV
  
 F2640A08 PROBLEM - FOR AN AK FILE, THE ONLY SPECIAL PROCESSING WHICH 
          SHOULD BE DONE IS TO RETURN THE KEY VALUE AFTER A PUT IF
          THE USER SPECIFIED A KEY VALUE OF ZERO. 
          SOLUTION - REMOVE CODE FOR AK FILES EXCEPT FOR RETURNING THE
          KEY VALUE ON A WRITE.  CORRECT THE CODE FOR RETURNING THE 
          KEY VALUE.
          MLA    79/01/04    DB$WR2$
  
 F2640J02 PROBLEM - AFTER A RELATION START, RELATION RETRIEVALS GET 
          NULL RECORDS RATHER THAN THE ACTUAL RECORDS.
          SOLUTION - SET THE RSB RELATION FIRST RANK FLAG TO TRUE 
          (ITS INITIAL VALUE) AFTER THE RELATION START. 
          JJJ    79/01/05    DB$RSR$
  
 F2640X08 PROBLEM - SOME DISPLAY MANAGER ROUTINES DID NOT ASSEMBLE
          CORRECTLY UNDER NOS.
          SOLUTION - DEFINE A NEW ENTRY POINT, DB$DMCN, IN DB$DMGI. 
          CORRECT AN OCTAL MICRO IN DB$DMGI.  DELETE SOME CODE
          PREVIOUSLY INSERTED IN CPUCIO.
          CFR/JGS    79/01/16    DB$DMGI,CPUCIO 
  
 F2640X09 PROBLEM - THE SKELETON FOR CDCS HAD THE WRONG PROGRAM ENTRY 
          POINT NAME, TAKEN FROM THE OVLAY CARD.  THE SKELETON FOR
          DBRCN/DBRST WAS SET UP SO THAT ONLY ONE ENTRY POINT NAME
          WAS KNOWN.  THE ROUTINE DB$CDIS MUST BE INCLUDED IN THE 
          OBJECT ROUTINE LIBRARY, AS IT IS CALLED BY DB$TIM.
          SOLUTION - ADD TWO COMPASS ROUTINES, ONE FOR CDCS AND ONE 
          FOR THE RECOVERY UTILITY, WHICH WILL BE LOADED FIRST IN 
          THE SKELETON.  THE COMPASS ROUTINES WILL CONTAIN LDSET
          DIRECTIVES TO DEFINE THE PROGRAM ENTRY POINT NAMES.  ADD
          AN INCLUDE IN THE SKELETON TO PLACE DB$CDIS IN THE OBJECT 
          TIME ROUTINE LIBRARY. 
          CFR/MLA    79/01/16    SKELETON,SKELGEN,CDCS2,DBRCVR
  
 F2640L01 PROBLEM  - BIG AND/OR MULTIPLE-SCHEMA MDS ARE NOT BUILT OK. 
          SOLUTION - FIX SEVERAL ERRORS INTRODUCED WITH CHECKSUM CODE.
          SPL    12/21/78    MDSCDDCLS,DB$CCHK,DB$MDR2,DB$MDWU,DB$M40M
 F2640X10 PROBLEM - ON NOS, A WATCHER IS NOT DETECTED AND THE MAIN
          DISPLAY NEVER APPEARS.
          SOLUTION - IN THE BUFFER CONTROL WORDS, THE POINTERS TO THE 
          LEFT AND RIGHT BUFFERS POINTED TO THE FIRST TABLE WORD, NOT 
          THE HEADER WORD. THIS CODE CORRECTS THE CONTROL WORDS TO POINT
          CORRECTLY.
          ALSO CORRECTS TO ELIMINATE THE *REQUEST K DISPLAY* MSG. 
      CHANGES ARE ALSO INCLUDED TO CORRECT JOVEC PROBLEMS IN DB$MDR1. 
          CFR    79/01/18    DB$DMGI, DB$ROLL, DB$MSG 
                             DB$MDR1
  
 CD2A133  PROBLEM - FORTRAN USERS INTERFACING TO A CDCS SCP DO NOT
          HAVE A LDSET,LIB=BAMLIB DIRECTIVE ACTIVE WHEN THE UCP 
          PROGRAM IS LOADED.  CONSEQUENTLY ER$SRM, WHICH IS REFERENCED
          BY THE CDCS OBJECT TIME ROUTINE DB$WEF, IS AN UNSATISFIED 
          EXTERNAL REFERENCE. 
          SOLUTION - INCLUDE A LDSET, LIB=BAMLIB STATEMENT IN THE 
          OBJECT TIME ROUTINE DB$SSCL.
          MLA    79/01/23    DB$SSCL
  
 F2640A09 PROBLEM - A MODE ERROR OCCURRED IN DB$CLSA WHEN CLOSING AN
          IMPLICIT CONSTRAINT FILE. 
          SOLUTION - SET THE POINTER TO CSAREBLK FOR ALL AREAS, NOT JUST
          NON-IMPLICIT AREAS. 
          MLA    79/01/31    DB$CLSA
  
 *L495*    ************************************************ 
 CD2A138  PROBLEM - MASTER DIRECTORY UTILITY WAS ABORTING WITH A CRM
          ERROR ON THE OLD MD FILE. 
          SOLUTION - ON A MODIFICATION RUN, THE UTILITY WAS TRYING TO 
          ACCESS THE CHECKSUM LIST WITH A BADLY COMPUTED WORD ADDRESS,
          RESULTING IN A CRM ERROR 120. 
          LGW    02/06/79    DB$SR18
  
 CD2A136  PROBLEM - USE FOR DEADLOCK PROCEDURES IN COBOL PROGRAMS ARE 
          NOT BEING EXECUTED. 
          SOLUTION - THE ERROR PROCESSING IN DB$RQST WAS NOT EXECUTING
          THE FIT ERROR EXIT FOR A DEADLOCK ERROR BECAUSE DEADLOCK IS 
          NOT A CRM ERROR.  THE DB$RQST PROCESSING IS MODIFIED SO THAT
          THE FIT ERROR EXIT IS ALWAYS EXECUTED FOR AN ERROR, IF IT IS
          SPECIFIED.  THE FIELD IN THE RCB INDICATING A CRM ERROR IS
          DELETED, AS IT IS NO LONGER USED. 
          MLA    79/02/20    DB$RQST,DB$RLCK,DB$FTEX,RQPARDCLS,CDCSCOMMN
  
 CD2A143  PROBLEM - BASED ARRAY UFT WAS NOT POINTED IN DB$ACCN, CAUSING 
          INTERMITTENT PROBLEMS WHEN ACCOUNTING WAS SPECIFIED.
          SOLUTION - POINT UFT. ALSO INCLUDED IS A GENERAL CLEANUP AND
          ADDITIONAL DOCUMENTATION OF DB$ACCN.
          GFK    79/02/22    DB$ACCN, ACCNT 
  
 F2640K01 INSERT NEW VALUES IN ACCOUNTING TABLE FOR AK AND DA FILES,
          PLUS UPDATE OLD VALUES. 
          VALUES FOR THE FOLLOWING REQUESTS ARE ESTIMATES - 
          DFINV, DFSTR, DFEND, DFRPT, DFPVC, DFRSR, DFDBS.
          THE REMAINING VALUES WERE OBTAINED BY TEST RUNS ON THE
          CYBER 74-28, ON NOS/BE, COBOL5. 
          GFK    79/02/22    DB$ACCT
  
 SYMPLTXT USE OF THE SYMPL TEXT FEATURE IS INTRODUCED ON THE CDCS PL. 
          15 TEXT OVERLAYS ARE CREATED. 
          EACH TEXT CORRESPONDS TO AN EXISTING COMMON DECK. 
          THERE IS NO CHANGE TO ANY OF THE COMMON DECKS.
          THE NEW TEXTS AND THEIR CORRESPONDING COMMON DECKS ARE -
  
          CDCSCTX - CDCSCOMMN 
          CDGDFTX - CDGDFDCLS 
          CUGBATX - CUGBADCLS 
          CUGDFTX - CUGDFDCLS 
          JLDEFTX - JLDEDCLS
          JLPCMTX - JLPCMDCLS 
          MDBCMTX - MDBCMDCLS 
          MDDEFTX - MDDEFDCLS 
          MD10CTX - MD10CDCLS 
          RELCMTX - RELCMDCLS 
          RQPARTX - RQPARDCLS 
          RVRSCTX - RVRSCOMMN 
          UTCDFTX - UTCDFDCLS 
          UTCITTX - UTCITDCLS 
          UTMPTTX - UTMPTDCLS 
  
          206 OF THE SYMPL PROGRAMS ARE MODIFIED TO USE THE SYMPL TEXTS 
          INSTEAD OF CALLING THE COMMON DECKS.
          RLM    79/03/01    15 NEW DECKS, 206 SYMPL PROGRAMS, CWEOR0 
  
 RQPARTX01   THE XREF WAS OMITTED FROM RQPARTX. 
          DB$RQST DEFINES THE REQUEST PARCEL AS AN XDEF,SO IT CANT
          USE THE TEXT RQPARTX. 
  
          RLM    79/03/28          RQPARTX, DB$RQST 
  
 CD2A149  PROBLEM - CDCS MODE 1 ERROR IN DB$ACCN. CAUSED BY FAILURE OF
          ACCMACRO TO INITIALIZE LAST ENTRY IN ACCOUNT TABLE, DUE TO
          FAILURE TO CHANGE CONSTANTS IN ACCMACRO WHEN DFFUNCMAX CHANGED
          SOLUTION - CHANGE CONSTANTS IN ACCMACRO TO REFLECT LARGER SIZE
          OF ACCOUNT TABLE, DUE TO ADDITION OF NEW FUNCTIONS. ALSO, ADD 
          DOCUMENTATION AROUND SAID CONSTANTS AND AROUND DFFUNCMAX-S
          DECLARATION INDICATING NEED FOR THE CHANGE IN FUTURE MODS.
          GFK    790316      ACCMACRO, CDCSFUNC 
  
 CD2A151  PROBLEM - THE K DISPLAY DOESNT WORK ON NOS
  
          SOLUTION - FIX LINE COORDINATES AND SOME LINE LENGTHS 
          IN THE K/L DISPLAY BUFFER.
  
          RLM    79-03-19    DB$DMGI
 CD2A156  PROBLEM - VALUES IN ACCOUNT TABLE NOT ACCURATE. 
          SOLUTION - ENTER NEW VALUES OBTAINED FROM SCP RUNS. 
          ALSO INCLUDED IS CODE TO BETTER FORMAT DAYFILE MESSAGES FROM
          DB$TIM, AND TO REMOVE AN UNNEEDED ITEM AND THE ONE REFERENCE
          TO IT.
          GFK    790322      DB$ACCT,DB$TIM,RSBARDCLS,DB$INV$ 
  
 CD2A157  PROBLEM - ON A RELATION READ, CONTROL BREAK IS BEING SET ON 
          THE RETRIEVAL OF THE LAST CHILD OCCURRENCE OF A RELATION TREE,
          RATHER THAN ON THE READ OF A NEW PARENT RECORD. 
          SOLUTION - SET CONTROL BREAK FOR A RANK WHEN AN INTERNAL
          BUBBLE UP IS BEING DONE, AND, ON EXIT FROM DB$MFP, SET
          CONTROL BREAK FOR THE CHILD RANK OF THE RANK WHICH HAS JUST 
          BEEN READ.
          MLA    79/03/22    DB$MFP 
  
 CD2A158  PROBLEM - AFTER A USER JOB ABORTS, CDCS WILL NOT REDUCE FL. 
  
          ANALYSIS - NOS SENDS MORE THAN ONE NOTIFICATION THAT THE UCP
                 HAS ABOTED.  CDCS RESPONDS TO THE SECOND WITH AN 
                 SF.ENDT, WITH UCPA = -1. 
                 NOS IS IN THE DMP JOB STEP ON THE UCP AND GIVE A 
                 RETURN CODE OF -JOB SWAPPED OUT-.
                 CDCS ISSUES AN SF.SWPI WHICH NOS NEVER REPLIES TO. 
                 CDCS IS LEFT IN AN ACTIVE STATE. 
  
          SOLUTION - IGNORE RETURN CODES WHILE TERMINATING A RUN UNIT.
  
          RLM    79/04/03    DB$SFCL
  
 CD2A159  PROBLEM - CDCS MODES OUT WHILE PROCESSING CONSTRAINTS.
          SOLUTION - SET THE FIT POINTER BEFORE CALLING GET.
          RLM    79/04/13    DB$CPRO
  
 CD20011  PROBLEM - CDCSBTF DOES NOT RETURN CONTROL TO APPLICATION
          PROGRAM AFTER TERMINATE REQUEST, CAUSING FTN FILE BUFFERS NOT 
          TO GET FLUSHED. 
          SOLUTION - RETURN CONTROL TO APLLICATION PROGRAM, WITH RECOVER
          AFTER NORMAL TERMINATION. 
          GFK    79/04/09    CDCSBTF
  
 CD20018  PROBLEM - "DUPLICATES NOT ALLOWED" FOR ALTERNATE KEYS IS
          NOT WORKING FOR TWO REASONS.  1) DDL MARKS DUPLICATES NOT 
          ALLOWED BY A COMBINATION OF THE SCDCKEYNOT AND SCDCKEYDUP 
          BITS.  IF BOTH ARE TRUE OR BOTH ARE FALSE, KEYS ARE UNIQUE. 
          2) IN THE RMKDEF CALL ISSUED BY CDCS FOR THE KEY, A KEY 
          STRUCTURE OF 00 IS USED FOR UNIQUE (THE DEFAULT CONDITION). 
          CRM DOES NOT HANDLE THIS DEFAULT CORRECTLY. 
          SOLUTION - CORRECT THE CHECK IN DBMSTRD FOR THE DUPLICATES
          NOT ALLOWED CONDITION.  SPECIFY A KEY STRUCTURE OF 25 (U) 
          TO DECLARE UNIQUE KEYS EXPLICITLY.
          MLA    79/03/27    DB$CARE,CSTARDCLS
  
 CD20019  PROBLEM - REGISTER A0 IS CHANGED BY CDCS ROUTINES. CAUSES 
          PROBLEMS WHEN USED WITH FDBF VIA CDCSBTF. 
          SOLUTION - SAVE A0 WHEN CDCSBTF BEGINS PROCESSING A REQUEST.
          RESTORE A0 AS BTF ENDS REQUEST PROCESSING.
          GFK    790405      CDCSBTF,DB$$ARM
  
  
 CD2A131  PROBLEM - WHEN CDCS OPENS A FILE WHICH IS ALREADY OPEN FOR
          OTHER USERS, THE FILINFO REQUEST PERFORMED BY CRM FOR THE 
          OPEN MAY CONFLICT WITH OTHER PP ACTIVITY ON THE FILE. 
          THIS CONFLICT CAUSES AN LFM ERROR OR IO SEQ ERROR FROM THE
          NOS OPERATING SYSTEM. 
          SOLUTION - IF THE FILE HAS BEEN OPENED ONCE, CDCS WILL MOVE 
          THE FSTT ADDRESS FROM THE OPEN FIT TO THE FIT WHICH IS
          BEING OPENED.   A NON-ZERO FSTT ADDRESS WILL SERVE AS A FLAG
          TO CRM TO BYPASS THE FILINFO REQUEST (AM2A185). 
          MLA,WPC    79/04/30    DB$OPN$
 CD20005  PROBLEM - THE TEXT FOR DIAGNOSTIC 664 IS MISLEADING.
          SOLUTION - REWORD THE DIAGNOSTIC 664 TEXT.
          MLA    79/03/20    DB$ERRM
  
 CD20014  PROBLEM - A MODE ERROR RESULTS AFTER A RECORD LOCK IS MOVED 
                 FROM A WAIT QUEUE TO A LOCK QUEUE. 
  
          SOLUTION - SET THE ALOWNER BIT WHENEVER A LOCK IS MOVED INTO
                 THE LOCK QUEUE.
          RLM   79/05/01     DB$LOK 
  
 F2640W04 SUPPORT CODE FOR CDCS OVCAPS
          LGW    79/02/01    MACRO,DB$MTR,CDCSCOMMN,SKELETON,CDCS 
                             DB$AINT,DB$CLSA,DB$CMOH,DB$DDIF,DB$INT,
                             DB$PVCA,DB$PVCR,DB$RPT$,DB$RUPD,DB$TQTD, 
                             DB$MFI,DB$STD,DB$OPN$,DB$INV$
  
 CD2A154  PROBLEM - CDCS ACCOUNTING DAYFILE MESSAGE CONTAINED ASTERISKS 
          INSTEAD OF NUMBERS. CAUSED BY INAPPROPRIATE VALUE IN -TIME
          USED- ITEM BEING PASSED TO INTEGER TO DISPLAY CODE CONVERSION 
          ROUTINE.
          SOLUTION - CORRECT ITEM DESCRIPTIONS USED TO ACCESS TIMES AND 
          ALGORITHM FOR FINDING ELAPSED TIME. ALSO INCLUDED IS CODE TO
          ZERO -CHARGES PER REQUEST- ITEMS, 
          DO ACCOUNTING IN DB$TRU ONLY WHEN ACCOUNTING IS ON, 
          CORRECT ERROR PROCESSING PROBLEMS IN CDCSBTF, 
          DELETE AN OBSOLETE COMMENT IN RQPARDCLS,
          UPDATE COPYRIGNT INFO IN COMCCIO, 
          REPOINT A BASED ARRAY IN DB$ERR,
          AND UPDATE DOCUMENTATION IN DB$SFIT.
          GFK    79/05/02    CDCSBTF, COMCCIO, RQPARDCLS, DB$ACM1,
                             DB$ERR, DB$MFP, DB$SFIT, DB$TRU, DB$WRP, 
                             DB$$SIM
  
 CD2A167  PROBLEM - CDCS MODED OUT WHILE TRYING TO UNLOAD A CAPSULE 
          SOLUTION - THE SUPERVISOR ASSUMED THAT X5 WAS POINTING TO 
          THE CURRENT POSITION IN THE CAPSULE LISTS, BUT IT HAD BEEN
          CHANGED TO TEST THE CAPSULE LOADED FLAG.  THE CHANGE USED 
          B1 TO HOLD THE CURRENT POSITION.
          LGW    05/23/79    DB$OSUP
  
 CD2A170  PROBLEM - INCONSISTENT DELAY COUNTS CAUSE A CDCSBTF DEADLOCK. 
          SOLUTION - ADJUST DELAY PERIODS TO BE CONSISTENT BETWEEN
          NOS AND NOS/BE.  ALSO PROPORTIONAL DELAYS FOR PFM ATTEMPTS
          AND THE CDCSBTF DEADLOCK DIAGNOSTIC.
  
          NOTE - THIS CODE IS DEPENDENT ON CD2A165 WHICH ADJUSTS THE
          PFM DELAY PERIOD. 
  
          RLM    79-06-04    CDCSBTF,DB$MTR,DB$ROLL,DB$RCLL,DB$$RCM 
  
 *L505*    ************************************************ 
 F2640M01 PROBLEM - WORD ADDRESSABLE GET AND PUT SHOULD BE STATICALLY 
                 LOADED IN THE 0,0 OVERLAY. 
          SOLUTION - USE THE STLD.RM MACRO
          RLM    79-06-15          DB$WAIO
  
 F2640M02 PROBLEM - INTERNALLY CALLED ROUTINES CAUSE EXTRANEOUS ENTRY 
                 POINTS IN OVCAPS.
          SOLUTION - USE THE NOEPT MACRO IN OVCAP SKELETONS.
          RLM    79-06-20          SKELETON 
  
 F2640M03 PROBLEM - SINCE F2640M01, DBMSTRD AND DBQRFA ACCESS BAMLIB. 
          SOLUTION - ADD BAMLIB TO THE LIB LISTS IN SKELETON. 
          RLM     79-06-21   SKELGEN
  
 F2640M04 PROBLEM - WORD ADDRESSABLE GET AND PUT SHOULD BE STATICALLY 
                 LOADED IN THE 0,0 OVE9LAY. OF CDCS2 AND CDCSBTF ONLY 
          SOLUTION - MOVE THE STLD.RM MACRO TO DB$SYMB
          RLM    79-06-03    DB$WAIO, DB$SYMB 
 CD2A169  PROBLEM - CRM ERROR 120 GENERATED ON MDU RUN. CAUSED BY CHANGE
          IN CRM. FIELDS IN FIT WERE NOT BEING RESET AFTER FIRST CLOSE. 
          SOLUTION - ADD -DET- (DETACH) TO CLOSE CALL. THIS CAUSES CRM
          TO RESET FIT FIELDS WHEN NEXT OPEN USING THIS FIT OCCURS. 
          GFK    79/06/21    DB$WCLS (IN DB$WAIO) 
  
 *L508*    ************************************************ 
 CD2A067  PROBLEM - CDCS USES TOO MUCH CPU TIME 
  
          SOLUTION - DONT MAKE SO MANY CMM CALLS. 
  
          THE RCB AND ALT ENTRIES ARE SAVED IN A LIST TO BE REUSED. 
  
          THE SCHEMA RECORD WSA, SUBSCHEMA RECORD WSA AND THE 
          READ RELATION BUFFER ARE SAVED IN BETWEEN REQUESTS. 
          THEIR ADDRESSES ARE KEPT IN THE TQT.
  
          PROBLEMS WERE ALSO FOUND IN DB$LOK WHEN THERE IS A MIX OF 
          RECORD LOCKS AND AREA LOCKS.
  
          RLM    79/05/16 
                 CDCSCOMMN - ADD POINTERS FOR RCB AND ALT IDLE LISTS. 
                             DEFINE NEW TQT FIELDS. 
                 DB$CMOH   - FREE UNUSED BLOCKS.
                 DB$DEL$   - DONT ALLOCATE OR FREE THE WSA. 
                 DB$INT    - REVISED INITIALIZATION OF MONITOR RCB. 
                 DB$IREC   - MODIFY CALL TO DB$RCBC TO USE NO PARAMETER.
                 DB$ITC    - MODIFY CALL TO DB$RCBC.
                 DB$LNKG   - GET A BUFFER FROM THE SAVED STACK. (NEW) 
                 DB$LNKS   - SAVE A BUFFER IN THE STACK. (NEW)
                 DB$LOK    - USE DB$LNKG/DB$LNKS FOR ALT ALLOCATION.
                             REPAIR THE LOCK DEFICIENCIES 
                 DB$MFP    - SET READ RELATION BUFFER POINTER FROM TQT. 
                 DB$RCBC   - USE DB$LNKG TO GET AN RCB. 
                 DB$RD$    - USE SCHEMA RECORD WSA ASSOCIATED WITH TQT. 
                 DB$REL$   - USE WORKING STORAGE AREAS OF THE TQT.
                             COMBINE ENTRY POINTS DB$REL$ AND DB$RLS$ 
                 DB$REW$   - USE WORKING STORAGE AREAS OF THE TQT.
                 DB$SFIT   - BUFFERS ARE ALLOCATED TO THE TQT AS NEEDED.
                 DB$SWPO   - FREE WORKING STORAGE AREAS IF POSSIBLE.
                 DB$TQTC   - INITIALIZE WSA POINTERS TO ZERO. 
                 DB$TQTD   - FREE WORKING STORAGE AREAS.
                 DB$TRU    - MODIFY CALL TO DB$RCBC.
                 DB$WRP    - USE DB$LNKS TO SAVE RCB. 
                 DB$WR2$   - USE WORKING STORAGE AREAS OF THE TQT.
                 DB$SYMB   - ENTRY POINT DB$REL$ FOR DB$RLS$
                 SKELETON - INCLUDE DB$LNKG AND DB$LNKS 
  
 CD2A067A PROBLEM - CSFSCREC IS NOT ADEQUATE FOR WSA LENGTH.
          THERE ARE SOME INSTANCES WHEN CSFSCREC DOESNT GIVE THE LENGTH 
          OF THE LARGEST RECORD IN ANY OF THE FILES.
          SOLUTION - USE THE MAXIMUM OFFITMRL OF THE ATTACHED FILES.
          RLM    79-07-25    CDCSCOMMN, DB$ADAX, DB$SFIT
  
 CD2A067B PROBLEM - DB$LOK LOOPS WHEN CONCURRENT ACCESS IS ATTEMPTED. 
          SOLUTION - AN UNSUBSCRIPTED ARRAY REFERENCE IS CORRECTED. 
          ALSO - THE ALOWNER FLAG IS SET IN THE RECORD LOCK ALT.
                 THE CLEARING OF TQALT IS CORRECTED.
                 THERE ARE SOME DOCUMENTATION CORRECTIONS IN DB$LOK.
                 EXTRANEOUS USER SWAP OUT CALLS ARE REMOVED FROM
                 DB$ADAX AND DB$INV$. 
                 THESE SWAP OUTS ARE PERFORMED BY DB$ATCH.
          RLM    79-09-10    DB$LOK,DB$ADAX,DB$INV$ 
  
 CD2A129A PROBLEM - THE RL FIELD IN THE USER FIT IS NOT UPDATED.
          SOLUTION - FETCH THE REQUEST PACKET RL FROM THE UFT.
          RLM    79-07-12    DB$RD$ 
  
 CD2A168  PROBLEM - ONE DIAGNOSTIC IS USED UNDER THREE DIFFERENT
                 CIRCUMSTANCES.  THIS IS CONFUSING TO THE USER. 
          SOLUTION - ADD TWO MESSAGES.
          RLM    79-06-12          DB$LOK,DB$ERRM,DB$ERR
 CD2A171  PROBLEM - CDCS LETS YOU PERFORM CERTAIN OPERATIONS ON AN AREA 
          THAT IS DOWN. IF THE AREA WAS DOWNED DUE TO A CRM FATAL ERROR,
          PERFORMING ANOTHER OPERATION ON THAT AREA (FILE) WILL CAUSE 
          CRM TO ABORT CDCS.
          SOLUTION - THE STATEMENT WHICH CHECKED WHETHER OR NOT AN
          AREA WAS DOWN WAS INSIDE AN IF STATEMENT WHICH CHECKED TO 
          SEE IF THE OPERATION BEING PERFORMED BY CDCS WAS AN OPEN. 
          THE CHECK FOR A DOWN AREA WAS TAKEN OUT OF THIS IF STATEMENT. 
          DET    79/08/30$DB$ACHK 
  
 CD2A172  PROBLEM - MASTER DIRECTORY UTILITY (MDU) ALLOWS REPEATED
          MODIFIES OF A SCHEMA IN THE SAME JOB. CAUSED BY FAILURE OF
          DB$SR18 TO CHECK WHETHER A SCHEMA HAS ALREADY BEEN WRITTEN TO 
          THE NEW MD (IE., HAS ALREADY BEEN MODIFIED ). 
          SOLUTION - INSERT CODE IN DB$SR18 TO GENERATE AN ERROR IF 
          SCHEMA HAS ALREADY BEEN WRITTEN TO NEW MD.
          ADD NEW ERROR MESSAGE FOR THIS CONDITION TO DB$DADD.
          ALSO INCLUDED IS CODE TO CORRECT A DOCUMENTATION ERROR IN 
          DB$SR18, AND
          NEW, IMPROVED ERROR MESSAGE TEXTS IN DB$DADD. 
          GFK    79/07/31    DB$SR18, DB$DADD 
  
 CD2A181  PROBLEM - CDCS"S CMM OWN CODE EXIT WAS PLACED IN THE
          INITIALIZATION CAPSULE.  IF CMM EVER HAD TO CALL THAT ROUTINE,
          IT WOULD THEN EXECUTE WHATEVER HAPPENED TO BE IN THAT SPACE 
          AFTER THE CAPSULE WAS UNLOADED. 
          SOLUTION - REMOVE DB$MFI FROM THE INITIALIZATION CAPSULE. 
          LGW    07/13/79    SKELGEN
  
 CD2A186  PROBLEM - CODE IN DB$OSUP WAS EXPECTING A B REGISTER TO BE
          PRESERVED ACROSS A CALL TO FDL.ULC.  AS A RESULT IT 
          MODED OUT WHEN THE REGISTER WAS USED. 
          SOLUTION- USED ANOTHER REGISTER WHICH WAS PRESERVED BY FDL. 
          LGW    07/31/79    DB$OSUP
  
 CD2A188  PROBLEM - CDCS DOES NOT HANDLE PFM ERROR 111 ON NOS.
          PFM ERRORS 104 AND 111 ARE SHORT TERM SYSTEM INTERLOCKS.
          THEY SHOULD NOT BE HANDLED AS FILE BUSY CONDITIONS. 
          CD2A165 HANDLES ERROR 111 AS FILE BUSY.  IT IS PURGED.
          SOLUTION - ERRORS 104 AND 111 ARE GIVEN 8 TRIES BEFORE THEY 
          ARE HANDLED AS A FILE BUSY CONDITION. 
  
          PROBLEM 2 - THE USER JOB IS SWAPPED OUT ON A FILE BUSY
          CONDITION, BUT IS SWAPPED IN AGAIN IMMEDIATELY.  THE SWAP-IN
          OCCURS WHEN SCHEDULER NEXT SCHEDULES THE RCB TASK.
          SOLUTION - THE JOB IS IDENTIFIED AS ONE THAT SHOULDNT BE
          SWAPPED IN BEFORE THE PROCEDURE IS RE-ENTERED.  DB$ATCH*
          PERFORMS THE SWAP IN WHEN THE FILE IS ATTACHED. 
  
          RLM    79-08-08    DB$ATCH*,CDCSCOMMN,DB$SCHD 
  
 CD2A189  PROBLEM - NEED A DUMP OF CRM BEFORE REPRIEVE IS CALLED. 
          SOLUTION - CREATE A NEW COMPASS ROUTINE - DB$DUMP.
          CALL DB$DUMP FROM DB$PUNT.
          TRAP 600 SERIES CRM ERRORS IN DB$FTEX AND CALL DB$PUNT. 
          RLM    79-08-01    DB$DUMP,DB$PUNT,DB$FTEX AND SKELETON 
  
CD2A195   PROBLEM - WHEN 'CP' PARAMETER WAS CODED ON CDCS CONTROL CARD, 
                     NO MESSAGE GIVING CP SECONDS USED BY CDCS2 WAS 
                     OUTPUTTED TO DAYFILE.
          SOLUTION - THE STATEMENTS WHICH SET DEFAULT VALUES FOR
                     ACCOUNTING INFORMATION IN DB$INT WERE MOVED TO 
                     DB$AINT AS THE FIRST FEW EXECUTABLE STATEMENTS.
                     THEREFORE, THE PARAMETER ON THE CDCS CONTROL CARD
                     WILL BE ANALYZED AND SET ACCORDINGLY.
          MWW & LGW  79/09/11 DB$AINT, DB$INT 
  
CD2A205   PROBLEM  - CDCS ABORTS WHEN A USER TRIES TO LOCK AN AREA THAT 000120
                     HAS ALREADY BEEN LOCKED BY ANOTHER USER.  THE      000130
                     PROBLEM OCCURS IN DB$LOK (ENTRY POINT DB$LOKA)     000140
                     BECAUSE THE ADDRESS OF THE WRONG ALT (AREA LOCK    000150
                     TABLE) ENTRY IS PASSED TO THE IMBEDDED PROCEDURE,  000160
                     CREATEENTRY.                                       000170
          SOLUTION - CREATEENTRY IS CALLED TO ADD AN ALT ENTRY TO PUT   000180
                     THE SECOND USER ON THE AREA LOCK WAIT QUEUE.  THE  000190
                     ADDRESS OF THE ALT ENTRY FOR THE ALREADY           000200
                     ESTABLISHED AREA LOCK IS CORRECTLY PASSED TO       000210
                     CREATEENTRY IN THE ITEM, ALTX.  THIS CODE CORRECTS 000220
                     A PROBLEM IN THE CODE WRITTEN TO FIX PSR CD2A067,  000230
                     SO REFER TO PSR CD2A067 FOR MORE INFORMATION.      000240
          AWA^RLM 79/10/03   DB$LOK                                     000250
                                                                        000260
 CD20015  PROBLEM - MODE ERROR RESULTS FROM NOT INITIALIZING QRF TABLE. 
          SOLUTION - PLACE AN INTERLOCK ON THE QINT PROCESS 
  
          RLM    79/05/04    CDCSCOMMN - DEFINE BOOLEANS IN COMMON+RCB
                             DB$ERR  - EMERGENCY CLEARING OF INTERLOCK
                             DB$INT - PRESET INTQINT
                             DB$INV$ - OPERATE THE INTERLOCK SWITCHES 
                             DB$QRF - SAVE AND RESTORE POINTERS 
                             DB$RCBC - CLEAR SWITCHES WHEN CREATING RCB 
  
 *L518*    ************************************************ 
 CD2*80   CDCS/DBU 2 COPYRIGHT CONTROL DATA CORPORATION CODE FOR 1980.
          COMDECK COPYRDCLS CREATED TO CONTAIN COPYRIGHT DECLARATION(S).
          SPL    79/10/30    COPYRDCLS,CDCS,CDCSBTF,DBMSTRD,DBQRFA
                             DBRCN,DBRST,DB$INV,DB$INVS,CPUCIO,DBQRFI 
  
 CD2A110  PROBLEM - ON NOS, A USER JOB ABORTS WHEN CDCS IS NOT UP.
          SOLUTION - SET THE REAL TIME BIT AND ROLLOUT THE USER 
                 IF CDCS IS NOT UP. 
          RLM    79-10-31          DB$SSCL
  
 CD2A110A PROBLEM  - USER JOBS ON NOS ABORT IF CDCS IS NOT ACTIVE.
          SOLUTION - IF CDCS IS NOT ACTIVE, CLEAR THE ES BITS AND THE 
                     COMPLETION BIT BEFORE CALLING CDCS AGAIN.
          RLM    12-28-79    DB$SSCL
  
CD2A125   PROBLEM - WHEN A USER ATTEMPTS TO WRITE A RECORD WITH AN
                    ILLEGAL VALUE IN THE RECORD CODE FIELD, CDCS
                    RETURNS A 667 ERROR. THIS ERROR IS FATAL AND
                    ABORTS THE ENTIRE JOB. IT WOULD BE MORE CONVENIENT
                    TO THE USER TO TREAT THE ERROR AS NON-FATAL AND 
                    ALLOW FURTHER PROCESSING. 
          SOLUTION- CDCS ERROR CODES 667 AND 672 IN DB$ERRM WERE
                    CHANGED TO NON-FATAL ERRORS.
          MWW    79/09/26    DB$ERRM
  
 CD2A160  PROBLEM - CONSTRAINT DIAGNOSTIC ERROR 602 FROM DB$ERRM FLAGGED
                    A CRM ERROR, BUT DID NOT RETURN THE ERROR NUMBER. 
          SOLUTION - CHANGE ERROR MESSAGE TO INSERT CRM ERROR NUMBER. 
  
          MES     79/06/19     DB$ERRM
  
 CD2A162  PROBLEM - CDCS WAS ABORTED IF A USER REQUESTED TOO MUCH 
          MEMORY.  IN THIS CASE, THE USER SHOULD HAVE BEEN ABORTED
          RATHER THAN CDCS. 
          SOLUTION - IF A USER REQUESTS MORE THAN HALF OF THE AVAILABLE 
          FIELD LENGTH, ABORT THE USER.  IF A SYSTEM ERROR HAS OCCURRED,
          ABORT CDCS. OTHERWISE, JUMP TO A PROCEDURE WHICH WAS SPECIFIED
          TO HANDLE THE MEMORY OVERFLOW CONDITION.
          ALSO DELETE VARIABLE DB$MFX AND ALL REFERENCES TO IT, AS IT IS
          NO LONGER NEEDED. 
          PAM    79/09/13    DB$CMOH,DB$INT,DB$SCHD,DB$MFI,SKELGEN
                             DB$SFIT,DB$DPIF,DB$MF,DB$REL$
  
CD2A182   PROBLEM  - IF A READ RELATION IS DONE BEFORE ALL THE
                     FILES IN THE RELATION ARE OPEN, CDCS DOES NOT
                     READ THE RELATION, BUT DOES NOT INFORM THE 
                     USER OF THE ERROR, EXCEPT IN THE DATA BASE 
                     STATUS BLOCK. THIS IS DUE TO THE FACT THAT THE 
                     ES FIELD IN FITLIST WAS NOT SET WHEN THE ERROR 
                     WAS ENCOUNTERED. 
          SOLUTION - THE EXTERNAL ERROR NUMBER WHICH DB$ERR TRANSLATES
                     ITS PARAMETER INTO MUST BE INSERTED INTO THE 
                     FITLIST'S ERROR STATUS FIELD AND THEN REWRITTEN
                     TO THE UCP. THE PROBLEM IS THAT CDCS DOES NOT
                     READ UP THE FITLIST BEFORE IT DIAGNOSES THE FACT 
                     THAT THE FILE IS NOT OPEN. THEREFORE, THE FITLIST
                     MUST BE READ FIRST AND RSETFITS MUST BE CALLED TO
                     SET ES FIELD IN FITLIST. 
           LGW & MWW  79/09/28  DB$REL$ 
CD2A191   PROBLEM  - CDCSBTF ABORTS WITH A MODE ERROR WHEN GIVEN AN 
                     EMPTY LGO FILE.  CDCSBTF HAS MADE A CALL TO THE
                     USER-CALL LOADER VIA THE ROUTINE DB$$LDR.  THE 
                     LOADER HAS DETECTED THE ERROR AND RETURNED AN
                     ERROR STATUS; BUT CDCSBTF IGNORES THE ERROR AND
                     CONTINUES.  THE MODE ERROR OCCURS WHEN CDCSBTF 
                     BRANCHES TO THE ENTRY POINT RETURNED FROM THE
                     LOADER.  SINCE A LOADER ERROR OCCURRED; THE
                     ENTRY POINT IS ZERO. 
          SOLUTION - CDCSBTF WILL CHECK THE LOADER ERROR STATUS, AND
                     TERMINATE IF A FATAL LOADER ERROR HAS OCCURRED.
          AWA    79/10/19    CDCSBTF
  
 CD2A192  PROBLEM - CDCSBTF RUNNING ON NOS DOESNT ROLL ITSELF OUT 
          WHILE WAITING FOR A PERMANENT FILE. 
          SOLUTION - ADD A NOS-ONLY PROCEDURE, DB$ROLB. 
          FOR CDCS, DB$IGNR IS SUBSTITUTED FOR DB$ROLB. 
            IT IS A BOOLEAN FUNCTION THAT ALWAYS RETURNS "FALSE". 
          FOR CDCSBTF DB$ROLB IS INCLUDED WITH DB$$RCM. 
            IT IS A FUNCTION THAT ISSUES A ROLLOUT MACRO AND RETURNS
            A VALUE OF "TRUE".
          RLM    79-08-24    DB$ATCH*,DB$$RCM,SKELETON
  
CD2A197   PROBLEM  - A USER JOB RUNNING UNDER CDCSBTF ENDS WITHOUT
                     EXECUTING A TERMINATE.  CDCSBTF HANGS FOR 20 
                     MINUTES, AND THEN ABORTS WITH THE MESSAGE, 
                     "CDCSBTF DEADLOCK, JOB ABORTED."  THE TERMINATE
                     STATEMENT DE-ACTIVATES A USER; THE USER END IS 
                     INTENDED TO CAUSE CDCS TO DO ITS OWN TERMINATION 
                     PROCESSING IN DB$TERM.  IN THIS CASE, THOUGH, CDCS 
                     DOESN'T TERMINATE BECAUSE ONE USER IS STILL
                     FLAGGED AS ACTIVE.  CDCSBTF REPEATS ITS SCHEDULING 
                     LOOP, AND ALSO DOESN'T END BECAUSE A USER IS STILL 
                     FLAGGED AS ACTIVE.  AN INFINITE LOOP HAS OCCURRED; 
                     NOT REALLY A DEADLOCK. 
          SOLUTION - REPRIEVE PROCESSING AT USER END OF JOB CAUSES
                     CONTROL TO BE TRANSFERRED TO THE ADDRESS LOOPLAB 
                     IN CDCSBTF.  IF THE USER THAT JUST ENDED STILL HAS 
                     ITS JOB DONE FLAG (JOBDONEF) EQUAL TO FALSE; THEN
                     AN END WITHOUT TERMINATE HAS OCCURRED.  A DAYFILE
                     MESSAGE IS PRINTED INDICATING THE PROBLEM, AND 
                     CDCSBTF CALLS DB$TERM DIRECTLY, TO TERMINATE CDCS. 
                     IF OTHER USERS WERE STILL ACTIVE, THEIR PROCESSING 
                     IS NOT COMPLETED.
          AWA^GFK 79/10/05   CDCSBTF
  
CD2A204   PROBLEM  - CDCSBTF END PROCESSING ISN'T EXECUTED WHEN THERE 
                     IS MORE THAN 1 USER PROGRAM.  REPRIEVE PROCESSING
                     AT AN END OF JOB DOESN'T RETURN CONTROL TO 
                     CDCSBTF.  THIS IS BECAUSE CDCSBTF LOADS ONE COPY 
                     OF THE RECOVERY ROUTINE, RECOVR, FOR ITSELF; AND 
                     AN ADDITIONAL COPY WITH THE USER-CALL LOAD FOR 
                     EACH USER PROGRAM. 
          SOLUTION - THE ADDRESS OF RECOVR (AND SETUP.) IS SPECIFIED AS 
                     A PASSLOC IN THE USER-CALL LOAD.  THIS CAUSES A
                     SINGLE COPY OF RECOVR TO BE LOADED AND LINKED TO 
                     EACH USER PROGRAM. 
          AWA    79/10/15    DB$$LDR
  
CD2A208  PROBLEM  - THE SEQUENCES READ, UNLOCK, REWRITE AND READ, LOCK
                    REWRITE ARE CODING ERRORS. THE PROGRAM WILL APPEAR
                    TO RUN CORRECTLY, BUT WILL OCCASIONALLY CAUSE AN
                    ERROR TO ANOTHER PROGRAM DURING A CONCURRENT UP-
                    DATE RUNS. THE RELEASE OR REQUEST OF AN AREA LOCK 
                    WHEN THERE IS A RECORD LOCK CAN BE CAUGHT AND DIA-
                    GNOSED IN DB$LOK. 
         SOLUTION - IN DB$LOK, A CHECK HAS BEEN MADE TO PREVENT THE 
                    RELEASING OF THE EXISTING RECORD LOCKS WHEN AREA
                    LOCK OR UNLOCK CALL IS ISSUED. A NEW ERROR CODE 
                    (NON-FATAL, INTERNAL CODE 62) WILL BE ISSUED BY 
                    CDCS WHEN EITHER OF THE ABOVE SEQUENCE IS EN- 
                    COUNTERED.
         MWW&RLM  79/10/12    DB$LOK, DB$ERRM 
CD2A209   PROBLEM  - CDCS STOPS HONORING SOME USER CONTROL POINT
                     REQUESTS WHILE OTHER USER CONTROL POINTS ARE 
                     BEING SWAPPED IN AND OUT. HENCE, POOR PERFORMANCE
                     IS OBSERVED UNDER MULTIPLE CDCS USER ENVIRONMENT.
          SOLUTION - INSTEAD OF ISSUING A SWAP IN REQUEST TO THE
                     OPERATING SYSTEM WHEN CDCS IS SCHEDULED TO PROCESS 
                     A REQUEST FOR A JOB, A LIST OF SWAPPED OUT 
                     JOBS IS CREATED. PERIODICALLY, CDCS DOES AN
                     SF.STAT TO SEE IF THE JOB HAS BEEN SWAPPED IN. 
                     IF IT IS, CDCS PROCESSES ITS REQUESTS. 
          MWW&RLM  79/10/23  DB$MTR DB$SFCL DB$SWPO DB$ROLL CDCSCTX 
  
CD2A209A  PROBLEM - CDCS STOPS ROLLING ITSELF OUT WHEN ALL 5 USERS
                     RECORDED IN THE CDCS CREATED SWAP LIST ARE 
                     SWAPPED OUT. THE DUMMY RUN UNIT ID MTR WAS 
                     INCLUDED IN THE SWAP LIST. 
          SOLUTION - THE RUN UNIT ID FROM RCB IN DB$MTR IS USED TO
                     STORE THE ID IN THE SWAP LIST CREATED BY CDCS. 
          RLM,MWW   79/11/20   DB$MTR 
  
 CD2A211  PROBLEM - WHEN A ROOT-FILE OF A RELATION IS DOWNED,AND
                    AN OPERATION IS PERFORMED ON THE RELATION, CDCS 
                    IS ABORTED.  CHECKS FOR DOWNED AREAS ARE NEEDED 
                    ON DB$RDR$, DB$CPRO, AND DB$RCHK BEFORE PERFORMING
                    I/O ON A FILE.
          SOLUTION - INSERT A TEST IN THE START-RELATION (DB$RSR$)
                     RECORD-CHECK (DB$RCHK), AND THE CONSTRAINT PROCESSOR 
                     (DB$CPRO), TO CHECK FOR A DOWNED AREA TO ALLOW 
                     PROPER ERROR PROCESSING. 
          MES    79/11/21    DB$RSR$,DB$CPRO,DB$RCHK
  
CD2A212   PROBLEM  - A CONSTRAINED CHILD RECORD WAS ALLOWED TO BE 
                     REWRITTEN SUCH THAT IT HAS NO PARENT.  IN DB$REW$, 
                     A GET OF THE OLD SCHEMA RECORD IS REQUIRED FOR 
                     COMPARISON WITH THE NEW RECORD IN DB$CPRO
                     (CONSTRAINT CHECKING).  THE USER'S NEW RECORD IS 
                     OVERWRITING THE OLD RECORD, SO THAT DB$CPRO DOES 
                     NOT HAVE THE TWO RECORDS TO COMPARE. 
          SOLUTION - COPY THE OLD SCHEMA RECORD TO A TEMPORARY BUFFER,
                     AND PASS THE TEMPORARY BUFFER ADDRESS TO DB$CPRO.
          AWA    79/11/29    DB$REW$
  
 CD2A213  PROBLEM  - RANDOM MODE ERRORS OCCUR DURING CONSTRAINT TESTING.
          SOLUTION - SET THE FIT WSA ON EACH EXECUTION OF ACCESSCK. 
          RLM    79-12-05    DB$CPRO
  
 CD2A219  PROBLEM - CDCS MODE ERROR OCCURRED WHEN A CDCS APPLICATION
            WAS ABORTED. MODE ERROR OCCURRED IN DB$TQTD DUE TO THE
            GARBAGE VALUE IN THE TQT CREATED BY APPLICATION ABORT.
          SOLUTION - CLEAR TQSALX FIELD IN TQT BY DB$TQTC AND UPDATE
            SASCUSERS AND SASCHST FIELDS IN SAL BY DB$TQTD ONLY WHEN
            THE TQT IS NOT CREATED BY APPLICATION ABORT.
          RLM,WPC,RJP (79/11/26) DB$TQTC,DB$TQTD
  
 CD2A224  PROBLEM - WHEN CALLING THE CRM FORTRAN INTERFACE ROUTINES,
          NOT ALL THE PARAMETER LISTS ARE ZERO TERMINATED.
          SOLUTION - ADD DB$RA0 AS THE LAST PARAMETER IN THIS CALL TO 
          ZERO TERMINATE THE LIST.
          DET    79/12/11    DB$NKY, DB$FLSH, DB$DS25,
                             DB$LNIF, DB$SORT, DB$UQIN
  
CD2A210   PROBLEM  - IF A FILE IS BEING READ SEQUENTIALLY BY ALTERNATE
                     KEY AND LOGGING, MAPPING OR CONSTRAINTS ARE IN 
                     EFFECT, THE FILE POSITION IS LOST AFTER A REWRITE
                     OR DELETE.  THIS IS BECAUSE THE CDCS SYMBIONTS DO
                     A PRIMARY KEY RANDOM GET BEFORE THE REPLAC OR DLTE 
                     CRM CALL.
          SOLUTION - CREATE A NEW CDCS INTERNAL FIT (CALLED IFT) FOR
                     USE IN REWRITE AND DELETE OPERATIONS.  DO THE
                     PRIMARY KEY GET USING THIS IFT, RATHER THAN THE
                     UFT. 
          *CAUTION*  THIS CODE DEPENDS ON INSTALLATION OF FEATURE IDENT F2647RP.
          AWA    79/12/05    DB$ADAX,DB$DEL$,DB$DSCS,DB$IFEX(NEW) 
                             DB$REW$,DB$RIFT(NEW),DB$SIFT(NEW),DB$TQTD
                             CDCSCTX,SKELGEN
  
CD2A217   PROBLEM - CDCS GENERATES ASTERISKS IN CP USED FIELD IN THE
                    CDCS DAYFILE. 
          SOLUTION - THE ROUTINE DB$CPT WHICH COMPUTES THE CP SECONDS 
                    WAS CORRECTED AND THE PROPER VALUE WAS PRINTED
                    INSTEAD OF THE ASTERISKS. 
          MWW    79/12/11     DB$CPT
  
CD2A225   PROBLEM - CP AND IO CHARGES ARE ZEROES WHEN THE VALUE CODED 
                    ON THE CDCS CONTROL CARD ARE FRACTIONS OF THE 
                    DEFAULT VALUES. CDCS USED AND CHARGED FIGURES ARE 
                    NOT CONSISTENT. ALSO, CDCS USED SRU VALUE IS ZERO 
                    ON THE PRINTOUT.
          SOLUTION - CP AND IO TABLE VALUES WERE ADJUSTED 
                    TO CLOSE THE GAP BETWEEN CDCS USED AND
                    CHARGED FIGURES. DB$AINT WAS MODIFIED TO TAKE THE 
                    FRACTIONS OF THE DEFAULT VALUE. THE SRU USED
                    MESSAGE WAS REMOVED SINCE NOS DOES NOT PROVIDE
                    SRU INFORMATION FOR SCP. ALSO, CP AND IO CHARGED
                    VALUES WILL BE SEND TO THE DAYFILE FOR EACH 
                    INDIVIDUAL USER. AN ERROR IN CALULATING THE DIS-
                    PLACEMENT FOR RETRIEVING THE VALUES IN CDCS 
                    ACCOUNTING TABLE HAS BEEN FIXED.
                    NOTE - SINCE THESE MODIFICATIONS CORRECT PROBLEMS 
                    IN THE ACCOUNTING CALCULATIONS, THE RESULTING 
                    FIGURES WILL BE QUITE DIFFERENT THAN IN THE PAST. 
                    ALSO, THE CDCS USED FIGURE NOW INDICATES THE TOTAL
                    AMOUNT OF CP/IO TIMES USED BY CDCS INCLUDING THE
                    CHARGED AMOUNT. 
          MWW    80/01/07     DB$AINT, DB$ACM*, DB$ACM1, DB$AINT, DB$MSG
                              DB$ACCT, DB$ACCN
  
 CD2A227  PROBLEM - CDCS MODE ERROR OCCURRED WHEN A CDCS JOB WAS DROPPED
            AND CDCS WAS WAITING FOR A PF ON A AREA.
            THIS IS CAUSED BY THE SWAPPED OUT TABLE POINTER IN TQT (NEGA
            TIVE RSB POINTER).
          SOLUTION - MODIFY DB$TRU TO SET CONSTRAINT TYPE IN RCB LESS 
            THAN DFWAITPROC(12) TO MAKE DB$SCHD SWAP THE TABLES IN. 
            DFWAITTERM(9) IS DEFINED IN CDGDFDCLS.
          EPJ/RJP  (01/25/80)  CDGDFDCLS, DB$TRU
  
 CD20025  PROBLEM - PART OF THIS PSR SAID THAT OPENM, THE OPEN CRM
          INTERFACE ROUTINE, CHANGES THE PD FIELD OF THE FIT DURING 
          PROCESSING. THIS WAS NOT DUPLICATABLE. ALSO, DURING DBRCN 
          PROCESSING, ONLY THE FIRST PASSWORD LISTED IN THE MASTER
          DIRECTORY FOR DATA OR INDEX FILES IS OBTAINED. IF OTHER 
          PASSWORDS ARE NECESSARY FOR THE ATTACH, A PFM ERROR OCCURS. 
          SOLUTION - FIX DB$ATWR TO GET ALL OF THE NECESSARY PASSWORDS
          FROM THE MASTER DIRECTORY. ALSO, CORRECTIONS WERE MADE TO 
          THE REPORT GENERATED BY THE RECOVERY UTILITIES. 
          DET    79/12/05    DB$ATWR, DB$RUPD 
  
F2647BA   FEATURE  - FEATURE CODE FOR CPS R8 OPERATOR INTERFACE.  SEE 
                     ALSO IDENT F2647LW FOR MORE INFORMATION.  THE
                     FOLLOWING MODULES ARE EFFECTED-- 
          DB$DDFE  - MOVE DATA ITEMS USED IN COMMON BY OPERATOR 
                     INTERFACE TO THE (0,0) OVERLAY.
          DB$DDIF  - REMOVE COMMON DATA ITEMS FROM THE OPERATOR 
                     INTERFACE CAPSULE. 
          DB$DSCS  - ADD UP, DOWN, AND IDLE PROCESSING FOR AN AREA. 
          DB$DSFA  - NEW ROUTINE TO FIND AREA NAME OR ID IN MASTER
                     DIRECTORY. 
          DB$DSLN  - OPERATOR DISPLAY DESCRIBING NEW COMMANDS--UP DOWN
                     IDLE AN AREA, RETAIN, RETURN, AND STATUS.
          DB$DSNI  - MODIFY DB$DS19 TO VALIDATE SC AND AR PARAMETER 
                     COMBINATIONS.
          AWA    79/12/01    DB$DDFE,DB$DDIF,DB$DSCS,DB$DSFA,DB$DSLN, 
                             DB$DSNI
  
 F2647EJ  CDCS/QU INTERFACE FEATURE 
          ENHANCEMENTS FOR INTERACTIVE CDCS USE:  
           A NON-ZERO TASK NUMBER WAS INTRODUCED TO IDENTIFY THE
           QU USER. FOR DATABASE FILE ATTACHING, CONTROL RETURNS TO 
           QU IF THE FILES CANNOT BE ATTACHED IMMEDIATLY. 
           SEE FEATURE F2647RP (TAF/CDCS) FOR DESCRIPTIONS OF 
           ERROR PROCESSING, LOCKED RESOURCE HANDLING AND PRIORITY
           SCHEDULING FOR REAL-TIME TASKS.
          THE CAPABILITY WAS ADDED TO CONVERT FROM PRE-CPSR8 REQUEST
           PACKETS TO CPSR8 REQUEST PACKETS.
          THE FOLLOWING NEW FUNCTIONS HAVE BEEN PROVIDED: 
           READ SEQUENTIAL ON AN INDEX FILE.
           READ RANDOM ON AN INDEX FILE.
           REWIND RELATION. 
           REWIND AREA FILE.
           REWIND INDEX FILE. 
           SKIP ON AN AREA FILE.
           START ON AN INDEX FILE.
           REAL TIME INVOKE.
          AND GLOBAL DEFINITIONS FOR THE OBJECT LIBRARY.
          EPJ    79/12/13    MODIFIED ROUTINES: 
                             DB$ACCT, DB$ACHK, DB$ADAX, DB$END$,
                             DB$ERR, DB$ERRM, DB$IREC, DB$RCHK, 
                             DB$REL$, DB$RLCK, DB$RLDN, DB$RQST,
                             DB$RSR, DB$RSR$, DB$SFIT, DB$SSCL, 
                             SKELETON.
                             COMMON DECKS MODIFIED: 
                             CDGDFDCLS, CDCSCOMMN, CDCSFUNC, CUGDFDCLS, 
                             FITDCLS, UTCDFDCLS.
                             NEW ROUTINES:  
                             DB$GLDF, DB$INQ, DB$RDX1, DB$RDX2, 
                             DB$RDX$, DB$RWR, DB$RWR$, DB$RWF,
                             DB$RWX, DB$RW$, DB$SKF, DB$SKF$, 
                             DB$STX, DB$STX$. 
  
 F2647GK PROBLEM - MASTER DIRECTORY UTILITY REQUIRES COMPLETE 
          REPROCESSING OF SCHEMAS AND SUBSCHEMAS IN ORDER TO CHANGE 
          PERMANENT FILE DATA FOR AREAS, INDEXES, AND DB PROCEDURE
          LIBRARY FILES.
          SOLUTION - IMPLEMENT NEW FEATURE TO CHANGE PERMANENT FILE DATA
          WITHOUT REPROCESSING SCHEMAS OR SUBSCHEMAS. 
          ALSO INCLUDED IS CODE TO MAKE MASTER DIRECTORY UTILITY ACCEPT 
          DDL 3.1 AND DDL 3.2 SCHEMAS AND SUBSCHEMAS, 
          AND TO ACCEPT MDU 2.1 AND 2.2 MASTER DIRECTORIES. 
          GFK    79/11/20    CUGDFDCLS, MDABTDCLS, MDARDDCLS, MDPFNDCLS,
                             MD10CDCLS, SEMJPDCLS, SKELETON, UTCDFDCLS, 
                             DB$COPN, DB$MABT, DB$MDPR, DB$MDQF, DB$MDSC
                             DB$M10M, DB$SRDM, DB$SRSF, DB$SRTF, DB$SRVS
                             DB$SR16, DB$SR18, DB$SR64, DB$SR69, DB$SR71
                             DB$SR72, DB$SR74, DB$SR75, DB$DADD, DB$MURR
                             DB$SNTX
  
 F2647LW THIS CODE, ALONG WITH IDENT F2647BA, COMPRISES THE CODE
          DEVELOPED TO ENHANCE THE OPERATOR INTERFACE.  THE EXTENSIONS
          ALLOW THE OPERATOR TO CHANGE THE STATUS OF AREAS, AND TO
          INQUIRE ABOUT THE STATE OF AREAS AND JOBS.
          MODULES CHANGED:  
  
            DB$ACHK - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$ADAX - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$CLSA - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$CPRO - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$DMGR - CHANGED TO INCREASE NUMBER OF TIMES A POLL INFORMS
                      CDCS THAT THERE IS NO CONSOLE WATCHER BEFORE CDCS 
                      BELIEVES THE DISPLAY IS DE-ASSIGNED 
            DB$DSNI - ACTIVATE SEMANTIC ROUTINES PERTAINING TO  AREAS 
                      AND JOBS. 
            DB$DSUA - NEW...DETERMINES IF RUN UNIT USES GIVEN AREA
            DB$DSVL - CHANGED TO ACTIVATE SEMANTICS FOR JOBS AND AREAS
            DB$DS26 - NEW ROUTINE...DISPLAYS STATUS OF GIVEN JOBNAME
            DB$DS27 - CHANGED TO PRINT STATUS OF JOBS AND AREAS 
            DB$FTEX - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$GETN - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$SEK  - CHANGED TO UTILIZE OFT*S NEW STATUS SWITCH
            DB$TQTD - CHANGED TO DETECT WHEN LAST USER OF AN AREA GOES
                      AWAY AND CHANGES AREA*S STATUS ACCORDINGLY
            DB$DSTX - ACTIVATES SYNTAX SPECIFICATIONS FOR JOBS AND AREAS. 
          LGW     79/12/01     DB$ACHK,DB$ADAX,DB$CLSA,DB$CPRO,DB$DMGR
                               DB$DSNI,DB$DSUA,DB$DSVL,DB$DS26,DB$FTEX
                               DB$GETN,DB$SEK,DB$TQTD,DB$DSTX,SKELGEN 
  
F2647MW1  PROBLEM - CURRENTLY, CDCS MAKES A FILE INACCESSIBLE IF AN 
                     OPERATION RESULTS IN A FATAL AAM ERROR. IN THE 
                     MULTIPLE FIT ENVIRONMENT, THIS MEANS THAT ALL
                     USERS OF THAT FILE ARE DENIED ACCESS IF ONE USER 
                     SUBMITS SUCH A REQUEST.
          SOLUTION - AAM CATEGORIZES THE ERROR INTO TWO TYPES. THE
                     FIRST TYPE INDICATES A TRULY FATAL ERROR, I.E.,
                     AN ERROR DENOTING A POSSIBLY BAD FILE STRUCTURALLY.
                     FOR THIS TYPE OF ERRORS, THE BAD FILE FLAG IN USER 
                     FITS IS SET BY AAM. CDCS USES THIS FLAG AS BASIS 
                     FOR DOWNING AN AREA IN ROUTINES DB$FTEX AND
                     DB$CPRO. 
          MWW      79/11/15   DB$FTEX DB$CPRO 
  
F2647MW2  PROBLEM - CDCS DATA BASE ADMINISTRATORS DO NOT HAVE VECHICLE
                     TO SET THE MAXIMUM BUFFER POOL SIZE USED BY AAM
                     FOR ALL OPEN FILES.
          SOLUTION - A NEW OPTION, BL, CAN BE SPECIFIED ON THE CDCS 
                     CONTROL CARD. ITS VALUE WILL BE PASSED TO AAM AS 
                     THE MAXIMUM VALUE FOR BUFFER POOL SIZE ACROSS
                     ALL OPEN FILES.
          MWW    79/11/15    DB$AINT
  
 F2647PM PROBLEM - THE DATA BASE STATUS BLOCK DOES NOT INCLUDE FILE 
                    POSITION. 
          SOLUTION - THIS CODE IS A NEW FEATURE TO ADD FILE POSITION
                    TO THE DATA BASE STATUS BLOCK.  THIS FIELD IS 
                    UPDATED IN DB$WRP AND DB$ERR AFTER ANY COMMAND THAT 
                    CHANGES THE FILE POSITION.  IN DB$SYMB, BITS ARE
                    SET IN THE WORDS IF THE FUNCTION CHANGES THE FILE 
                    POSITION. 
          PAM    11/14/79    DB$ERR,DB$WRP,DB$SFIT,DB$SYMB
  
 F2647RM  PROBLEM - THE RCB AND ALT TABLES ARE BOTH LARGER THAN NEEDED. 
          PRIOR TO CD2A067 BOTH OF THESE TABLES WERE REQUESTED FROM CMM 
          ON EACH OCCURRANCE.  THE SIZE WAS TAILORED TO THE NEED. 
          CD2A067 STARTED RETAINING THEM FOR REUSE, SO A MAXIMUM SIZE 
          WAS REQUIRED. 
          SOLUTION - REDEFINE THE RCB LENGTH DEFINITION TO ELIMINATE
          THE EXCESS LENGTH.
          USE A STANDARD ALT FOR KEY LENGTHS UP TO 30 CHARACTERS. 
          CALL CMM FOR LARGER ALT ENTRIES.
          RLM    79-10-31    DB$LOK, DB$ROLL, CDGDFDCLS 
  
 F2647RP  CDCS/TAF INTERFACE FEATURE (DCS LOG ID S2758) 
          REQUIRES TO ENHANCE 
          1. REQUEST PACKET PROCESSING(ALSO FORMAT) 
             ANOTHER WORD(THIRD WORD) IS ADDED TO THE REQUEST PACKET
             HEADER. IT CONTAINS THE SUB-CONTROL POINT BIAS(RA), FL,
             AND TAF TASK SEQUENCE NUMBER.
             THE NON-ZERO TASK SEQUENCE NUMBER IS USED TO IDENTIFY
             TAF TASKS. 
          2. ERROR PROCESSING 
             CDCS RETURNS THE CONTROL TO TAF INSTEAD OF ABORTING IT 
             WHEN A FATAL ERROR IS DETECTED IN TAF TASK.
          3. LONG TERM ATTACH 
             RETAIN AND RETURN OPERATOR COMMANDS ARE PROVIDED 
             FOR THE FUNCTION.
          4. DOUBLE INVOKE SUPPORT
             THE SAME SCHEMA AND SUBSCHEMA NAMES CAN BE USED IN THE 
             SUBSEQUENT INVOKE BY TAF TASKS. THIS IS NOT ALLOWED FOR
             BATCH JOBS.
          5. LOCKED RESOURCE HANDLING 
             WHEN A TASK REQUEST FROM TAF IS INVOLVED IN A LOCKED 
             RESOURCE, CDCS TREATS THE SITUATION LIKE DEADLOCK AND
             RETURNS CONTROL TO TAF WITH NON-FATAL ERROR. 
          6. PRIORITY SCHEDULING FOR REAL TIME TASKS
             CDCS PROVIDES HIGHER PRIORITY TO TAF TASKS.
  
          WPC,RJP (79/11/26) ASLDCLS,CDGDFDCLS,CDCSFUNC,CDCSCOMMN,
                             DB$FUNC,RQPARDCLS,DB$ABT,DB$ABT$,DB$ASLC,
                             DB$ASLF,DB$INT,DB$INV$,DB$ITC,DB$FTDX, 
                             DB$LOK,DB$PST,DB$RD$,DB$RLSA,DB$RLSF,
                             DB$RLSP,DB$SCHD,DB$SFCL,DB$TQTD,DB$TRU,
                             DB$WRP,DSMJPDCLS,SKELETON,DB$DDFE,DB$DDGN, 
                             DB$DDIF,DB$DSMF,DB$DSCS,DB$DSNI,DB$DSTX, 
                             DB$GOFT,DB$LTSB,DB$LTSC,DB$OSUP
  
 F2647LW1 PROBLEM - UNSATISFIED EXTERNAL DB$FDA IN CDCSBTF
          SOLUTION - INSERT *INCL* FOR DB$FDA IN THE SKELETON 
          LGW    01/29/80    SKELGEN
 F2647LW2 PROBLEM - UNSATISFIED EXTERNAL DB$DSUA IN CDCSBTF 
          SOLUTION - INSERT *INCL* FOR DB$DSUA IN SKELETON
          LGW    01/29/80    SKELGEN
 CD2A225  PROBLEM.  CDCS MODED OUT WHEN CP AND IO PARAMETERS ARE
          SUPPLIED ON THE CDCS CONTROL CARD.
          SOLUTION. FOR A CDCS INVOKE REQUEST, CDCS MISTAKENLY EXECUTED 
          THE ROUTINE WHICH CALCULATES THE CHARGES FOR AN ALTERNATE KEY 
          OPERATION IN ROUTINE DB$ACCN. TO CORRECT THIS PROBLEM, AN END 
          STATEMENT WAS CODED TO INCLUDE THE ALTERNATE KEY CHARGES
          ROUTINE IN THE SCOPE OF THE IF STATEMENT WHICH CHECKS FOR 
          PRIMARY AND ALTERNATE KEY CHARGES.
          MWW    01/31/80    DB$ACCN
 CD2A200  PROBLEM -- THE ALGORITHM WHICH CDCS USES TO DECIDE WHICH USER 
          TO GIVE A RECORD LOCK TO ( WHEN ONE BECOMES AVAILABLE ) 
          IS TO GIVE IT TO THE NEXT ONE IN THE QUEUE. IF THIS 
          USER IS SWAPPED OUT, CDCS SLOWS DOWN A LOT BY FORCING 
          THIS USER TO BE SWAPPED IN. IF NO MORE MEMORY IS
          AVAILABLE, A DEADLOCK SITUATION MAY RESULT. 
          SOLUTION -- GIVE A RECORD LOCK ONLY TO A USER THAT IS 
          SWAPPED IN. IF NO USER IS SWAPPED IN THEN GIVE THE LOCK 
          TO A USER THAT HAS BEEN DENIED THE LOCK FOR A LONG TIME 
          ( BECAUSE HE'S SWAPPED OUT ) AND FORCE HIM TO BE SWAPPED IN.
          DB$SFST,  A NEW ROUTINE, WAS CREATED TO DO A NON-INTERRUPTIBLE
          STATUS SFCALL.
          DET    80/1/18     CDCSCOMMN, DB$LOK, DB$SFST, SKELETON 
  
 CD2A226  PROBLEM - CDCS WOULD NOT ABORT THE USER AFTER INTERNAL FATAL
                    ERROR NUMBER 31.
          SOLUTION - IF THE ENDT FLAG IS TRUE IN DB$IREC, DO NOT SET IT 
                    TO FALSE, BUT WAIT UNTIL IT IS SET IN DB$WRP. 
                    ALSO, BEFORE CALLING DB$ERR(31), SET THE TQLTCF FLAG
                    TO TRUE SO THE RUN UNIT WILL BE TERMINATED. 
          PAM,RLM 80/01/23   DB$IREC
  
  
 CD2A229  PROBLEM - A BATCH JOB TRYING TO ACCESS CDCS WHEN IT IS
                    NOT ACTIVE AT A SYSTEM CONTROL POINT WILL 
                    WAIT INDEFINITELY WITHOUT ANY DIAGNOSTIC
                    MESSAGES (NOS ONLY).
  
          SOLUTION- MODIFY DB$SSCL TO WRITE A MESSAGE TO THE
                    USER DAYFILE EVERY THREE MINUTES WHEN WAITING 
                    FOR CDCS (NOS ONLY).
          EPJ    80/02/19    DB$SSCL
  
 CD2A234  PROBLEM -- ON A MEMORY OVERFLOW, CMM CALLS THE DB$MFI OWNCODE 
                     ROUTINE WITH A MEMORY ERROR CODE 3.
                     ANY MEMORY ERROR CODE CAUSES A CDCS ABORT. 
          SOLUTION - IGNORE A CODE 3. 
                     SET CDCS ABORT OPTION IN DB$ERR AND DB$CLSA
                     TO AVOID AN INFINITE LOOP. 
                     THIS IS A FURTHER CORRECTION OF CD2A162. 
          RLM    80-02-01    DB$CLSA,DB$ERR,DB$MFI
  
 CD2A237  PROBLEM - CDCS ROLLS ITSELF OUT AND DOES NOT TRY TO ATTACH
            FILES WHEN (1) ONLY ONE TASK REQUEST EXISTS IN THE RCB
            CHAIN AND (2) A FILE TO BE ATTACHED IS BUSY.
            ALSO, THE ATTACH DELAY LOOP IS TOO LONG TO GIVE A REAL-TIME 
            RESPONSE FOR AN INTERACTIVE TASK. 
            THIS IS ONLY A NOS PROBLEM. 
          SOLUTION - DO NOT DECREASE "SCHDCOUNT" BY 1 IN DB$ATCH TO 
            INDICATE THAT THERE IS AN ACTIVE USER,  AND REDUCE THE
            ATTACH TRY COUNT TO 2 FOR AN INTERACTIVE TASK.
          RJP, RLM    80/02/20    DB$ATCH*
  
CD20012   PROBLEM  - CDCS AND CDCSBTF DO NOT RETURN DATABASE FILES AFTER
                     AN ABNORMAL TERMINATION.  ALL FILES (EXCEPT OUTPUT)
                     ARE CLOSED, BUT DATABASE AND INDEX FILES ARE STILL 
                     INCORRECTLY LEFT ATTACHED.  SUBSEQUENT JOB STEPS 
                     COULD ABORT BECAUSE OF THIS. 
          SOLUTION - CREATE A NEW ROUTINE FOR REPRIEVE PROCESSING 
                     (CALLED DB$RCVR) IN CDCS AND CDCSBTF.  DB$RCVR 
                     CLOSES MD, SWAP, LOG AND OUTPUT FILES.  DATABASE,
                     INDEX AND PROC LIB FILES ARE RETURNED.  CLOSING
                     DATABASE AND INDEX FILES IS NOT NEEDED BECAUSE CRM 
                     REPRIEVE PROCESSING FLUSHES THEM.
                     ALSO INCLUDED ARE COMMENT CHANGES IN CDCSBTF AND 
                     DB$$SIM. 
          GFK,AWA  80/02/01  CDCSBTF, DB$CLOG, DB$INT, DB$RCVR(NEW),
                             DB$$SIM, SKELGEN 
  
 F2647BM  PROBLEM  - DURING CRM EXECUTION,QRF LOGGING AND SOME OTHER
                     TIMES CDCS IS UNABLE TO ACCEPT NEW REQUESTS FROM 
                     ITS USERS. 
                     AFTER ONE REQUEST HAS BEEN PLACED IN THE INPUT 
                     AREA, THE OPERATING SYSTEM IS FORCED TO HOLD OTHER 
                     REQUESTS UNTIL CDCS ACCEPTS THE FIRST ONE. 
                     ALSO, CDCS HAS TO MOVE EACH REQUEST FROM THE INPUT 
                     AREA TO AN RCB.
          SOLUTION - RESTRUCTURE DB$IREC SO THAT IT WILL ACCEPT A 
                     REQUEST WITHOUT PROCESSING IT. 
                     THIS PERMITS DB$IREC TO BE CALLED FROM 
                     NON-INTERRUPTABLE PROCEDURES.
                     A NEW CRM INTERFACE PROCEDURE, DB$CRMR, PERMITS
                     REQUESTS TO BE ACCEPTED DURING CRM RECALL PERIODS. 
                     ALSO, RA.SSC (THE OPERATING SYSTEM INTERFACE WORD) 
                     IS SET SO THE NEW REQUEST IS DELIVERED DIRECTLY TO 
                     A WAITING RCB. 
          RLM    80-01-23 
                 CDCSCOMMN   DELETE INPUT REQUEST BUFFER DEFINITIONS
                 SKELETON    ADD NEW ROUTINES, MOVE SOME TO OVCAP 
                 SSIDDCLS    (NEW COMDECK) TO DEFINE SUBSYSTEM ID 
                 DB$AINT     CALL DB$MFLS INSTEAD OF DB$SSIN
                 DB$CRMR     (NEW) ACCEPT REQUESTS WHILE CRM IN RECALL
                 DB$INT      ADD CALL TO DB$SSIN
                 DB$IREC     MAJOR RESTRUCTURE
                 DB$ITC      REVISE INTERFACE TO DB$RCBC
                 DB$MTR      NO ACTIVITY IF RCCONSTRA EQ STATBUSY 
                 DB$RCBC     CHANGE INITIALIZATION OF RCB FIELDS
                 DB$RCBQ     (NEW) PLACE RCB IN EXECUTE QUEUE 
                 DB$TERM     CANCEL FURTHER INPUT BEFORE TERMINATING
                 DB$TRU      CHANGE INTERFACE TO DB$RCBC
                 DB$$SIM     REVISE SIMULATION OF CALLSS
                 DB$MFLS     (NEW COMPASS) SET MFL - FORMERLY IN DB$SSIN
                 DB$MGFS     CORRECT PARAMETER HANDLING 
                 DB$RCLL     CALL DB$IREC TO ACCEPT INPUT DURING RECALL 
                 DB$ROLL     USE LOCAL REQUEST BUFFER DURING ROLLOUT
                 DB$SELF     (NEW COMPASS) CALL SELF TO BLOCK INPUT 
                 DB$SFCM     DEFINE DB$SSC - FORMERLY DEFINED IN DB$SSIN
                 DB$SSCL     INSERT *CALL SSIDDCLS
                 DB$SSIN     INSERT *CALL SSIDDCLS, REMOVE SETMFL 
  
 F2647BM1 PROBLEM -- CDCSCOMMN IS NOT PRESET. 
          SOLUTION - INITIALIZE THE VALUE OF TQTCHAIN.
          RLM    80-02-22    DB$INT 
 F2647CR  PROBLEM -- THERE IS NO DOCUMENTATION FOR DB$TRCD. 
          SOLUTION - SUPPLY DOCUMENTATION.
          RLM,CFR  80-02-01  DB$SCHD,DB$TRC 
  
 F2647DT1 PROBLEM -- AFTER DOING A CORRECTION UPDATE RUN, IT IS HARD TO 
          KEEP TRACK OF WHAT SOURCE IS ON WHAT RECORD OF THE COMPILE
          FILE. THIS CAUSES MANY ERRORS IN THE COMPILE PHASE OF BUILDS. 
          SOLUTION -- CHANGE ALL CWEOR DECKS TO TO DO UNCONDITIONAL 
          WEORS SO THAT THE COMPILE PHASE BUILDS CAN BE AUTOMATED.
          DET    80/2/14     CWEOR0, CWEOR1, CWEOR2, CWEOR3, CWEOR4 
  
 F2647EJ1 PROBLEM -(1) SOME DECKS ARE OUT OF ORDER ON THE CDCSPL
                       AND ONE DECK NO LONGER EXISTS IN THE SKELETON. 
                   (2) THE VALUE OF THE SYMPL DEFINED ITEM DFWCRWX
                       IS INCORRECT.
                   (3) TWO INCORRECT LINES IN DB$ADAX.
  
          SOLUTION-(1) PLACE DECKS IN THE PROPER ORDER AND REMOVE 
                       DB$ENDM FROM THE CDCSPL. 
                   (2) CHANGE THE VALUE OF THE SYMPL DEFINED ITEM 
                       DFWCRWX. 
                   (3) REMOVE THE INCORRECT LINES FROM DB$ADAX. 
          EPJ    80/02/19    DB$ADAX,CDGDFDCLS. 
  
 F2647LW3 THIS IS A NEW DEBUGGING TOOL FOR USE WITH THE *L* DISPLAY.
         IT ENABLES THE ANALYST TO OBTAIN A DUMP OF CDCS* CURRENT 
         FIELD LENGTH WITHOUT DROPPING CDCS.  IF A PREVIOUS DUMP
         EXISTS ON THE OUTPUT FILE, IT REQUESTS PERMISSION BEFORE 
         CONTINUING.  THIS IS NOT EXTERNALLY DOCUMENTED, THOUGH WILL
         BE WRITTEN UP IN THE IMS.
         LGW     02/20/80    DB$DSTX,DB$ODMP,DB$DDIF,SKELGEN
  
 F2647LW4 COMPANION CODE TO F2647LW - THIS CODE SPLITS OPERATOR INTER-
          FACE CODE CAPSULE IN TWO.  THE CAPSULE DB$DDIF HAS THE SCANNER
          AND SYNTAX TABLE DRIVER IN IT.  THE OTHER OVCAP, DB$DSFA, HAS 
          ALL THE SEMANTIC ROUTINES IN IT THAT DEAL WITH STATUS, RETAIN,
          ETC IN IT.  THIS IS TO LESSEN THE CHANCES OF A CDCS ABORT DUE 
          TO CMM PROBLEMS WHEN THE OPERATOR IS JUST TRYING TO TERM CDCS.
          IT ALSO OPENS POSSIBILITIES TO SPLIT ALL THE OPERATOR COMMANDS
          INTO CAPSULES BY FUNCTION, SHOULD THIS BECOME NECESSARY.
          LGW    02/20/80    SKELGEN,DB$OSUP
  
F2647MW2A PROBLEM - CDCS DOES NOT DIAGNOSE BL=, CP= OR IO= WITHOUT
                     A VALUE ON THE CDCS CONTROL CARD AS AN ERROR.
          SOLUTION - WHEN BL=, CP= OR IO= IS CODED ON THE CDCS CONTROL
                     CARD, THE OPERATING SYSTEM ASSUMES A ZERO VALUE. 
                     THIS ZERO VALUE IS CHECKED IN DB$AINT AND HENCE
                     AN ERROR MESSAGE CAN BE ISSUED TO DIAGNOSE THE 
                     PROBLEM. 
          MWW    80/02/14      DB$AINT
  
 F2647PM1 PROBLEM - THE CLOSE AND REWIND FUNCTIONS WERE NOT UPDATING
                 THE FILE POSITION FIELD IN THE DATA BASE STATUS BLOCK. 
          SOLUTION - ADD THE "POS" FLAG TO THE CLOSE FUNCTION AND ALL 
                 FORMS OF THE REWIND FUNCTION IN DB$SYMB. 
          PAM    80/02/13    DB$SYMB
  
 *L530*    ************************************************ 
 F2647DT  PROBLEM -- SOME OF THE ROUTINES ON THE CDCS2.2 PL DO NOT HAVE 
          JOVEC COMMENTS. THESE COMMENTS ARE NECESSARY FOR THE IMS AND
          MUST BE HAND WRITTEN IF THEY ARE NOT ON THE PL. 
          SOLUTION -- PUT THE JOVEC COMMENTS IN THE ROUTINES WHICH NEED THEM. 
          DET    80/2/18     DB$DADD, DB$MGOS, DB$OVCM
  
 CD2A236  PROBLEM - WHEN A RESTRICT CLAUSE WHICH HAS A DATA 
          NAME IS USED IN THE HIGHEST RANK OF A RELATION, A RANDOM
          READ MUST BE DONE TO CHANGE THE VALUE OF THE DATA NAME. 
          IF A NULL RECORD OCCURRED ON A LOWER RANK IN THE RELATION 
          THAN THAT OF THE RESTRICT CLAUSE, THE VALUE OF THE DATA 
          NAME WOULD NOT BE CHANGED.
          SOLUTION - CHANGE THE DATA NAME PROCESSING FROM DB$QUAL 
          TO DB$REL$.  THIS ALLOWS ALL RANKS WITH DATA NAMES TO BE
          PROCESSED BEFORE GOING INTO DB$QUAL.
          MES    80/3/1      DB$KMIF,DB$QUAL,DB$REL$
  
CD2A228   PROBLEM  - AFTER A CRM 532 ERROR, CDCS MODES OUT BECAUSE OF A 
                     BAD FSTT POINTER.  THE CRM ERROR OCCURS ON AN
                     OPENM CALL WHEN ANOTHER RUN-UNIT HAS ALREADY OPENED
                     THE FILE.  WHEN THE CRM 532 ERROR HAPPENS, THE UFT 
                     IS NOT DELINKED.  THUS, A CLOSEM CALL IS MADE WHEN 
                     THIS RUN-UNIT TERMINATES.  SINCE CRM ONLY KNOWS OF 
                     ONE OPEN UFT, THE FSTT POINTER IS LOST.  THE OTHER 
                     RUN-UNIT NO LONGER HAS A VALID FSTT POINTER. 
          SOLUTION - DELINK THE UFT IN ERROR PROCESSING IMMEDIATELY 
                     AFTER THE INVALID OPEN.
                     SIMILAR PROCESSING IS ALSO REQUIRED IN DB$CPRO AND 
                     IN DB$SIFT (FOR THE CDCS INTERNAL FIT, IFT). 
                     PSR AM2A227 IS ALSO REQUIRED TO FIX THIS PROBLEM.
                     THIS SOLUTION ALSO ANSWERS PSR-S CD2A228 AND 
                     CD2A253.  THE FILEINFO BYPASS FOR CD2A131 IS ADDED 
                     TO DB$CPRO IN THIS PSR TOO.
          AWA,EPJ  80/03/21  CDCSCTX, DB$CPRO, DB$ERR, DB$IFEX, DB$OPN$,
                             DB$SIFT
  
 CD2A261  PROBLEM -- IF A USER WHO ALREADY HAS AN AREA LOCKED 
          REQUESTS A LOCK FOR THAT AREA, CDCS WILL LOCK THE AREA
          AND FORGET WHO HAS THE LOCK. WHEN SOMBODY ELSE WANTS A LOCK 
          IN OR ON THAT AREA, THE DEADLOCK CHECKING ROUTINE 
          GETS CONFUSED BY THIS AND EVENTUALLY CALLS DB$PUNT. 
          SOLUTION -- IGNORE THE SECOND AREA LOCK REQUEST.
          DET    80/04/17    DB$LOK 
  
 F2647FP  PROBLEM -- THE CONCURRENT EXECUTION CAPABILITY OF CDCS MAKES
            IT DIFFICULT OR IMPOSSIBLE TO DEDUCE THE SEQUENCE OF
            EXECUTION THAT HAS PRECEDED A CDCS FAILURE. 
          SOLUTION - A FLOW POINT CAPABILITY IS INTRODUCED TO CDCS. 
            THE BASIC COMPONENTS OF THE FLOW POINT FACILITY ARE --
  
            DB$FLOP - THE FLOW POINT DATA COLLECTION MODULE.
              IT IS CALLED WITH A FLOW POINT IDENTIFICATION NAME PASSED 
              AS A PARAMETER. 
              IT ASSIGNS AN OCCURENCE SEQUENCE ON EACH CALL AND 
              MAINTAINS AN EXECUTION RECORD FOR EACH FLOW POINT NAME. 
              THE EXECUTION RECORD CONSISTS OF A COUNT OF THE NUMBER OF 
              TIMES THE FLOW POINT HAS BEEN EXECUTED AND THE SEQUENCE 
              NUMBERS OF THE LAST FOUR EXECUTIONS.
  
            DB$FLRP - WRITES THE FLOW POINT REPORTS ON THE OUTPUT FILE. 
  
            ALL CALLS TO DB$FLOP AND DB$FLRP ARE CONDITIONALLY COMPILED.
            IF DFFLOP IS DEFINED AS ZERO, THIS WHOLE THING DISAPPEARS.
  
          RLM    80-05-21    CDGDFDCLS  DFFLOP IS DEFINED 
                             DB$PUNT    THE DB$DUMP CALL IS REMOVED 
                             DB$RCVR    DB$DUMP AND DB$FLRP ARE CALLED
                             DB$TERM    DB$FLRP IS CALLED 
                             DB$DUMP    FLUSH OUTPUT FILE BEFORE DUMPING
                             SKELETON   INCLUDE DB$FLOP AND DB$FLRP 
  
          ALL                MOST CDCS RESIDENT SYMPL ROUTINES HAVE 
                             HAD CONDITIONAL CALLS TO DB$FLOP ADDED.
  
  
 CD2A232  PROBLEM - IN DBRCN/DBRST THE ES FIELD IN THE FIT WAS NOT
                    CLEARED IF A CRM ERROR OCCURRED ON A DATABASE AREA. 
                    ON SUBSEQUENT USES OF THIS AREA, THE SAME ERROR WAS 
                    DETECTED WHETHER IT REALLY OCCURRED.
         SOLUTION - IF A CRM ERROR OCCURS AFTER A WRITE, REWRITE, OR
                    DELETE, ZERO OUT THE ES FIELD IN THE FIT AFTER
                    PRINTING THE ERROR MESSAGE. 
         PAM     80/02/19    DB$RUPD
  
 CD2A236A PROBLEM  - WHEN USING RELATION PROCESSING THAT CONTAINS 
                     RESTRICT CLAUSES WITH LITERALS, CDCS FAILS 
                     WITH A MODE 1. 
          SOLUTION - THE MODE 1 WAS CAUSED BY INCORRECTLY POSITIONING 
                     AN AREA TABLE IN DB$REL$.  THE TABLE POSITIONING 
                     HAS BEEN CORRECTED.
          MES     80/04/23     DB$REL$
  
 CD2A238  PROBLEM - IN THE MASTER DIRECTORY UTILITY, THE OVERLAY LOADER 
                    DB$MLDV DOES NOT JUMP TO THE CORRECT OVERLAY ADDRESS
                    ON THE CYBER 176 BECAUSE OF THE DIFFERENT STACKING
                    MECHANISM.
          SOLUTION - CHANGE THE EQ INSTRUCTION TO AN RJ INSTRUCTION TO
                    CLEAR THE STACK.
          PAM    80/02/21    DB$MLDV
  
CD2A239   PROBLEM - CDCS DOES NOT ISSUE ACCOUNTING MESSAGES TO THE
                     USER DAYFILE AT THE END OF THE USER JOB ON NOS/BE. 
          SOLUTION - CURRENTLY, THE ACCOUNTING MESSAGES ARE ISSUED
                     FOR NOS JOBS BY DB$ACM*. THE COUNTER PART ROUTINE
                     DB$ACM ON NOS/BE IS A DUMMY ROUTINE. THEREFORE,
                     DB$ACM IS CHANGED TO ISSUE THE ACCOUNTING MESSAGES 
                     FOR BOTH NOS AND NOS/BE USER JOBS. ALSO, DB$ACM* 
                     IS PURGED. 
          MWW    80/04/01    DB$ACM,DB$ACM*,DB$ATCH,DB$ATCH*
  
CD2A240   PROBLEM - CDCS DOES NOT PROVIDE CPU UTILIZATIONS ON NOS.
          SOLUTION - A NEW ENTRY POINT DB$NCLK IN DB$CPT IS CODED TO
                     GET SYSTEM REAL TIME. THIS ROUTINE IS CALLED AT
                     CDCS INITIALIZATION TIME AND THEN CALLED AT THE
                     END OF THE CDCS SESSION. BASED ON THE DIFFERENCE 
                     OF THE REAL TIMES RETURNED FROM THESE TWO CALLS, 
                     THE CPU UTILIZATION FIGURE IS DERIVED. 
          MWW    80/04/01    DB$ACM1,DB$AINT,DB$CPT 
  
CD2A243   PROBLEM  - TWO COBOL PROGRAMS IN THE SAME LOAD FILE CAUSES
                     COBOL TO MODE OUT IN CDCSBTF.  THE USER-CALL LOAD
                     ENCOUNTERS TWO TRANSFER ADDRESSES.  CDCSBTF NEEDS
                     A SINGLE TRANSFER ADDRESS IN THE USER PROGRAM AT 
                     WHICH TO BEGIN EXECUTION.
          SOLUTION - CDCSBTF WILL PRINT A MESSAGE AND ABORT WHEN THERE
                     ARE MULTIPLE TRANSFER ADDRESSES. 
          AWA    80/04/10    CDCSBTF
  
 CD2A244  PROBLEM - CDCS MODES OUT AFTER *DOWN,CDCS* WAS ENTERED AT THE 
          CONSOLE.
          SOLUTION - TWO BUGS WERE AT WORK HERE:  1) THE CONTINUATION 
          ADDR SET BY DB$DSCS WAS ONE LEVEL OF INDIRECTION TOO FEW, I.E.
          THE TQT WAS CONTINUED AT DB$ERR, INSTEAD OF A CALL TO DB$ERR
          2) WHEN DB$IREC FOUND A TQT TO BE TERMINATED, IT SET THE RCB
          AND TQT POINTERS, WHICH CAUSED A MODE ERROR WHEN THE RSB WAS
          WAS REFERENCED IN LATER TERMINATION PROCESSING. 
          LGW     03/17/80     DB$IREC,DB$DSCS
  
 CD2A245  PROBLEM -- IF A USER WITH A RECORD LOCK IS SWAPPED OUT
          AND OTHER CDCS USERS ARE WATING FOR THIS LOCK, CDCS 
          DOES NOTHING BUT WAIT FOR THE OPERATING SYSTEM TO 
          SWAP IN THE LOCK HOLDER. THE WAITING USER DOES NOT GET
          CONTROL BACK UNTIL CDCS FINISHES PROCESSING ITS 
          REQUEST WHICH MAY BE A MATTER OF MANY MINUTES.
          SOLUTION -- EACH TIME A USER WANTS A RECORD LOCK AND THE
          LOCK-HOLDING USER IS SWAPPED OUT, THE LOCK-REQUESTING USER
          GETS SWAPPED OUT AND THE LOCK-HOLDING USER GETS SWAPPED IN. 
          THE ROUTINE TO DO THE SWAP OUT/SWAP IN, DB$SOSI, WAS CREATED
          FOR THIS PSR. 
          DET    80/04/30    DB$LOK, DB$SOSI, SKELGEN 
  
 CD2A249  PROBLEM - CDCS MODIFIES INSTRUCTIONS IN THE COURSE OF ITS 
          EXECUTION, WHICH CAUSES UNPREDICTABLE RESULTS ON THE A170 
          COMPUTER.  THE MODIFIED INSTRUCTION WILL NOT BE MODIFIED
          IF IT IS WITHIN THE CURRENT HARDWARE INSTRUCTION STACK. 
          SOLUTION - CAUSE THE INSTRUCTION STACK TO BE REREAD TO INCLUDE
          THE MODIFIED INSTRUCTION BY EXECUTING A RETURN JUMP.
          LGW    03/12/80    DB$OSUP,DB$PUSH
  
 CD2A251  PROBLEM -- CDCS GOES INTO A LOOP WHILE RUNNING INTERACTIVE QU.
          SOLUTION - CORRECT THE ADVANCEMENT TO THE NEXT RCB
                     WHEN SCHEDULING PRIORITY TASKS.
          RLM    80-03-10    DB$SCHD
  
 CD2A252  PROBLEM - THE BOOLEAN FUNCTION DB$SELF ALWAYS RETURNS -TRUE-. 
          SOLUTION- SET X6, NOT B6, TO ZERO.
          RLM    80-02-29    DB$SELF
  
 CD2A253  PROBLEM - WHEN USING AN APPLICATIONS PROGRAM COMPILED WITH
                    CDCS 2.1 OBJECT-TIME ROUTINES, THE
                    FOLLOWING MESSAGE IS ISSUED:  
                    # SUBSCHEMA NOT IN MASTER DIRECTORY #.
  
          SOLUTION- CORRECT THE CONVERSION ROUTINE TO CONVERT THE 
                    RECORD ORDINAL ONLY IF THE CURRENT FUNCTION IS
                    ONE THAT USES PRIMARY OR ALTERNATE KEYS.
          EPJ/RLM  80/03/12  DB$RCBQ
  
 CD2A254  PROBLEM - WHEN TRYING TO ATTACH A FILE FROM AN UNMOUNTED
          PACK ON NOS, CDCS DOES NOT RETRY TO ATTACH THE FILE.
          SOLUTION - CDCS IS CHECKING THE WRONG ERROR CODE FOR DEVICE 
          UNAVAILABLE.  CHANGE THE ERROR CODE CHECK IN DB$ATCH* FROM
          O"11" TO O"14".  FOR CDCSBTF CHANGE THE CALL TO THE ROLLOUT 
          MACRO IN DB$$RCM TO INCLUDE A TIME PERIOD OF 3 MINUTES. 
          THIS PREVENTS CDCSBTF FROM ROLLING IN AND OUT UNCONTROLLED. 
          THESE ARE NOS ONLY ROUTINES.
          MES   80/03/25     DB$ATCH*,DB$$RCM 
  
 CD2A264  PROBLEM  - THE FILE POSITION RETURNED IN THE DATABASE STATUS
                     BLOCK DOES NOT REPRESENT THE TRUE FILE POSITION
                     OF A RELATION. 
          SOLUTION - WHEN PROCESSING RELATIONS CHANGE THE FILE POSITION 
                     IN THE DATABASE STATUS BLOCK TO BE THAT OF THE 
                     ROOT FILE. 
          MES    80/05/21    DB$ERR, DB$REL$, DB$RSR$, DB$WRP,
                             RELCMTX(RSBRNDCLS) 
  
 CD2A268  PROBLEM -- MEMORY FRAGMENTATION AND UNNECESSARY OVERHEAD
                 OCCUR WHEN AAM CAPSULES ARE REPEATEDLY UNLOADED. 
  
                 ALSO, REPRIEVES ARE PERFORMED IN THE WRONG ORDER.
  
          SOLUTION - LOCK IN SELECTED AAM CAPSULES
  
          RLM    80-05-21    DB$AINT, DB$INT, DB$RCVD, SKELGEN
  
 CD2A268A PROBLEM -- CDCS REQUIRES AT LEAST ONE PARAMETER.
  
          SOLUTION - CHANGE A FASTLOOP TO SLOWLOOP SO THAT THE PARAMETER
                     PROCESSING LOOP WILL NOT CYCLE WHEN THERE ARE NO 
                     PARAMETERS.
                     ALSO, ADD DOCUMENTATION TO DB$AINT.
          RLM    80-05-23    DB$AINT
  
 CD2A269  PROBLEM  - WHEN PROCESSING RELATIONS WHICH HAVE RESTRICT
                     CLAUSES WITH LITERALS, CDCS MAKES AN UNNECESSARY 
                     SFREAD TO GET DATA NAME VALUES FROM THE UCP FIELD
                     LENGTH.
          SOLUTION - IN DB$REL$ CHECK BEFORE MAKING AN SFREAD THAT
                     THE NUMBER OF WORDS TO BE READ IS GREATER THAN 
                     ZERO.
          MES    80/04/25    DB$REL$
  
 CD2A271  PROBLEM  - WHEN TRYING TO ATTACH AN AREA THAT HAS BEEN DOWNED,
                     CDCS TRIES TO ISSUE A NON-EXISTENT ERROR.  THIS
                     CAUSES AN INTERNAL ERROR AT DB$ERR 1.
          SOLUTION - INSERT THE ERROR THAT CDCS WAS TRYING TO ISSUE.
          MES    80/04/30    DB$ERRM
  
 CD2A275  PROBLEM -- THE ANSWER TO PSR CD20029 CAUSED THE RECORD LENGTH 
                     FOR JOURNAL LOG RECORDS TO INCREASE. THE CODE
                     WHICH COMPUTES THE MRL FOR THE LOG RECORDS WAS NOT 
                     MODIFIED TO DEAL WITH THE EFFECT OF CD20029 ON 
                     THE LOG RECORDS. HENCE, CDCS GETS CRM ERROR 167
                     (RECORD LENGTH OUT OF MIN/MAX RANGE) ON THE LOG
                     FILE AND THE SCHEMA IS DOWNED. 
          SOLUTION - CHANGE THE WAY DB$SR06 (IN DB$SRDM) COMPUTES THE 
                     MRL FOR THE SCHEMA. LOG RECORDS HAVE PADDING ON
                     THE END TO MAKE THEIR LENGTH A MULTIPLE OF TEN 
                     CHARACTERS AS A RESULT OF CD20029. 
          DET    80/05/07    DB$SRDM
  
CD2A282   PROBLEM  - WHEN A RUN-UNIT IS TERMINATED, TWO DAYFILE MESSAGES
                     SHOULD BE WRITTEN TO THE UCP - ONE FOR CP TIME,
                     ONE FOR IO TIME.  INSTEAD, SEVERAL CP AND IO 
                     MESSAGES ARE WRITTEN TO THE UCP, ALL WITH TIMES OF 
                     ZERO.  THIS IS BECAUSE A SINGLE ARRAY IS USED WHEN 
                     THERE ARE CONCURRENT INTERRUPTIBLE USERS AND 
                     BECAUSE CP AND IO ARE INCORRECTLY ACCUMULATED
                     ACROSS TQT'S.
          SOLUTION - USE A BASED ARRAY FOR THE UCP MESSAGE BLOCKS, AND
                     ACCUMULATE INTO TQACUMCP AND TQACUMIO. 
          AWA,PLK  80/05/16  DB$ACM,DB$TRU
  
 CD2A283  PROBLEM -- THE ADDRESS IN THE FIT OF THE KEY BUFFER IS THE
                     ADDRESS USED BY CDCS FOR THE DATABASE PROCEDURE
                     PARAMETER LIST. IF THIS ADDRESS IS 0, THE PARAMETER
                     LIST IS TERMINATED PREMATURELY. IF THE DBP IS
                     WRITTEN IN COBOL, THE COBOL PARAMETER LIST CHECKING
                     FEATURE WILL ABORT CDCS FOR A PREMATURELY
                     TERMINATED PARAMETER LIST. 
          SOLUTION - CHECK THE KEY BUFFER ADDRESS BEFORE PUTTING IT 
                     INTO THE PARAMETER LIST. IF IT IS 0, PUT 400000
                     (OCTAL) IN THE PARMETER LIST.
          DET    80/05/19    DB$DPIF
  
 CD2A284  PROBLEM - WHEN THE CDCS OBJECT-TIME ROUTINES ARE
                    REUSED WITHOUT BEING RELOADED AND 
                    REINITIALIZED, THE FOLLOWING ERROR MESSAGE
                    IS ISSUED:  
                    600 - CHECKSUM MISMATCH SUBSCHEMA "SUBSCHEMA NAME". 
                    THIS IS BECAUSE THE ITEM MISBCKSM IS DEFINED
                    IN WORD 30 OF THE 7 WORD ARRAY DB$INVP. 
          SOLUTION- CHANGE THE ITEM MISBCKSM SO THAT IT IS
                    DEFINED IN WORD 6 OF THE ARRAY DB$INVP
                    ( ARRAY DEFINED FROM WORD 0 TO WORD 6 ).
          EPJ    80/05/20    INPARDCLS
  
CD2A289   PROBLEM  - CDCS ABORTS BECAUSE OF AN INVALID REQUEST PACKET 
                     ADDRESS (IRPOINT).  WHEN NO NEW RCB IS AVAILABLE,
                     CDCS INDICATES THIS BY SETTING IRPOINT TO ZERO, AND
                     THE BUSY FLAG (IRFULLF) TO TRUE.  THE OPERATING
                     SYSTEM (NOS/BE) INCORRECTLY LOOKS AT IRPOINT EVEN
                     THOUGH CDCS HAS SAID IT IS BUSY.  THE PROBLEM ONLY 
                     EXISTS IN NOS/BE, AND A PSR IS ALSO BEING WRITTEN
                     AGAINST NOS/BE.
          SOLUTION - USE A NEW BOOLEAN, DB$IRQR, TO INDICATE IF A NEW 
                     RCB IS AVAILABLE OR NOT.  THUS, IRPOINT IS NEVER 
                     ZERO.
          AWA,RLM  80/06/13  DB$CRMR, DB$IREC, DB$TERM
  
 CD2A290  PROBLEM - WHEN CONVERTING AN OLD REQUEST PACKET (CDCS2.1) 
                    OR AN OPERATING SYSTEM SPECIAL REQUEST (FOR 
                    EXAMPLE, TO INFORM CDCS OF AN ABORTED USER JOB) 
                    TO A NEW REQUEST PACKET (CDCS2.2), THE OLD PACKET 
                    MUST BE ENLARGED TO THE SIZE OF THE NEW PACKET. 
                    IF THE OLD PACKET IS THE MAXIMUM SIZE THIS WILL 
                    CAUSE THE CONVERTED PACKET TO BE ONE WORD LARGER
                    THAN THE NEW PACKET MAXIMUM. THIS MAY CAUSE A 
                    MODE ERROR IN CMM.
          SOLUTION- TO AVOID USING A SUBSCRIPT FOR THE CONVERTED PACKET 
                    WHICH IS ONE WORD TOO LARGE, DECREASE THE MAXIMUM 
                    ARRAY SUBSCRIPT OF THE CONVERTED PACKET BY ONE. 
          EPJ    80/06/18    DB$RCBQ,CDGDFDCLS,RQPARDCLS
  
 CD2A291  PROBLEM - THE CDCS ACCOUNTING TABLE CONTAINS CHARGES
                    FOR THE NORMAL AND ABNORMAL TERMINATION OF
                    A RUN-UNIT FROM CDCS. THESE CHARGES DO NOT
                    GET CHARGED TO THE USER BECAUSE THE TQT IS
                    DELETED BEFORE THE ACCOUNTING IS ATTEMPTED
                    IN TERMINATION PROCESSING. THE INTERNAL TABLE 
                    ENTRY FOR NORMAL TERMINATION IS DFEND AND FOR 
                    ABNORMAL TERMINATION IT IS DFTER. 
          SOLUTION- ADD THE TERMINATION CHARGE (BOTH NORMAL AND 
                    ABNORMAL TERMINATION ARE CHARGED THE SAME)
                    INTO THE INVOKE CHARGE. DELETE THE ENTRIES
                    FOR NORMAL AND ABNORMAL TERMINATION FROM
                    THE ACCOUNTING TABLE. THE INTERNAL TABLE ENTRY
                    FOR INVOKE IS DFINV.
          EPJ    80/06/13    DB$ACCT
  
 CD20029  PROBLEM -- WHEN ALL OF THE USERS OF A SCHEMA (FOR WHICH 
          LOGGING IS SPECIFIED) TERMINATE, THE LOG FILE IS CLOSED.
          IF THE CURRENT POSITION OF THE LOG FILE IS NOT ON A WORD
          BOUNDARY, THE FILE IS PADDED OUT TO A WORD BOUNDARY AND THEN
          CLOSED, LEAVING GARBAGE IN THE FILE.
          SOLUTION -- MODIFY DB$JLBA SO THAT ALL BEFORE AND AFTER LOG 
          RECORDS ARE PADDED , IF NECESSARY, TO MAKE THEM MULTIPLES OF
          TEN CHARACTERS LONG (THIS PADDING IS WHAT EVER GARBAGE HAPPENS
          TO BE IN MEMORY AFTER THE RECORD IMAGE). MODIFY DB$RUPD TO THROW
          AWAY ANY PADDING BEFORE APPLYING LOG RECORDS TO THE DATABASE AREA.
          WARNING -- LOG FILES CREATED BY A VERSION OF CDCS THAT DOES NOT 
          CONTAIN THIS CODE CAN NOT BE PROCESSED BY A VERSION OF
          DBRCN/DBRST THAT DOES CONTAIN THIS CODE.
          DET    80/04/15    JLCPMTX, JLDEFTX, DB$JLBA, DB$JLOG, DB$RUPD
                             DB$UPRT, DB$JLCL, DB$JLIN, DB$JLOP, DB$JLPV
                             DB$JLRP, DB$JLTM 
  
 CD2A287  PROBLEM  - WHEN AN AREA IS DOWNED AND A USER TRIES TO INVOKE
                     WITH A SUBSCHEMA THAT CONTAINS THE DOWNED AREA,
                     CDCS TERMINATES WITH AN INTERNAL ERROR FROM
                     DB$FDA 1.
          SOLUTION - CDCS WAS TRYING TO ISSUE THE WRONG ERROR MESSAGE 
                     WHEN THE INVOKE WAS ATTEMPTED WITH THE SUBSCHEMA 
                     THAT CONTAINED THE DOWNED AREA.  THE ERROR MESSAGE 
                     IN DB$ADAX WHICH WAS ATTEMPTED TO BE ISSUED MUST BE
                     CHANGED FROM ERROR 57 TO ERROR 10.  IN DB$DSCS 
                     CHANGE ERROR 10 TO ERROR 57.  THIS WILL ALLOW THE
                     PROPER DIAGNOSTIC TO BE ISSUED WHEN TERMINATING A
                     USER OF A DOWNED AREA. 
                     IN DB$DSCS CHANGE THE CALL TO DB$DSUA TO INCLUDE 
                     THE AREA ID. 
                     IN DB$TQTD CHANGE THE DAYFILE MESSAGE TO CONTAIN 
                     ONLY THE NUMBER OF CHARACTERS IN THE AREA NAME.
                     THIS WILL REMOVE ANY EXTRA CHARACTERS FROM THE 
                     LINE.  POSITION THE RSARBLK TO ALLOW ALL THE DOWNED
                     AREAS TO BE LISTED IN THE DAYFILE. 
          MES    (80/07/17)  DB$ADAX, DB$DSCS, DB$TQTD
  
 CD2A301  PROBLEM  - INCORRECT CP AND IO TIME ARE PRINTED ON THE USER 
                     CONTROL POINT DAYFILE.  THIS IS BECAUSE THE
                     CHARACTER ITEM FOR THE DISPLAY CODE NUMERIC VALUE
                     IS ONE CHARACTER SHORTER THAN THE STRING CONVERTED 
                     BY DB$CDIS.
          SOLUTION - MAKE THE DB$CDIS STRING ONE CHARACTER SHORTER. 
          AWA    80/07/22    DB$ACM 
  
 *L538*    ************************************************ 
 CD2*81   CDCS/DBU 2 COPYRIGHT CONTROL DATA CORPORATION CODE FOR 1981.
          COMDECK COPYRDCLS CHANGED TO CONTAIN CDC COPYRIGHT FOR 1981.
          COPYRIGHT DECLARATION REMOVED FROM CPUCIO DUE TO REDUNDANCY.
          SPL    80/08/05    COPYRDCLS,CPUCIO,DBQRFI
  
 CD2A305  PROBLEM -- CDCS MEMORY USAGE HAS GROWN TOO LARGE. 
          SOLUTION - PUT SOME INFREQUENTLY USED PROCEDURES IN OVERLAYS. 
          RLM    80-08-13    LOADOVL - COMDECK FOR OVERLAY LOADING (NEW)
                             LOADOVLE - ERROR MESSAGE FOR LOADOVL (NEW) 
                             DBMSTRD - MODIFIED TO USE LOADOVL CALLS
                             DB$AINT - INSERT ENTRY POINT CD2INIT 
                             DB$DSL1 - HALF OF THE FORMER DB$DSLN (NEW) 
                             DB$DSL2 - HALF OF THE FORMER DB$DSLN (NEW) 
                             DB$ERR  - SPLIT OUT DB$ERRE
                             DB$ERRE - ERROR MESSAGE EDITOR (NEW) 
                             DB$ERRM - MODIFY "CDCS INVOKED" MESSAGE
                             DB$MLDV - LOAD DBMSTRD OVERLAYS (REWRITE)
                             DB$OSUP - REMOVE DB$INT OVCAP LINKAGE
                             DB$OVLB - LOAD CDCSBTF OVERLAYS (NEW)
                             DB$OVLD - LOAD CDCS2 OVERLAYS (NEW)
                             SKELGEN - DEFINE CDCS OVERLAYS 
  
  
 CD2A306  PROBLEM -- JOVEC DOCUMENTATION IS NEEDED FOR THE IMS. SOME
                     ROUTINES HAVE NO JOVEC IN THEM WHILE OTHERS HAVE 
                     JOVEC COMMENTS WHICH DO NOT ADHERE TO THE CODING 
                     STANDARDS. 
          SOLUTION - INSERT OR FIX JOVEC COMMENTS WHERE EVER APPROPRIATE. 
          DET    80/08/12    CDCSBTF, DB$MDPF, DB$FTOD, DB$MGSS, DB$MOE 
                             DB$DSTX, DB$RSTX, DB$SNTX
  
 CD2A309  PROBLEM  - THE COMMENT DELIMITER TO TURN OFF JOVEC IN DB$FDA
                     IS IN COLUMN 1 INSTEAD OF COLUMN 2.
          SOLUTION - PUT THE COMMENT DELIMITER IN COLUMN 2. 
          DET    80/08/21    DB$FDA 
  
 CD2A312  PROBLEM  - WHEN THE K/L DISPLAY IS ASSIGNED TO CDCS 
                     AND THERE IS NOT AT LEAST 6000B WORDS
                     OF DYNAMIC AREA AVAILABLE ( CM SPACE 
                     GREATER THAN THE HIGHEST HIGH ADDRESS ), 
                     CDCS MAY FAIL IN AN UNDEFINED MANNER, FOR
                     EXAMPLE WITH A MODE 1 ERROR. 
                     THE FAILURE OCCURS BECAUSE MOST OF THE 
                     OPERATOR COMMAND PROCESSING FOR THE K/L
                     DISPLAY RESIDES IN THE OVCAPS DB$DDIF
                     AND DB$DSFA.  THESE OVCAPS UNDER CERTAIN 
                     CONDITIONS MAY HAVE TO BE LOADED TOGETHER. 
                     OVCAPS HAVE TO BE LOADED IN THE DYNAMIC
                     AREA OF CDCS FIELD LENGTH.  IF THERE IS
                     ONLY ENOUGH DYNAMIC AREA FOR DB$DDIF TO
                     BE LOADED AND A CALL IS MADE FROM DB$DDIF
                     TO A ROUTINE RESIDENT IN THE OVCAP 
                     DB$DSFA, THE OVCAP DB$DDIF WOULD BE UNLOADED 
                     AND DB$DSFA WOULD BE LOADED IN THE 
                     AVAILABLE DYNAMIC AREA.  WHEN DB$DSFA
                     RETURNED TO DB$DDIF, DB$DSFA WOULD BE
                     UNLOADED AND DB$DDIF WOULD BE RELOADED.
                     DB$DDIF IS REINITIALIZED WHEN IT IS
                     RELOADED, THEREFORE DB$DDIF DID NOT KNOW 
                     HOW TO PROCESS THE CONTROL RETURNED FROM 
                     DB$DSFA. 
          SOLUTION - THE STRUCTURE OF CDCS HAS BEEN CHANGED BY
                     CONVERTING THE OVCAP DB$DSFA TO THREE PRIMARY
                     OVERLAYS, CD2DSX1, CD2DSX3 AND CD2DS27.  THIS
                     CHANGES THE RESTRICTION OF 6000B WORDS OF
                     DYNAMIC AREA TO 2400B WORDS OF DYNAMIC AREA. 
                     THIS WILL ALLOW THE NEW OVERLAY PORTION
                     OF THE K/L DISPLAY ROUTINES TO BE LOADED IN THE
                     STATIC AREA OF CDCS ( CM SPACE BELOW HIGHEST HIGH
                     ADDRESS ).  THE STATIC AREA OF THE CDCS FIELD LENGTH 
                     IS AVAILABLE TO LOAD ANY OF THE CDCS OVERLAYS. 
                     OVERLAYS CAN ONLY BE LOADED IN STATIC AREA. THIS 
                     WILL ALLOW ALL THE REQUIRED ROUTINES TO BE LOADED
                     TO DO THE PROCESSING NEEDED TO EXECUTE AN OPERATOR 
                     COMMAND.  A NEW DISPLAY HAS ALSO BEEN ADDED TO 
                     COMMUNICATE THAT THE K/L DISPLAY CANNOT BE USED
                     IF THE 2400B WORDS OF DYNAMIC AREA CANNOT BE 
                     OBTAINED BY CDCS.  A COMDECK DSLMACRO HAS BEEN 
                     ADDED TO FORMAT THE K/L DISPLAY MESSAGES FOR 
                     THE MINI DISPLAY AND THE CMM ERROR DISPLAY.
          RLM/MES 80/09/03   DB$DDFE, DB$DMGI, DB$DMGR, DB$DSX1,
                             DB$DSX3, DB$ROLL, DB$OVLD, 
                             DSLMACRO, SKELETON 
  
 CD2A316  PROBLEM - CDCS MODES OUT IN REPRIEVE PROCESSING BECAUSE THE 
                 DYNAMICALLY LOADED CAPSULES CANNOT COMMUNICATE WITH THE
                 STATICALLY LOADED CAPSULES.
          SOLUTION - THE FLUSH ROUTINE IN THE STATICALLY LOADED CAPSULES
                 IS NEEDED BY THE DYNAMICALLY LOADED CLOSE CAPSULES IN
                 REPRIEVE PROCESSING IN ORDER TO FLUSH THE SWAP FILE. 
                 IT WAS DECIDED THAT THE SWAP FILE IS NOT REALLY NEEDED.
                 HENCE, THE ROUTINES THAT MANIPULATE THE SWAP FILE WILL 
                 BE IGNORED (DB$FTSW, DB$SWI, DB$SWO, DB$SWPI). 
          PAM/RLM  09/10/80  DB$INT, DB$RCVR, DB$TERM, SKELGEN
  
 CD2A317  PROBLEM -- CDCS HANGS IN RECALL WHEN THERE IS HEAVY I-O USE 
                     OF A FILE BY MULTIPLE USERS. 
          DIAGNOSIS- CDCS SAVES THE FIT-BZF ADDRESS IN THE RCB FIELD
                     RCCONSTRA. 
                     CRM CHANGES THE BZF ADDRESS WHEN THE FIT TO WHICH
                     IT POINTS IS CLOSED (BY ANOTHER USER). 
          SOLUTION - FOR SEEK AND GETNR, MAKE RCCONSTR AN INDIRECT
                     POINTER TO THE COMPLETE BIT. 
          RLM    80-09-10    DB$GETN, DB$SCHD, DB$SEK 
  
 CD2A326  PROBLEM - WHEN AN ERROR OCCURS ON A LOG FILE, DB$TSCH IS
                    CALLED TO INITIATE ABORTING THE USERS OF THE SCHEMA.
                    THE PARAMETER TO DB$TSCH IS PASSED INCORRECTLY, 
                    CAUSING UNPREDICTABLE RESULTS IN CDCS.
          SOLUTION- DB$TSCH IS CALLED TO TERMINATE USERS OF A SCHEMA BY 
                    ASSIGNING A NEW CONTINUATION ADDRESS. THIS
                    CONTINUATION ADDRESS IS SET INTO THE RCB FOR ACTIVE 
                    USERS AND THE TQT FOR INACTIVE USERS. THE USERS WILL
                    THEN CONTINUE OR START PROCESSING AT THIS ADDRESS 
                    WHICH SHOULD BE A CALL TO DB$ERR WHICH WILL ABORT 
                    THE USERS WITH A FATAL ERROR. THE PROBLEM IS THAT 
                    A LABEL WAS PASSED TO DB$TSCH, INSTEAD OF THE 
                    LOCATION OF THE LABEL, MAKING THE CONTINUATION
                    ADDRESS INCORRECT AND THUS, THE RESULTS ARE 
                    UNPREDICTABLE. THE SOLUTION IS TO PASS THE LOCATION 
                    OF THE LABEL. 
                    IN ADDITION, THE HISTORY COMMENTS FOR A SIMILAR PSR 
                    (CD2A244) ARE CORRECTED.
          EPJ    80/09/10    DB$LGIF,HISTORY
  
 CD2A308  PROBLEM  - CDCS HANGS FOLLOWING A CRM ERROR 52 ON AN OPEN.
                     BECAUSE ERROR 52 IS A TRIVIAL ERROR, CRM RETAINS 
                     POINTERS TO THE USER-S FIT AND WILL ALLOW
                     SUBSEQUENT I/O ON THE FILE.  HOWEVER, SINCE THE
                     ERROR IS ON AN OPEN, CDCS DELINKS THE UFT. (SEE
                     PSR CD2A255.)  CRM-S FIT POINTER IS POINTING TO A
                     FREE CMM BLOCK, AND CRM HANGS WHEN A SECOND USER 
                     DOES AN OPEN ON THE SAME FILE. 
                     *                                                 *
                     A SIMILAR PROBLEM OCCURS IN CDCS CLOSE PROCESSING
                     (IN DB$CLSA) FOLLOWING A FATAL ERROR DUE TO A BAD
                     FILE.  BECAUSE OF THE ERROR-DOWN STATUS OF THE 
                     FILE, CDCS DOES NOT CLOSE THE FILE, BUT DELINKS
                     THE UFT ANYWAY.  WHEN CRM ACCESSES THE FILE AGAIN
                     DURING REPRIEVE PROCESSING (OR IF AN OPERATOR UP 
                     COMMAND IS DONE), FIT POINTERS ARE INCORRECT.
                     *                                                 *
                     SIMILAR PROBLEMS EXIST IN CONSTRAINT PROCESSING
                     CONCERNING THE HANDLING OF ERROR 52 AND OF DOWNED
                     AREAS.  (SEE PSR CD2A211.) 
          SOLUTION - ERROR 52 INDICATES THAT THE FILE HAS BEEN UPDATED
                     SINCE THE LAST TIME IT WAS FLUSHED OR CLOSED.
                     THERE IS A GOOD CHANCE THAT DATA HAS BEEN LOST, SO 
                     CDCS TREATS ERROR 52 AS FATAL.  THE FILE IS SET TO 
                     ERROR-DOWN.
                     *                                                 *
                     WHEN CRM ERRORS OCCUR ON A CRM OPEN OPERATION, 
                     CDCS MUST DETERMINE WHETHER CRM CONSIDERS THE FILE 
                     OPENED OR NOT.  CDCS BASES THIS DECISION SOLELY ON 
                     THE OPEN/CLOSE FLAG IN THE FIT, REGARDLESS OF ANY
                     FATAL ERRORS OR BAD-FILE CONDITIONS.  IF THE FILE
                     IS NOT OPENED, THEN CDCS BY-PASSES ANY CLOSEM CALL 
                     ON THE FILE AND DELINKS THE UFT.  IF THE FILE IS 
                     OPENED, THEN PROCESSING ON THE FILE MAY OR MAY NOT 
                     BE ALLOWED TO CONTINUE.  IN ANY CASE, CDCS MUST
                     EXECUTE A CLOSEM CALL BEFORE FINALLY DELINKING THE 
                     UFT.  SIMILAR PROCESSING IS DONE FOR CONSTRAINT
                     CHECKING AND FOR THE INTERNAL FIT (IFT). 
                     *                                                 *
                     A PROBLEM RELATED TO PSR CD2A211 IN DB$CPRO IS 
                     ALSO CORRECTED.  I/O ACCESS IS NOT ALLOWED ON THE
                     CONSTRAINING AREA WHEN THE CONSTRAINING AREA HAS 
                     BEEN DOWNED DUE TO ERRORS OR DUE TO AN OPERATOR
                     COMMAND. 
          AWA    80/09/12    CDCSCTX,DB$CLSA,DB$CPRO,DB$ERR,DB$FTEX,
                             DB$IFEX,DB$OPN$,DB$RIFT,DB$SIFT
  
  
 CD2A308A PROBLEM - DUPLICATE LINE ENTRIES
          SOLUTION - DELETE DUPLICATE LINES 
          PJR    80/11/12    HISTORY
 CD2A316A PROBLEM  - IDENT CD2A316 CAUSED SEVERAL PROCEDURES TO BE
                     IGNORED IN ORDER TO INHIBIT USE OF THE CDCS USER 
                     TABLE SWAP FILE.  THE PROBLEM IS THAT IN TIGHT 
                     MEMORY SITUATIONS, DB$SWPO USES THE FUNCTION DB$SWO
                     TO SET THE RSB POINTER IN THE TQT AND THE CST
                     POINTER IN THE ASL.  SINCE DB$IGNR IS SUBSTITUTED
                     FOR DB$SWO, THE POINTERS GET SET TO ZERO WHEN THE
                     FUNCTION IS CALLED, RESULTING IN MODE ERRORS OR
                     OTHER ERRORS SINCE TABLE POINTERS ARE INCORRECT. 
          SOLUTION - PREVENT COMPILATION OF THE CODE BY PUTTING 
                     COMPILATION CONTROL STATEMENTS AROUND THE CODE 
                     IN DB$SWPO WHICH SETS RSB AND CST POINTERS USING 
                     DB$SWO.  THE SOURCE CODE IS LEFT IN THE PROCEDURE
                     IN CASE THE SWAP FILE PROCESSING CODE IS 
                     REACTIVATED IN THE FUTURE. 
                     IN ADDITION, THE NEW END-OF-RECORD DECK CWEOR5 IS
                     ADDED TO THE CDCSPL. 
                     NOTE -- IDENT CD2A316A MUST NOT BE INSTALLED 
                     WITHOUT THE CODE FOR PSR CD2A316.
          PLK/RLM 80/11/05    DB$SWPO,CWEOR5
  
 CD2A318  PROBLEM  - ACCOUNTING STATISTICS ARE NOT ISSUED TO THE CDCS 
                     DAYFILE SUBSEQUENT TO REPRIEVE PROCESSING. 
          SOLUTION - INSERT A CALL TO DB$ACM1 IN THE REPRIEVE 
                     PROCESSING ROUTINE (DB$RCVR).
                     IN ADDITION , DB$ACM WAS MODIFIED SUCH THAT IT NO
                     LONGER REQUIRES A TYPE PARAMETER.  DB$ACM IS NOW 
                     CALLED SOLELY FOR THE ISSUANCE OF UCP ACCOUNTING 
                     STATISTICS AND DB$ACM1 IS CALLED FOR THE ISSUANCE
                     OF SCP ACCOUNTING STATISTICS.
          WRS    80/09/01    DB$ACM, DB$ACM1, DB$END$, DB$RCVR, DB$TERM 
                             DB$TRU 
  
 CD2A320  PROBLEM  - THE CPU UTILIZATION FIGURE ISSUED ON NOS TO
                     THE CDCS DAYFILE WAS INCORRECT.  THE FIGURE WAS
                     INCORRECT BECAUSE THE CP TIME WAS INCORRECTLY
                     CALCULATED BY DB$NCPT AND BECAUSE THE NOS/BE 
                     EXPANSION OF THE MACRO *RTIME* WAS BEING USED
                     BY DB$NCLK TO DETERMINE NOS REAL CLOCK ELAPSED 
                     TIME INSTEAD OF THE NOS VERSION. IN ADDITION, THE
                     CDCS CP AND IO TIME USED FIGURES WRITTEN TO THE
                     CDCS DAYFILE WERE INCORRECT.  THIS WAS BECAUSE 
                     THEY REFLECTED THE CP AND IO TIME USED BY THE SCP
                     INSTEAD OF JUST BY CDCS.  SINCE THE CP TIME USED 
                     FIGURE WAS INCORRECT THIS ALSO EFFECTED THE
                     CORRECTNESS OF THE CDCS CPU UTILIZATION FIGURE.
          SOLUTION - REWRITE THE COMPASS ROUTINE IN DB$CPT USED TO
                     RETURN ACCUMULATED CP TIME(DB$NCPT). IN ADDITION,
                     AN XTEXT PSEUDO INSTRUCTION WAS INSERTED INTO THE
                     DB$CPT MODULE SO THAT THE *RTIME* MACRO WOULD BE 
                     EXPANDED FROM THE OPL COMMON DECK *CPCOM* INSTEAD
                     OF FROM *IOTEXT*. ALSO, THE CPU UTILIZATION MESSAGE
                     WAS REFORMATTED AND THE CALCULATION OF THE CP AND IO 
                     TIME USED FIGURES WAS MODIFIED.
          WRS    80/09/12    DB$CPT DB$ACM1 
  
 CD2A324  PROBLEM  - THE CP AND IO STATISTIC MESSAGES ISSUED TO THE 
                     CDCS DAYFILE WERE INCORRECTLY FORMATTED DUE TO 
                     A NOS OPERATING SYSTEM CHANGE WHICH EXPANDED THE 
                     LINES IN THE DAYFILE FROM 40 TO 80 CHARACTERS. 
                     PREVIOUSLY EACH CP AND IO STATISTIC MESSAGE
                     APPEARED AS TWO SEPARATE LINES WRITTEN TO THE
                     CDCS DAYFILE ALTHOUGH ONLY ONE Z TYPE RECORD 
                     WAS ACTUALLY WRITTEN.  THE EXPANSION OF NOS
                     DAYFILE LINES CAUSED THE CP AND IO MESSAGE TO
                     APPEAR ON ONLY ONE DAYFILE LINE. 
          SOLUTION - EACH CP AND IO STATISTIC MESSAGE IS NOW WRITTEN
                     TO THE CDCS DAYFILE AS TWO SEPARATE LINES.  THIS 
                     REQUIRED DELETING THE DATA ITEMS WHICH WERE
                     ASSOCIATED WITH THE IO PORTION OF THE MESSAGE FROM 
                     ARRAY *ACCMSG* AND CREATING A NEW ARRAY CALLED 
                     *IOMSG* TO CONTAIN THESE DATA ITEMS. IN ADDITION,
                     DB$MSG IS NOW CALLED WITH *ACCMSG* AS THE
                     PARAMETER TO PRINT THE CP PORTION OF THE MESSAGE 
                     AND WITH *IOMSG* AS THE PARAMETER TO PRINT THE IO
                     PORTION OF THE MESSAGE.
          WRS    80/09/06    DB$ACM1
  
 CD2A332  PROBLEM -- CD2A305 MOVED DB$INT FROM AN OVCAP TO THE 0,0
                     OVERLAY. 
                     WHEN BUILDING CDCS ON A NOS SYSTEM THAT CONTAINS 
                     THE OLD OVCAP, LOADER TRIES TO USE THE OVCAP TO
                     SATISFY THE ENTRY POINT DB$INT.
          SOLUTION - CHANGE THE ENTRY POINT NAME FROM DB$INT TO DB$INIT.
          RLM    80-09-23    CDCS, DB$INT, SKELETON 
  
 CD2A332A PROBLEM  - THE OPERATOR INTERFACE COMMAND *ST,SC=SCNAME*
                     CAUSES CDCS TO HANG. 
          SOLUTION - CDCS GOES INTO AN INFINITE LOOP WHEN THE STATUS
                     OF A SCHEMA IS REQUESTED BECAUSE THE ENTRY 
                     POINT NAME DB$DSFS WAS REDEFINED TO DB.DSFS. 
                     THE ENTRY POINT NAME WAS NOT REINSTATED IN THE 
                     OVERLAY IN WHICH DB$DSFS RESIDES.  THIS PROBLEM
                     OCCURRED BECAUSE THE RENAMING OF THE ENTRY POINT 
                     WAS INCORRECTLY DELETED. 
          MES    80/11/13    SKELGEN
  
 CD2A333  PROBLEM - COMPASS DOES NOT ALLOW THE USE OF A VARIABLE
                    DEFINED BY A SET PSEUDO OP BEFORE THE VARIABLE
                    HAS BEEN DEFINED. 
          SOLUTION- CHANGE THE SET PSEUDO OP TO AN EQU PSEUDO OP. 
          JGS    80/09/23          DB$DMGI
  
 CD2A341  PROBLEM - HISTORY IDENTIFIERS FOR IDENTS F2640W04 AND 
                    CD2A312 ARE INCORRECT.
          SOLUTION - CORRECT COMMENTS.
          PJR    80/10/13    HISTORY
 CD2A342   PROBLEM  - WHEN DOING RELATION READS, CDCS MAY NOT RETURN
                      ALL QUALIFIED RECORDS OR CDCS MAY CAUSE ONE OF
                      THE AREAS INVOLVED TO BE SEQUENTIALLY POSITIONED
                      BEYOND THE FILE BOUNDS, CAUSING CRM ERROR 100.
                      THE TYPE OF FAILURE IS DEPENDENT ON THE NUMBER
                      OF RUN-UNITS USING THE RELATION FACILITY AND
                      THE DIFFERENT TYPES OF SEARCH STRATEGIES BEING
                      EMPLOYED BY THE RELATIONS.
           SOLUTION - THE REASON CDCS FAILED TO CORRECTLY 
                      PROCESS RUN-UNITS WHICH WERE USING THE RELATION 
                      FACILITY IS DUE TO A CONCURRENCY PROBLEM. 
                      WHEN A READ IS DONE ON AN AREA AND A CONDITION
                      ARISES WHICH CAUSES A CRM END-OF-DATA OR A
                      CRM ERROR-EXIT PROCEDURE TO BE EXECUTED,
                      ONE OF THE RELATION TABLES (TASKITEMS) CAN
                      BE POSITIONED FOR THE WRONG RUN-UNIT.  THIS 
                      CAN CAUSE A NUMBER OF DIFFERENT FAILURES
                      IN RELATION PROCESSING.  TASKITEMS WILL BE
                      POSITIONED IN ALL CRM OWN-EXIT ROUTINES IN DB$MFP.
                      IT IS ALSO POSSIBLE FOR RELATION TABLES TO BE 
                      MISTAKENLY POSITIONED FOR RUN-UNITS IN DB$REL$
                      FOLLOWING AN SFWRITE TO THE RUN-UNIT.  THE
                      RELATION TABLES WILL BE REPOSITIONED FOLLOWING
                      THE  SFWRITE. 
          MES    80/10/13    DB$MFP, DB$REL$
  
 CD2A342A PROBLEM  - WHEN DOING RELATION READS
                     THE RECORD LENGTH RETURNED IS INCORRECT,  CAUSING
                     INFORMATION TO BE LOST.
          SOLUTION - IN CD2A342 THE SAVE OF THE RECORD
                     LENGTH WAS INCORRECTLY DELETED.  RE-INSERT THE 
                     SAVE OF THE RECORD LENGTH FOR RETURN TO THE UCP. 
 CD2A344  PROBLEM -- CDCS SHOULD SPEND LESS CPU TIME SCANNING FOR TASKS.
          SOLUTION - DB$MTR SHOULD DO A RECALL UNLESS THERE ARE SOME
                     UNITIATED REQUESTS.
          RLM    80-09-10    DB$IREC, DB$MTR, DB$RCBQ, DB$WRP 
  
 CD2A347  PROBLEM - INTERRUPTIBLE ROUTINES CAN NOT BE PLACED
          IN AN OVCAP SINCE THERE IS NO WAY TO ENSURE ITS RESIDENCE AT
          THE END OF AN INTERRUPTION. 
          SOLUTION - IMPLEMENT A LOCKING SCHEME THAT WILL REMEMBER WHAT 
          RCBS HAVE ENTERED WHICH INTERRUPTIBLE OVCAP ROUTINES. ONCE
          AN RCB HAS CALLED AN INTERRUPTIBLE ROUTINE IN AN OVCAP, THE 
          OVCAP WILL BE CONSIDERED LOCKED BY THAT RCB UNTIL THAT RCB
          IS TERMINATED (BY DB$WRP).
          THIS SOLUTION RESULTED IN THE COMPLETE REPLACEMENT OF DECK
          DB$OSUP, AS WELL AS CHANGES TO THE STRUCTURE OF THE RCB.
          TWO NEW COMDECKS ARE ADDED: RCBOSDCLS TO DESCRIBE THE LOCATION
          OF ITEM RCOVCAPS IN THE RCB (THE COMDECK IS USED IN BOTH SYMPL
          AND COMPASS), AND OVCAP00C2 (USED TO HOLD THE DECLARATIONS OF 
          CDCS2 OVCAPS SO A ROUTINE OTHER THAN DB$OSUP CAN FIND OUT THE 
          ORDINAL OF AN OVCAP). 
          CFR    10/23/80    CDGDFDCLS, CDCSCOMMN, CDCSCTX, DB$RCBC 
                             DB$RCBQ, DB$WRP, DB$INT, DB$OSUP, SKELETON 
                             RCBOSDCLS, OVCAP00C2 
  
 CD2A348  PROBLEM - DECK NAME IS INCORRECT
          SOLUTION - CORRECT DECK NAME
          PJR    80/10/28    HISTORY,DB$TQTC
 CD2A352  PROBLEM  - WHEN DOING THE STATUS OF JOBS, SCHEMA, AREA
                     FROM THE CDCS OPERATOR INTERFACE THE RESULTS 
                     ARE SOMETIMES INCORRECT. 
          SOLUTION - COMMAND OF *ST, JOBS, SCHEMA, AREA* GIVES
                     INCORRECT RESULTS BECAUSE DB$DSUA IS CALLED
                     FROM DB$DS27 WITH ONE PARAMETER INSTEAD OF 
                     TWO.  THE PARAMETERS FOR DB$DSUA ARE CHANGED.
                     THE NEW PARAMETERS ARE THE ADDRESS OF THE OFT
                     AND A BOOLEAN FOR WHETHER OR NOT THE AREA
                     IS BEING USED.  THE CALLS FROM DB$DSCS,
                     DB$FDA, AND DB$DS27 ARE CHANGED TO CONTAIN 
                     THE NEW PARAMETER OF THE OFT ADDRESS RATHER
                     THAN THE AREA ID.
           MES    80/11/19    DB$DSCS, DB$DSUA, DB$DS27, DB$FDA 
  
 CD2A353  PROBLEM  - WHEN ST,SC=0 (ZERO) IS ENTERED VIA THE CDCS
                     OPERATER INTERFACE, THE STATUS OF ANY ACTIVE 
                     SCHEMA IS ISSUED.
          SOLUTION - IN DB$DS17 OF DB$DSNI, WHEN THE SCHEMA ID IS 
                     SAVED CHECK THAT THE VALUE OF THE ID IS NOT
                     EQUAL TO ZERO. 
                     IN DB$DSTX CHANGE THE NAMEID SUBSECTION TO 
                     DIAGNOSE AN ID OF ZERO.  IN THE SCSBCS 
                     SUBSECTION AND IN DB$DDGN CHANGE DUPLICATE 
                     ERROR NUMBER 008 TO 008 AND 009. 
          MES    80/11/19    DB$DDGN, DB$DSNI, DB$DSTX
  
 CD20032  PROBLEM -- NOS/BE USERS CANT BE DROPPED WHILE WAITING FOR 
                     A PERMANENT FILE TO BE ATTACHED. 
          SOLUTION - HANDLE THE PF ATTACH LIKE IT IS DONE ON NOS. 
  
          COG/RLM  80-11-05  DB$ATCH, DB$ATCM 
  
 *L552*    ************************************************ 
 CD2A331  PROBLEM  - IF AN ERROR OCCURS BEFORE AN RSB IS CREATED
                     DURING A USER*S FIRST CDCS REQUEST THEN THE
                     CHECK IN DB$ERR FOR P<UFT> NONZERO AND CONSEQUENT
                     FIT FIELD CHECKING IS NOT VALID.  THIS IS BECAUSE
                     DB$SCHD PRESETS P<UFT> TO RSARUFIT WITHOUT FIRST 
                     VERIFYING THAT TQRSB WAS NOT EQUAL TO ZERO.
                     THEREFORE, P<UFT> COULD BE SET TO AN INVALID AMOUNT
                     AND SUBSEQUENT REFERENCING OF FIT FIELDS BY DB$ERR 
                     COULD RESULT IN A MODE ERROR.
          SOLUTION - IF TQRSB IS EQUAL TO ZERO DB$SCHD WILL SET P<UFT>
                     TO ZERO, ELSE, P<UFT> WILL BE SET TO RSARUFIT. 
          WRS    81/01/12    DB$SCHD
  
 CD2A351  PROBLEM -- THERE IS NO ERROR CHECKING FOR I/O ON THE
                     ROLLOUT FILE. ON ROLLOUT, ALL INFORMATION IN THE 
                     CDCS FIELD LENGTH AFTER THE ROLLOUT PARTITION CAN
                     BE LOST IF AN ERROR OCCURS. ON ROLLIN, CDCS WILL 
                     BEHAVE STRANGLY ( WITHOUT THE BULK OF ITS CODE 
                     IN CORE ) IF I/O ERRORS GO UNDETECTED. 
          SOLUTION - PUT CODE IN DB$ROLL TO CHECK THE ROLLOUT FILE
                     FET AFTER EACH I/O OPERATION. PUT ERROR MESSAGES 
                     ON THE DAYFILE IF ERRORS ARE DETECTED. ABORT 
                     CDCS ON ERRORS DURING ROLLIN. THE ACTUAL 
                     ROLLOUT AND ROLLIN CODE WAS PUT INTO SUBROU- 
                     TINES TO FACILITATE FUTURE USE. DB$ROER, THE 
                     ROLLOUT ERROR HANDLER AND THE COMDECK, FETDCLS,
                     WERE CREATED IN RESPONSE TO THIS PSR.
          DET    80/12/16   DB$ROER, DB$ROLL, FETDCLS, SKELGEN
  
 CD2A375  PROBLEMS - SOME FLOW POINTS ARE CALLED SO OFTEN AS TO BE
                     USELESS AND MAKE FOR HIGH OVERHEAD.
                   - THERE IS NO WAY TO DETERMINE WHICH USER'S REQUEST
                     IS BEING PROCESSED.
                   - THE OUTPUT SHOULD BE PRINTED WITH SEVERAL COLUMNS
                     PER PAGE.
          SOLUTIONS 
                   - DB$DRT   REDUCE CALLS TO DB$FLOP.
                   - DB$DPIF  REDUCE CALLS TO DB$FLOP.
                   - DB$DUMP  FLUSH THE OUTPUT FILE BUFFER BEFORE DUMP. 
                   - DB$FLOP  INCORPORATE THE DB$FLUI PROCEDURE 
                              TO RECORD USER IDENTIFICATION.
                   - DB$FLRP  INCLUDE USER ID IN THE FLOW POINT REPORT. 
                   - DB$LINB  NEW PROC TO PRINT SEVERAL LINES PER PAGE. 
                   - DB$LINE  CONTROL CODES FOR FLUSHING REPORTS. 
                   - DB$MBA   REDUCE CALLS TO DB$FLOP.
                   - DB$PUSH  ELIMINATE DB$FLOP CALLS.
                   - DB$SCHD  REDUCE DB$FLOP CALLS AND CALL DB$FLUI.
                   - DB$SFCL  IDENTIFY THE FUNCTION CODE. 
                   - SKELETON ADD DB$LINB TO CDCSLIB. 
          RLM    80-12-29 
  
 CD2A376  PROBLEM  - WHEN A DATABASE AREA IS OPENED FOR OUTPUT TO CREATE
                     A NEW FILE, THE CDCS OPEN MODULE DB$OPN$ CALLS THE 
                     INTERRUPTIBLE MODULE DB$LOKA WITHOUT RESETTING THE 
                     CST AREA WORK BLOCK POINTER.  IN A CONCURRENT
                     ENVIRONMENT THIS COULD CAUSE ERRORS IN THE ALTER-
                     NATE KEY (RMKDEF) INITIALIZATION AND THE JOURNAL 
                     LOGGING WHICH FOLLOW THE DB$LOKA CALL, PERHAPS EVEN
                     LEADING TO A MODE ERROR. 
          SOLUTION - RESET THE CST AREA WORK BLOCK POINTER AFTER THE
                     DB$LOKA CALL.
          PLK    81/03/12    DB$OPN$
  
 CD2A377  PROBLEM  - IDENT CD2A316 CAUSED SEVERAL PROCEDURES TO BE
                     IGNORED IN ORDER TO INHIBIT USE OF THE CDCS USER 
                     TABLE SWAP FILE.  THESE DECKS PRODUCE COPYL WARNING
                     DIAGNOSTICS WHEN BUILDING CDCS.
          SOLUTION - MOVE THE DECKS TO A DIFFERENT PLACE ON THE CDCS OLD
                     THAT THEY DO NOT GET COMPILED. 
          PLK    81/03/13     DB$SWI, DB$SWPI, DB$FTSW
  
 CD2A380  PROBLEM - SOME USERS OF CDCS GET ABORTED WITH THE MESSAGE 
          *CDCS REQUEST NOT IN FL*.  THIS OCCURS WHEN THE USER IS 
          READING A RELATION WHILE THERE IS HEAVY CDCS OR O/S 
          ACTIVITY, AND OTHER USERS READING RELATIONS (ESPECIALLY 
          ON NOS WITH TAF/CDCS TASKS READING RELATIONS).
          THE ERROR CAN ALSO SHOW UP AS CDCS WRITING RECORDS TO 
          APPARENTLY RANDOM LOCATIONS WITHIN THE USERS MEMORY.
  
          SOLUTION - THE *TASKITEMS* ARRAY WAS NOT BEING REPOSITIONED 
          IMMEDIATELY AFTER THE *SFWRITE* OF THE RECORD TO THE USER 
          WSA.  THUS THE SETTING OF THE RL IN THE FITLIST OCCURRED AT 
          THE RANK LAST USED BY THE PREVIOUS (IF OVERLAPPED) USER 
          RELATIONAL READ REQUEST.  WITH TAF/CDCS, THE PROBABILITY IS 
          HIGH THAT IT WOULD BE THE HIGHEST RANK OF THE RELATION. 
          SINCE THE RL FIELD OVERLAPS THE WSA FIELD IN THE FITLIST, 
          IT CAN LEAD TO CLOBBERING A WSA WHICH HAS NOT YET BEEN USED,
          THUS LEADING TO THE RETURN OF A RECORD TO AN INCORRECT
          ADDRESS (IF THE CLOBBERED WSA POINTS INSIDE THE USERS FL),
          OR THE ABOVE MESSAGE (IF THE CLOBBERED WSA POINTS OUTSIDE 
          THE USERS FL).
          CFR    81/07/16    DB$REL$
  
*L567*     ************************************************ 
  
 CD20040  PROBLEM  - A USER CONTROL POINT HANGS IN RECALL WAITING FOR 
                     A REPLY FROM CDCS. 
                     THIS OCCURS BECAUSE NOS OCCASIONALLY GIVES AN
                     ERRONEOUS 63 RETURN CODE ON AN SFCALL (NS04199). 
                     CDCS ERRONEOUSLY IGNORES THAT RETURN CODE. 
          SOLUTION - REPEAT THE SFCALL UNTIL IT IS ACCEPTED.
          RLM     81-07-20   DB$SFCL
  
 CD20048  PROBLEM  - WHEN TWO USERS ARE DOING A READ-RELATION ON A FILE 
                     THAT IS OPEN FOR I-O, A CDCS PUSH-DOWN STACK 
                     OVERFLOW MIGHT OCCUR.
                     THIS RESULTS IN THE CDCS FATAL DIAGNOSTIC -
                       ** CDCS INTERNAL ERROR--DB$PUSH 1 ** 
                     THIS HAPPENS WHEN ONE USER IS SWAPPED OUT WHILE
                     HOLDING A RECORD LOCK AND ANOTHER USER ATTEMPTS
                     TO READ THE LOCKED RECORD. 
          SOLUTION - EXPAND THE SIZE OF THE PUSH-DOWN STACK.
          RLM     81-07-23   CDGDFDCLS, RCBOSDCLS 
  
 CD2A378  PROBLEM  - WHEN AN ERROR OCCURS DURING AN INVOKE BEFORE THE 
                     USER HAS BEEN ADDED TO ANY OF THE USER COUNTS, 
                     THE COUNTS ARE REDUCED EVEN THOUGH THEY HAVE NOT 
                     BEEN INCREASED FOR THIS USER.
                     THIS RESULTS IN INACCURATE USER COUNTS, POSSIBLY 
                     CAUSING CDCS NOT TO ROLL OUT WHEN IT SHOULD. 
                     IF THE ERROR IS "SCHEMA XX NOT IN MASTER DIRECTORY"
                     A COUNT IS REDUCED FROM A NON-EXISTENT SCHEMA
                     CAUSING AN UNDEFINED ERROR, SUCH AS A CDCS MODE
                     ERROR 25 MINUTES LATER.
          SOLUTION - CENTRALIZE THE INCREMENTING OF COUNTS. 
                     SET A TQT FLAG WHEN THE COUNTS HAVE BEEN 
                     INCREMENTED AND DONT DECREMENT THE COUNTS UNLESS 
                     THE TQT FLAG HAS BEEN SET. 
          RLM     81-07-08   CDCSCOMMN, DB$INV$, DB$TQTC, DB$TQTD 
  
 CD2*82   CDCS COPYRIGHT CONTROL DATA CORPORATION CODE FOR 1982.
          COMDECK COPYRDCLS CHANGED TO CONTAIN CDC COPYRIGHT FOR 1982.
          PJR    81/09/21   COPYRDCLS,DBQRFI
  
 CD2A381  PROBLEM  - THE EXECUTION OF THE OPERATOR INTERFACE RETURN OF A
                     SUBSCHEMA COMMAND (PRECEEDED BY THE EXECUTION OF 
                     THE RETAIN OF THAT SUBSCHEMA WITH NO ACTIVE USERS
                     OF THAT SUBSCHEMA PRESENT AT THE TIME) CAUSED A
                     MODE ERROR. THE MODE ERROR OCCURRED BECAUSE ONE OF 
                     THE CDCS INTERNAL SUBSCHEMA TABLES (THE ACL) WAS 
                     NOT COMPLETELY INITIALIZED. THE ACL AND THE OTHER
                     SUBSCHEMA TABLES WERE CREATED DURING THE RETAIN
                     BECAUSE OF THE ABSENCE OF ACTIVE USERS OF THE
                     SUBSCHEMA. THE ACL GETS INITIALIZED AND SET UP WHEN
                     IT IS CREATED BY AN INVOKE OF THE SUBSCHEMA, BUT 
                     DOES NOT GET INITIALIZED OR SET UP WHEN CREATED
                     DURING THE RETAIN OF THE SUBSCHEMA. A FURTHER
                     PROBLEM EXISTED HOWEVER, IF AN INVOKE OF THE 
                     SUBSCHEMA WERE TO FOLLOW THE RETAIN, THE ACL STILL 
                     WOULD NOT BE PROPERLY SET UP,BECAUSE THE INVOKE
                     ROUTINE ASSUMED THAT IF THE SUBSCHEMA TABLES EXIST,
                     THEN THEY ARE PROPERLY SET UP. 
          SOLUTION - CHANGE THE ROUTINE THAT BUILDS THE SUBSCHEMA TABLES
                     SO THAT THE ACL WILL BE COMPLETELY INITIALIZED.
                     ADDING THIS CODE MAKES SOME CODE IN THE INVOKE 
                     ROUTINE REDUNDANT, WHICH IS REMOVED. ADD A 
                     MECHANISM THAT WILL ENABLE THE INVOKE ROUTINE TO 
                     IDENTIFY THAT THE SUBSCHEMA TABLES HAVE BEEN 
                     CREATED BY THE RETAIN, AND STILL NEED TO BE SET UP 
                     THROUGH INVOKE PROCESSING. 
          EPJ     81/09/28   ASLDCLS,DB$ASLC,DB$LTSB,DB$INV$
  
 CD20056  PROBLEM  - WHEN AN ERROR OCCURS DURING A READ OF A RECORD,
                     DB$ERR ATTEMPTS TO SET THE POINTER FOR THE RSB 
                     RECORD BLOCK AND CALL ANY RECORD LEVEL DBPS.  ONE
                     OF THE QUANTITIES USED IN SETTING THE RSB RECORD 
                     BLOCK POINTER IS THE RECORD ORDINAL.  IN THE CASE
                     OF AN INVALID KEY ERROR, NO RECORD ORDINAL EXISTS
                     BECAUSE NO RECORD HAS BEEN READ.  HENCE, THE RSB 
                     RECORD BLOCK POINTER GETS SET TO AN ERRONEOUS VALUE
                     WHICH THEN CAUSES CDCS TO MODE OUT WHEN TRYING TO
                     EXECUTE THE RECORD LEVEL DBPS. 
          SOLUTION - IN DB$ACHK, ZERO OUT THE RECORD ORDINAL IN THE RSB.
                     IN DB$ERR, IF THE RECORD ORDINAL IS ZERO, DO NOT 
                     SET THE RSB RECORD BLOCK POINTER.  IN DB$DPIF, DO
                     NOT CALL ANY RECORD LEVEL DBPS IF THE RECORD 
                     ORDINAL IS ZERO. 
          PAM    81/09/29    DB$ACHK,DB$DPIF,DB$ERR 
          WPC 
  
 CD20056A PROBLEM  - WHEN CD20056 WAS ANSWERED, THE RSB RECORD ORDINAL
                     WAS ZEROED OUT IN DB$ACHK.  THIS AFFECTED OTHER
                     ROUTINES THAT CALLED DB$ACHK AND EXPECTED THE
                     RECORD ORDINAL TO BE SET.
          SOLUTION - DO NOT ZERO OUT THE RECORD ORDINAL IN DB$ACHK
                     BUT INSTEAD, ZERO IT OUT IN THE SYMBIONTS THAT 
                     DO NOT HAVE AN INITIAL RECORD ORDINAL (DB$RD$, 
                     DB$REL$).  THESE SYMBIONTS FILL IN THE RECORD
                     ORDINAL AFTER THE READ IS PERFORMED. 
                     NOTE - IN CDCS2.2, THE IDENT CD20056 CONTAINS THE
                     ENTIRE FIX FOR THIS PROBLEM.  THE IDENT CD20056A 
                     DOES NOT EXIST ON THE CDCS2.2 PL.
          PAM/WPC 81/10/27    DB$ACHK, DB$RD$, DB$REL$
  
 F2648    CDCS 2.3  (CPS R9)
          THE FOLLOWING FEATURES ARE ADDED TO CDCS IN THIS CODE 
          TRANSMITTAL.
            1.  AUTOMATIC RECOVERY, INCLUDING 
                - SYMBIONTS AND OBJECT TIME ROUTINES TO SUPPORT THE 
                  NEW DML COMMANDS ASK, BEGIN, COMMIT, DROP, GET ID,
                  EXCLUSIVE AREA LOCK.
                - JOURNAL LOGGING TO MASS STORAGE ONLY, VIA A NEW CIO 
                  INTERFACE.
                - CHANGES TO THE DBRCN/DBRST UTILITIES TO REFERENCE LOGS
                  ON MAGNETIC TAPE ONLY (SEE BASIC RECOVERY). 
                - PROCESSING TO WRITE AND READ A TRANSACTION RECOVERY FILE
                  (TRF) AND A RESTART IDENTIFIER FILE (RIF).
                - AT CDCS INITIALIZATION, ANY NON-EMPTY LOG FILES WILL BE 
                  USED TO PERFORM SYSTEM RECOVERY.
                - ADDITIONS TO THE MASTER DIRECTORY UTILITY TO ALLOW
                  SPECIFICATION OF TRF AND RIF. 
  
            2.  BASIC RECOVERY, INCLUDING 
                - A NEW UTILITY, DBREC, WHICH ALLOCATES AND INITIALIZES 
                  MASS STORAGE LOG/RECOVERY FILES (JOURNAL LOG, QRF, TRF, 
                  AND RIF). 
                - AN INTERFACE TO SPIN OFF A JOB FROM CDCS TO DUMP A FULL 
                  JOURNAL LOG FILE TO MAGNETIC TAPE TO ALLOW PROCESSING BY
                  DBRCN/DBRST.  THIS INCLUDES SYNTAX IN THE MASTER DIRECTORY
                  UTILITY TO SPECIFY JOB CONTROL INFORMATION FOR THE SPUN-
                  OFF JOB.
  
            3.  DATABASE VERSIONS, INCLUDING
                - SYMBIONTS AND OBJECT TIME ROUTINES TO SUPPORT 
                  SPECIFICATION OF A VERSION NAME AT INVOKE, AND CHANGE 
                  OF A VERSION. 
                - SYNTAX IN THE MASTER DIRECTORY UTILITY TO ALLOW 
                  SPECIFICATION OF PERMANENT FILE INFORMATION FOR A DATA
                  BASE VERSION. 
                - CHANGES TO THE DBRCN/DBRST UTILITIES TO RECOVER/RESTORE 
                  DATABASE VERSIONS.
                - CHANGES TO THE CDCS OPERATOR INTERFACE TO QUALIFY AN
                  AREA-NAME BY A VERSION-NAME.
  
            4.  A NEW OPTION ON THE CDCS CONTROL CARD TO ALLOW
                SPECIFICATION OF ANY INPUT DIRECTIVE FILE.
  
            5.  A CHANGE TO CDCS STRUCTURE, TO USE OVERLAYS FOR SYSTEM
                RECOVERY AT INITIALIZATION, AND TO PUT CODE FOR MANY
                FEATURES (SUCH AS RELATION PROCESSING, DATABASE PROCEDURES, 
                ACCOUNTING) INTO CAPSULES.
  
 ********************************************************************** 
 *                                                                    * 
 * CAUTION -- AS PART OF THE ENHANCEMENTS FOR CDCS 2.3 (CPS R9),      * 
 *            THE CDCS PROGRAM LIBRARY (PL) IS RESEQUENCED IN         * 
 *            ORDER TO PRODUCE MORE CONSISTENT IDENTIFIERS.           * 
 *                                                                    * 
 ********************************************************************** 
  
          CDCS PROJECT    81/09/21
  
 CD20042  PROBLEM  - OCCASIONALLY WHEN CDCS COMPLETES ITS LAST USER 
                     IT ENTERS A STATE OF REPEATEDLY WRITING ITS
                     FIELD LENGTH TO THE ROLL FILE INSTEAD OF ROLLING 
                     ITSELF OUT QUIETLY.
                     THIS RESULTS IN SEVERE SYSTEM INTERFERENCE.
          SOLUTION - WHEN CALLING DB$ROLL WITH NO USERS, BE SURE THAT 
                     THE LIST OF SWAPPED OUT USERS IS EMPTY.
          NOTE     - THIS FIX IS APPLICABLE TO CDCS 2.2 WHEN THE
                     APPROPRIATE IDENTIFIER AND SEQUENCE IS USED. 
          RLM     81-10-12   DB$MTR 
  
 CD2A396B PROBLEM  - THERE ARE COMPILATION ERRORS IN DB$SFRT. 
          SOLUTION - DELETE THE FET DEFINITION FROM DB$SFRT.
          RLM     81-10-26   DB$SFRT
  
 CD2A395  PROBLEM  - DURING A CRM CALL FROM DB$UNDO (TRANSACTION
                     ROLLBACK), DB$QRF WAS CALLED TO DO BLOCK LOGGING 
                     AND, IN TURN, CALLED DB$SCHD.  ALTHOUGH THIS DID NOT 
                     CAUSE AN INTERRUPTION TO ANOTHER USER, IT DID CAUSE
                     POINTERS TO GET RESET UPON RETURNING TO DB$UNDO. 
                     IN PARTICULAR, THE UFT POINTER WAS SET TO ZERO,
                     WHICH IN THIS CASE, CAUSED A CMM ERROR IN DB$DRAR. 
          SOLUTION - RESET THE UFT POINTER AFTER CRM CALLS IN DB$UNDO,
                     DB$DRAR, AND DB$OCAR.
          EPJ/PLK 81/10/27   DB$UNDO,DB$DRAR,DB$OCAR
  
 CD2A382  PROBLEM  - THE MASTER DIRECTORY UTILITY CANNOT
                      LOCATE THE LAST ENTRY IN THE PERMANENT
                      FILE TABLE. THIS PROBLEM IS CAUSED BY 
                      THE WAY DB$MDDF SHRINKS THE TABLE AS
                      IT SETS THE SOURCE AND TARGET FOR THE 
                      TABLE REWRITE TO THE SAME VALUE, THUS,
                      IGNORING THE LAST ENTRY IN THE TABLE. 
          SOLUTION -  SET THE SOURCE AND TARGET VALUES
                      CORRECTLY.
          RMP    81/11/02    DB$MDDF
  
 CD2A414  PROBLEM  - CRM ERROR 52 ON THE RESTART ID FILE (RIF) OCCURRED 
                     DURING CDCS SYSTEM RECOVERY FOLLOWING A SYSTEM 
                     CRASH.  CDCS LEAVES THE RIF IN A MODIFIED-BUT-NOT- 
                     FLUSHED STATE DURING MOST OF ITS PROCESSING.  THUS,
                     A CRM ERROR 52 FOLLOWING A CRASH IS VERY PROBABLE. 
          SOLUTION - CDCS SHOULD SPECIFY FORCED WRITE IN WRITING TO THE 
                     RIF IN ORDER TO KEEP THAT FILE CURRENT AND TO AVOID
                     CRM ERROR 52 EXCEPT FOR A CRASH DURING A CRM WRITE.
          PLK     81/11/05    DB$RFIT 
  
 CD2A400  PROBLEM  - CDCS ABORTS WITH INTERNAL ERROR "DB$TRJL 1".  THIS 
                     HAPPENS BECAUSE DB$TRJL DOES NOT CORRECTLY 
                     DETERMINE WHEN TO READ ANOTHER BLOCK OF TRF RECORDS
                     INTO THE I/O BUFFER. 
          SOLUTION - CHANGE DB$TRJL TO CORRECTLY DETERMINE IF EITHER THE
                     RECORD IMAGE WRAPS AROUND THE END OF THE BUFFER, OR
                     MORE DATA MUST BE READ INTO THE BUFFER.  CHANGE
                     DB$BEG$ TO INITIALIZE THE FETRR FIELD. 
          PAM     81/11/19   DB$BEG$,DB$TRJL
  
 CD2A410  PROBLEM  - IF A USER JOB IS DROPPED WHILE WAITING FOR A 
                     JOURNAL LOG FILE, A CDCS MODE ERROR RESULTS. 
          SOLUTION - DO NOT ISSUE AN SF.SWPI FUNCTION AFTER THE 
                     USERS TQT HAS BEEN DELINKED. 
                     ALSO - ADD THE CURRENT TIME IN THE FLOW POINT DATA.
          RLM     81-11-03   DB$RCBF, DB$SCHD,DB$FLOP 
  
 CD2A411  PROBLEM  - FOLLOWING THE MESSAGE *INTERLOCK NOT AVAILABLE*
                     CDCS ROLLS ITSELF OUT BEFORE TRYING AGAIN. 
          SOLUTION - SHORTEN THE DELAY BEFORE REATTEMPTING THE ATTACH.
          RLM     81-10-29   CDGDFDCLS, DB$MTR, DB$ATCH*
  
 SORT5    PROBLEM  - DBRCVR (DBRCN/DBRST) SHOULD OPTIONALLY USE SORT5 
                     INSTEAD OF SORT4.
          SOLUTION - MODIFY THE LIB STATEMENT IN SKELETON TO USE
                     SRT5LIB.  YANK THIS IDENT TO USE SORT 4. 
          RLM     81/10/01   SKELETON 
  
 CD2A416  PROBLEM  - DURING CDCS INITIALIZATION CAPL$RM IS CALLED TO
                     LOCK IN SOME AAM CAPSULES.  IN THIS PROCESS DB$CRMR
                     IS CALLED TO ALLOW CDCS TO CHECK FOR INPUT IN
                     RA.SSC.  SINCE RA.SSC CONTAINS GARBAGE AT THIS 
                     TIME, CDCS MODES OUT TRYING TO PROCESS THIS AS AN
                     INPUT REQUEST. 
          SOLUTION - ZERO OUT RA.SSC AT THE BEGINNING OF CDCS 
                     INITIALIZATION.
          RLM/PLK 81/11/11   DB$INIT
  
 CD2A384  PROBLEM  - THE MASTER DIRECTORY UTILITY MAY READ BEYOND 
                     END-OF-RECORD WHEN IT ATTEMPTS TO RECOVER
                     FROM INCORRECT SYNTAX. THIS MAY CAUSE THE
                     INPUT FILE TO OTHER UTILITIES TO BE CLOBBERED
                     IF THE NO ABORT OPTION IS SELECTED IN THE
                     CONTROL CARD RECORD. 
          SOLUTION - INTRODUCE TWO NEW SEMANTIC ROUTINES THAT 
                     WILL SET/TEST FOR AN END-OF-RECORD FLAG AND
                     ADD CODE IN DB$SNTX TO CALL THESE ROUTINES 
                     TO SET/TEST THE FLAG WHERE APPROPRIATE TO
                     AVOID CLOBBERING THE INPUT FILE. 
          RMP    81/11/05    MD10CDCLS,SEMJPDCLS,DB$M10M
                             DB$SNTX,DB$SRSF,DB$SRTF
  
 CD2A418  PROBLEM  - THE ERROR MESSAGE, "QRF IS NOT A PERMANENT FILE",
                     WAS ISSUED DURING A DBRCN AND A DBRST RUN, WHEN THE
                     QRF WAS A VALID PERMANENT FILE. THE LFN THAT WAS 
                     PASSED TO THE STATUS ROUTINE, BY DBRCN AND DBRST 
                     TO VERIFY IF THE QRF WAS A PERMANENT FILE, WAS 
                     BLANK FILLED INSTEAD OF ZERO FILLED, AND THUS
                     PRODUCED THE ERROR.
          SOLUTION - CHANGE THE LFN, THAT IS PASSED TO THE STATUS 
                     ROUTINE, SO THAT IT IS ZERO FILLED AND NOT BLANK 
                     FILLED.
          EPJ     81/11/13   DB$RUPD
  
 CD2A409  PROBLEM  - CRM ERROR 167 WAS ISSUED FOR EACH RECORD WRITTEN TO
                     THE SELECT FILE DURING A DBRCN OR A DBRST RUN. 
                     THESE ERRORS OCCURRED BECAUSE A WORD IS ADDED TO 
                     EACH RECORD SELECTED FROM THE JOURNAL LOG FILE 
                     BEFORE IT IS WRITTEN TO THE SELECT FILE, AND SOME
                     FIT FIELDS (HL AND CP) USED BY CRM TO COMPUTE
                     THE RECORD LENGTH, TO READ OR WRITE, WERE NOT
                     UPDATED TO REFLECT THE ADDED WORD. 
          SOLUTION - INCREASE THE VALUES OF THESE FIELDS (HL AND CP)
                     BEFORE ANY CRM OPERATIONS ON THE SELECT FILE, TO 
                     ACCOMMODATE THE ADDITIONAL WORD. 
          EPJ     81/05/11   DB$RSEL,DB$RUPD,DB$SORT
  
 CD2A417  PROBLEM  - CDCS ISSUED A SWAP OUT SUBSYSTEM FUNCTION (SF) 
                     CALL (WHILE WAITING FOR A PACK TO BE MOUNTED DURING
                     SYSTEM RECOVERY), BEFORE IT HAD BECOME A SYSTEM
                     CONTROL POINT, AND THUS CAUSED A PP CALL ERROR.
                     THE SUBSYSTEM FUNCTION REQUEST IS FORMATTED IN THE 
                     SFCALL BUFFER CONTAINED IN THE TQT. IN THIS SFCALL 
                     BUFFER IS THE RUN UNIT IDENTIFIER ASSIGNED TO THE
                     JOB BY THE OS. SFCALLS CAN ONLY BE ISSUED FOR JOBS 
                     THAT HAVE VALID RUN UNIT IDS. THERE ARE NO JOBS
                     CONNECTED TO CDCS DURING SYSTEM RECOVERY, AND THE
                     ONLY TQT THAT EXISTS IS THE MONITOR TQT (THE WORD
                     MONITOR IS IN THE RUN UNIT ID FIELD OF THE SFCALL
                     BUFFER). THE SFCALL, DURING SYSTEM RECOVERY, WAS 
                     ATTEMPTED USING THE MONITOR TQT. 
          SOLUTION - IN THE ATTACH ROUTINES FOR BOTH NOS AND NOS/BE ADD 
                     ANOTHER CHECK AROUND THE CALL TO THE SWAP OUT
                     ROUTINE SO THAT THE SWAP OUT IS NOT ATTEMPTED IF 
                     THE CURRENT TQT IS THE MONITOR TQT.
          EPJ     81/11/12   DB$ATCH,DB$ATCH* 
  
 CD2A393  PROBLEM  - WHEN THE ONLY ACTIVE CDCS USER IS WAITING FOR A
                     PERMANENT FILE THAT IS ATTACHED BY A NON-CDCS JOB, 
                     CDCS ROLLS ITSELF OUT AND WILL NOT ATTACH THE FILE 
                     EVEN WHEN IT IS RETURNED BY THE OTHER JOB. 
                     THIS APPARENT CDCS HANG CAN BE RESOLVED IF THE 
                     OPERATOR BRINGS UP THE K/L DISPLAY.
          SOLUTION - MODIFY CDCS SO IT WILL CONTINUE TO ATTEMPT TO
                     ATTACH THE FILE WHILE IT IS ROLLED OUT.
                     CDCS CAN THEN ROLL IN AND CONTINUE WHEN THE FILE 
                     IS AVAILABLE.
          RLM     81-11-06   CDGDFDCLS, DB$ATCH, DB$ATCH*, DB$JFIN
                             DB$JRPT, DB$MTR, DB$ROLL, SKELETON 
  
 CD2A421  PROBLEM  - THE SCHEMA WRAP-UP PROCEDURES DONT WAIT FOR
                     COMPLETION OF THE QRF FLUSH TASK.
          SOLUTION - WAIT FOR THE INTERNAL TASK TO COMPLETE BEFORE
                     PURGING SYSTEM TABLES. 
          RLM     81-11-20   DB$PST, DB$QRF, DB$WRAR, DB$QFIN 
  
 CD2A421A PROBLEM  - IT IS SUSPECTED THAT QFSALX IS NO LONGER NEEDED. 
          SOLUTION - THIS CODE WILL CAUSE AN INTERNAL ERROR IF SALX IS
                     NOT SET CORRECTLY. 
          NOTE     - ***TEMPORARY CODE ***
                     WHEN THIS CODE IS REMOVED ---
                     EITHER 
                      - REMOVE QFSALX FROM THE QFT
                     OR 
                     - SAVE THE CORRECT SALX AT THE BASE OF THE INTERNAL
                       TASK RCB STACK.
          RLM     81-11-23   DB$QRF 
  
 CD2A404  PROBLEM  - WHEN THE TRF IS REALLOCATED BUT THE RIF IS NOT, THE
                     ATTEMPT TO OBTAIN THE RESTART ID CAUSES CDCS ERROR 
                     624 --  CRM ERROR 446 - DUPLICATE KEY FOUND.  THE
                     CRM ERROR GIVEN IN THE DIAGNOSTIC, HOWEVER, IS 000.
                     ALSO, INCONSISTENCIES WERE FOUND IN THE WAY I-O
                     ERRORS WERE HANDLED FOR THE CDCS SYSTEM FILES. 
          SOLUTION - MENTION IN THE REFERENCE MANUAL THAT IF THE TRF IS 
                     REALLOCATED, THE RIF MUST ALSO BE REALLOCATED. 
                     MODIFY RIF I-O ERROR PROCESSING TO PROPERLY INSERT 
                     THE CRM ERROR NUMBER AND TO CONFORM TO THE WAY I-O 
                     ERRORS ARE HANDLED FOR OTHER SYSTEM FILES; THAT IS,
                     ISSUE A GENERAL I-O ERROR MESSAGE TO THE UCP AND A 
                     SPECIFIC ERROR MESSAGE (INCLUDING CRM ERROR NUMBER)
                     TO THE CDCS OUTPUT FILE.  THE GENERAL UCP ERROR
                     MESSAGE HAS BEEN CHANGED FROM NONFATAL TO FATAL. 
          PAM     81/11/10   DB$GTI$,DB$ERRM,SKELETON 
  
 CD2A420  PROBLEM  - CDCS ABORTED WITH AN INTERNAL ERROR IN DB$AREH 
                     BECAUSE DB$UNDO CALLED DB$AREH WITHOUT AN ERROR
                     BLOCK PARAMETER. 
          SOLUTION - MODIFY DB$UNDO TO CALL DB$AREH CORRECTLY.  ALSO
                     CORRECT THE OTHER DB$AREH CALLS IN DB$UNDO TO
                     PASS THE SAVED BASED ARRAY POINTER OF THE ERROR
                     BLOCK INSTEAD OF THE LOCAL VARIABLE ERRBLKA. 
          PLK/RLM 81/11/23   DB$UNDO
  
 CD2A297  PROBLEM  - CDCS DOES NOT MEET ITS DR FIELD LENGTH REQUIREMENT 
                     AT THIS RELEASE LEVEL DUE TO THE ACTIVATION OF 
                     THE FLOW POINT CODE INTRODUCED AFTER RELEASE 
                     LEVEL 518. 
          SOLUTION - DEACTIVATE THE FLOW POINT CODE IN CDGDFDCLS. 
  
          *****************  THIS VERSION OF CD2A297 APPLIES ONLY TO CDCS 
          * C A U T I O N *  VERSION 2.3 AND CANNOT BE INSTALLED IN 
          *****************  EARLIER VERSIONS OF CDCS.
  
          RMP    81/10/26    CDGDFDCLS
  
 CD2A425  PROBLEM  - NOS R6 REQUIRES CDC TO USE AN NEW SYSTEM CONTROL 
  
                     POINT IDENTIFICATION CODE. 
          SOLUTION - USE CODE CDSI FROM COMSSSD 
                     INSTEAD OF CDPS FROM COMSPRD.
                     SWITCHING FROM ONE TO THE OTHER REQUIRES 
                     REASSEMBLY OF DB$DMGI, DB$SELF, DB$SSCL, AND 
                     DB$SSIN. 
          RLM    81-12-01    SSIDDCLS,DB$DMGI 
  
 *L564*    ************************************************ 
 CD2A388  PROBLEM  - CDCS CAN ATTEMPT TO WRITE TO NONEXISTENT LOG FILES,
                     WHICH CAN RESULT IN USER JOBS HANGING INDEFINITELY.
                     ALSO, CDCS CAN FAIL TO DO LOGGING WHEN SPECIFIED.
          SOLUTION - IF AN EXISTING, USABLE OFT IS FOUND FOR AN AREA AND
                     VERSION, COPY THE LOG AND RECOVERY BITS TO THE RSB.
                     ALSO, ADD A CDCS INTERNAL ERROR TRAP (DB$PUNT CALL)
                     IF CDCS ATTEMPTS TO WRITE TO NONEXISTENT LOG FILES.
          SPL/RLM 82/01/05  DB$ADAX,DB$JLRS 
  
 CD2A394  PROBLEM  - IN THE EVENT OF A LAST RESORT CMM OVERFLOW, CDCS 
                     WILL TERMINATE THE REQUESTING USER.
                     THIS MAY RESULT IN THE ABANDONMENT OF AN IN PROCESS
                     REQUEST TO FDL AND/OR CRM. 
                     THESE PRODUCTS MAY BE LEFT IN A STATE THAT DOES
                     NOT PERMIT PROCESSING OF OTHER REQUESTS. 
          SOLUTION - THE CMM.OWN INTERFACE THAT IS USED AS THE LAST 
                     RESORT OVERFLOW HANDLER WILL CALL THE PROCEDURES 
                     PROVIDED BY CRM AND FDL. 
                     THESE CALLS SERVE AS NOTIFICATION THAT ANY 
                     UNCOMPLETED REQUEST IS BEING ABANDONED.
  
                     THE FOLLOWING PSR'S ARE REQUIRED FOR THE PROPER
                     EXECUTION OF THIS MODIFICATION.
                       AM2A263
                       SW1A601
                       LDRA487
                     IF AM2A263 IS NOT PRESENT, THERE WILL BE AN
                     UNSATISFIED EXTERNAL FOR CMMX.AA.
  
                     IF LDRA487 IS NOT PRESENT, THE ONLY LOADER 
                     DIAGNOSTIC IS THE INCLUSION OF FDL.ROS AMONG THE 
                     UNSATISFIED WEAK EXTERNALS.
                     CDCS WILL EXECUTE CORRECTLY E CEPT IN SOME REMOTE
                     INSTANCES WHEN FDL REQUESTS ARE ABANDONED. 
          RLM   82/01/11     DB$MFI 
  
 CD2A405  PROBLEM  - IF A RECOVERY POINT RECORD IS THE FIRST RECORD TO
                     BE WRITTEN TO THE JLF AFTER A CALL TO DB$POLE, A 
                     PRU OF PRESET WORDS WILL BE SKIPPED ON THE JLF 
                     BEFORE THE RECORD IS WRITTEN.  THIS SKIP IS
                     UNNECESSARY AND CAUSES A STRING OF PRESET WORDS TO 
                     EXIST BETWEEN TWO LOG RECORDS.  THIS CAN HAPPEN
                     ONLY IF A RECOVERY POINT RECORD IS WRITTEN DURING
                     SYSTEM RECOVERY. 
          SOLUTION - IN DB$QRF, CALL DB$JRPT (TO WRITE A RECOVERY POINT 
                     RECORD) ONLY IF IN NON-SYSTEM RECOVERY MODE. 
          PAM/RLM 82/01/14   DB$QRF 
  
 CD2A412  PROBLEM  - WHEN SEVERAL USERS ARE ATTEMPTING TO ATTACH A
                     PERMANENT FILE THAT IS BUSY, ONLY THE FIRST USER 
                     CAN BE DROPPED.  IF IT IS DROPPED, THE OTHERS CAN
                     NEVER BE DROPPED AND THE FILE CAN NEVER BE 
                     ATTACHED.  (SEE CD20058 FOR CDCS 2.2)
                     IT IS ALSO IMPOSSIBLE TO DROP A JOB THAT IS WAITING
                     FOR A RECORD LOCK. 
          SOLUTION - ALTER RCCONSTRA TO POINT TO STATCOMP.
                     (UNLESS THE RCB IS WAITING FOR AN EXTERNAL EVENT)
                     IF A TERMINATED USER IS THE ORIGINAL USER WAITING
                     FOR A PERMANENT FILE, RELEASE OTHER WAITING USERS
                     FROM THE OFCOMP INTERLOCK. 
          RLM     81-12-18   CDGDFDCLS, CDCSCOMMN 
                             DB$ADAX, DB$ATCH, DB$CRMR, DB$DSCS 
                             DB$INV$, DB$IREC, DB$JRPT, DB$MTR
                             DB$SFCL, DB$SOSI, DB$TARE, DB$TQTT(NEW)
                             DB$TRJL, DB$TRU,  DB$TSCH, DB$WART 
                             DB$ERRE, DB$SCHD, DB$VER$
                             DB$TRC,SKELETON
  
 CD2A424  PROBLEM  - IF AN UNKNOWN RESTART IDENTIFIER IS SUPPLIED TO
                     CDCS VIA DB$ASK, CDCS SHOULD RETURN ASTERISKS FOR
                     THE LAST COMMITTED TRANSACTION IDENTIFIER ALONG
                     WITH ISSUING ERROR 733.  CDCS DID NOT RETURN THE 
                     ASTERISKS BECAUSE THE CALL TO DB$ERR FOR ERROR 733 
                     DID NOT RETURN TO DB$ASK$. 
          SOLUTION - IN DB$ASK$ CHANGE THE ORDER OF RETURNING ASTERISKS 
                     FOR ERROR 733.  ALSO IN DB$ASK$, CORRECT INTERRUP- 
                     TIBILITY PROBLEMS ACROSS DB$SFCL PROCESSING AND
                     IMPROVE THE ERROR DETECTION. 
                     ALSO MODIFY DB$GTI$, DB$CMT$, AND DB$END$ TO MAKE
                     THE CRM ERROR CHECKING ON THE RESTART IDENTIFIER 
                     FILE CONSISTENT WITH DB$ASK$.
                     MODIFY DB$BALR TO USE 10 FOR THE KEY LENGTH WHEN 
                     INITIALIZING THE RIF.
          PLK     81/12/15   DB$ASK$,DB$ERRM,DB$GTI$,DB$CMT$,DB$END$, 
                             DB$BALR,CUGDFDCLS
  
 CD2A430  PROBLEM  - IN CDCS DIAGNOSTIC MESSAGES, NEW RECOVERY TERMS
                     (TRANSACTION, TRF, QRF, BEGIN/COMMIT) CAN BE 
                     CONFUSED WITH TAF TERMINOLOGY. 
          SOLUTION - (1) CHANGE THE TERMS *TRANSACTION* AND *TRANSACTION
                         IDENTIFIER* TO *CDCS TRANSACTION* AND *CDCS
                         TRANSACTION IDENTIFIER*. 
                     (2) SPELL OUT CDCS FILE ABBREVIATIONS AND PREFACE
                         THEM WITH *CDCS*, AS IN *CDCS JOURNAL LOG
                         FILE*. 
                     (3) REFERENCES TO *BEGIN/COMMIT/DROP* SHOULD 
                         EXPLICITLY MENTION THAT IT IS A CDCS *BEGIN/ 
                         COMMIT/DROP*.
                     (4) IN ADDITION, DELETE OLD MESSAGES THAT ARE NO 
                         LONGER ISSUED. 
          PAM     81/12/10   DB$AINT,DB$AREH,DB$AREM,DB$BRIF,DB$DSCS
                             DB$ERRM,DB$RSEL,DB$RUTR
  
 CD2A431  PROBLEM  - IN DB$IOER, THE CALLS TO DB$ERRE HAVE TWO
                     PARAMETERS INSTEAD OF THREE.  IN DB$QRFA, THE CALL 
                     TO DB$DRAR HAS ZERO PARAMETERS INSTEAD OF ONE. 
          SOLUTION - CHANGE THE CALLS TO DB$ERRE TO HAVE THREE
                     PARAMETERS.  CHANGE THE CALL TO DB$DRAR TO HAVE ONE
                     PARAMETER (THIS MEANS THAT THE AREA ERROR MESSAGE
                     IN DB$QRFA WILL NOW BE ISSUED IN DB$DRAR). 
          PAM     81/12/18   DB$ERRE,DB$IOER,DB$QRFA
  
 CD2A432  PROBLEM  - WHEN AN AREA IS OPENED FOR OUTPUT, QRF LOGGING 
                     DOES NOT OCCUR UNTIL A QRF RECOVERY POINT IS TAKEN.
                     IF THERE IS A CDCS FAILURE BEFORE THE AREA IS
                     CLOSED OR A RECOVERY POINT OCCURS, A SUBSEQUENT
                     OPEN OF THE AREA RESULTS IN A CRM ERROR 52.
          SOLUTION - FORCE A QRF RECOVERY POINT AFTER THE FIRST RECORD
                     IS WRITTEN.
          RLM     82/01/04   DB$WR2$
  
 CD2A433  PROBLEM  -  CP AND IO ACCOUNTING VALUES FOR CDCS 2.3 VERSION
                      CHANGE, BEGIN, COMMIT, ASK-ID, GET-ID, AND
                      TRANSACTION DROP FUNCTIONS ARE INCORRECT. 
          SOLUTION -  CHANGE THE ACCOUNTING TABLE TO REFLECT MORE 
                      ACCURATE CP AND IO TIME VALUES FOR THE ABOVE
                      FUNCTIONS.
          RMP    81-12-15    ACCTABLE,DB$ACCT 
  
 CD2A438  PROBLEM  - CDCS TREATS INTERACTIVE COBOL AND FORTRAN USERS AS 
                     BATCH ORIGIN. CDCS WAITS FOR ACCESS TO LOCKED
                     RECORDS OR AREAS, WAITS FOR ACCESS TO FILES AND
                     ABORTS THE USER ON FATAL ERRORS. 
          SOLUTION - A NEW CAPABILITY IS ADDED TO CDCS CALLED IMMEDIATE 
                     RETURN. WITH THIS CAPABILITY, A USER CAN GET 
                     IMMEDIATE RESPONSE FROM CDCS WHEN CERTAIN RESOURCE 
                     CONFLICTS ARISE (SUCH AS LOCKED RECORDS OR FILES 
                     THAT CANNOT BE IMMEDIATELY ATTACHED). IT ALSO
                     PROVIDES SPECIAL HANDLING OF ERRORS SO THAT CONTROL
                     WILL RETURN TO THE USER ON FATAL ERRORS (USER WILL 
                     BE DISCONNECTED FROM CDCS BUT NOT ABORTED). TO SET 
                     (ENABLE) OR DISABLE IMMEDIATE RETURN THE FOLLOWING 
                     OBJECT-TIME ROUTINES ARE PROVIDED - FOR THE COBOL
                     USER DB$SIR, FOR THE FORTRAN (FDBF) USER DMLSIR. TO
                     FACILITATE ERROR CHECKING FOR THE USER A FIELD HAS 
                     BEEN ADDED TO THE DATABASE STATUS BLOCK (IN WORD 
                     FOUR) WHICH WILL CONTAIN THE FATALITY OF THE CDCS
                     ERROR. 
                     THIS CODE ALSO CHANGES THE WAY THE CDCS TASK 
                     SCHEDULER (DB$SCHD) IDENTIFIES CDCS INTERNAL TASKS.
                     THE FUNCTION CODE FOR THE MONITOR RCB IS NOW USED
                     TO IDENTIFY ALL CDCS INTERNAL TASKS. ALSO SOME CDCS
                     BASED ARRAY POINTERS AND INDICES WERE NOT BEING
                     PROPERLY SET BECAUSE THE CALL TO DB$SCHT, WHICH
                     SETS THESE POINTERS, WAS LOCATED TOO LATE IN THE 
                     EXECUTION OF DB$IREC. THE CALL IS REPLACED BY TWO
                     CALLS WHICH ARE PLACED EARLIER IN THE EXECUTION OF 
                     DB$IREC. 
          EPJ     81/01/11   NEW DECKS: 
                             DB$SIR,DB$SIR$ 
                             MODIFIED COMMDECKS AND DECKS:  
                             CDCSCOMMN,CDCSFUNC,CDGDFDCLS,DBSTDCLS, 
                             DB$FUNC,RQPARDCLS,SKELETON,
                             DB$ADAX,DB$CARS,DB$DFIN,DB$ERR,DB$GLDF,
                             DB$INV,DB$IREC,DB$ITC,DB$JFIN,DB$JRPT, 
                             DB$LOK,DB$QFIN,DB$RFIN,DB$RQST,DB$SCHD,
                             DB$SYMB,DB$TFIN,DB$TQTC
  
 CD2A440  PROBLEM  - CDCS DOES NOT CHECK FOR RECORD LOCKS OR AREA LOCKS 
                     BEFORE WRITING A RECORD. 
                     THIS ALLOWS OTHER USERS TO WRITE ON A FILE WHILE 
                     IT IS LOCKED.
                     IN CDCS 2.3 THIS IS CRITICAL BECAUSE A RECORD THAT 
                     IS WRITTEN AS PART OF A TRANSACTION CAN BE READ
                     AND MODIFIED BEFORE THE TRANSACTION IS COMMITTED.
          SOLUTION - BEFORE THE WRITE - 
                     CALL DB$LOK TO GET A RECORD LOCK.
                     CALL DB$LOKT TO CONVERT IT TO AN EXCLUSIVE LOCK. 
                     AFTER THE WRITE -
                     CALL DB$LOKD TO RELEASE THE LOCK.
          RLM     81-12-16   DB$WR2$
  
 CD2A441  PROBLEM  -  DB$ACCN MODES OUT WHEN TRYING TO ADD
                      THE ACCOUNTING CHARGES FOR A REQUEST
                      THAT WAS INTERRUPTED, BECAUSE THE 
                      POINTER TO THE UFT WAS NOT SET BY 
                      DB$WRP BEFORE CALLING DB$ACCN.
          SOLUTION -  MOVE THE INITIALIZATION OF THE
                      CURRENT AREA ORDINAL IN DB$WRP
                      AFTER THE CALL TO DB$ACCN, THUS,
                      RETAINING THE POINTER TO THE UFT. 
          RMP    82-01-07    DB$WRP 
  
 CD2A442  PROBLEM  - FOR NOS 6.0, THE ONLY MESSAGES THAT CDCS SHOULD
                     ISSUE TO LINE 2 OF THE B DISPLAY ARE THOSE MESSAGES
                     THAT REQUIRE OPERATOR ACTION.  CURRENTLY ALL 
                     MESSAGES ISSUED VIA DB$MSGB ARE SENT TO LINE 2 OF
                     THE B DISPLAY. 
          SOLUTION - IN DB$MSGB, ISSUE ALL MESSAGES TO LINE 1 OF THE B
                     DISPLAY (PRIORITY B DISPLAY MESSAGES WILL STILL BE 
                     WRITTEN TO LINE 2).  ADD A NEW ENTRY POINT,
                     DB$MSG2, TO CLEAR LINE 2.  THIS IS NEEDED BECAUSE
                     THE MESSAGE "REQUEST *K* DISPLAY" APPEARS ON LINE 2
                     IF NO OTHER MESSAGE IS SENT THERE.  IN DB$DMGR,
                     MODIFY THE OPERATOR MESSAGE TO SPECIFY THE CORRECT 
                     DISPLAY FOR EACH OPERATING SYSTEM.  ADD CALLS TO 
                     DB$MSG2 TO CLEAR LINE 2.  IN DB$MTR, CLEAR LINE 2
                     OF THE B DISPLAY PRIOR TO ISSUING MESSAGES TO LINE 
                     1.  IN DB$ATCH*, MAKE THE "MOUNT PACK" MESSAGE A 
                     FLASHING MESSAGE.
                     NOTE:  THIS FIX IS NEEDED FOR NOS 6.0 ONLY.
          PAM     81/01/11   DB$ATCH*,DB$DMGR,DB$MSG,DB$MTR 
  
 CD2A443  PROBLEM  - DBRST AND DBRCN CANNOT HANDLE TWO OR MORE DBREC
                     DUMPED FILES ON A SINGLE TAPE. 
          SOLUTION - MODIFY DBREC SO THAT IT DOES NOT WRITE THE JOURNAL 
                     LOG FILE HEADER TO THE TAPE FILE. ALSO REMOVE THE
                     CODE FROM DBRCN AND DBRST THAT READS AND DISCARDS
                     THE FIRST RECORD FROM THE TAPE FILE, WHICH IS
                     ASSUMED TO BE THE HEADER.
          EPJ     82/01/22   DB$BDLG,DB$RSEL
  
 CD2A447  PROBLEM  - DBRST MODES OUT ATTEMPTING TO CLOSE LOG FILES, 
                     WHEN NO LOG FILES ARE PRESENT TO CLOSE. THIS 
                     HAPPENED BECAUSE THE FIELD THAT DBRST USES TO CHECK
                     IF THE LOG FILES EXIST WAS NOT INITIALIZED 
                     PROPERLY. THIS FIELD IS IN THE SAL AND IS
                     INITIALIZED, ALONG WITH OTHER SAL FIELDS, IN THE 
                     ROUTINE DB$RVRS BEFORE THE CALL TO DB$CRIN. DB$CRIN
                     READS THE SCHEMA DIRECTORY FROM THE MD INTO THE
                     SAL, THUS INVALIDATING THE INITIALIZATION THAT WAS 
                     DONE BEFORE THE CALL TO DB$CRIN. 
          SOLUTION - IN DB$RVRS MOVE THE INITIALIZATION OF THESE SAL
                     FIELDS AFTER THE CALL TO DB$CRIN.
          EPJ     82/01/26   DB$RVRS
  
 CD2A448  PROBLEM  - DBRST ISSUES THE MESSAGE "CIO ERROR ON QRF" AND
                     ABORTS, WHEN NO CIO ERROR HAS OCURRED. THIS
                     HAPPENED BECAUSE THE FIELD IN THE FET USED TO CHECK
                     FOR ERRORS WAS DECLARED IN THE WRONG WORD. IT
                     SHOULD BE IN WORD ZERO INSTEAD OF WORD THIRTEEN. 
          SOLUTION - CHANGE THE DECLARATION OF THE ERROR STATUS FIELD 
                     TO BE IN WORD ZERO INSTEAD OF WORD THIRTEEN OF THE 
                     FET. 
          EPJ     82/01/26   DB$UQIN
  
 CD2A451  PROBLEM  - IF A FATAL FILE ERROR IS DETECTED IN DB$FTEX (I.E.,
                     IF THE BFF FLAG IS SET IN THE FIT), THE AREA IS SET
                     TO "ERRDOWN" STATUS, BUT USERS OF THE AREA ARE NOT 
                     ABORTED. 
          SOLUTION - IF THE BFF FLAG IS SET, DB$FTEX WILL CALL DB$TARE
                     TO TERMINATE USERS OF THE AREA.  DB$ERR WILL BE
                     CALLED TO ISSUE A FATAL ERROR TO TERMINATE THE 
                     CURRENT USER OF THE AREA.
          PAM     82/01/26   DB$ERRM,DB$FTEX,DB$TARE
  
 CD2A464  PROBLEM  - WHEN READING A RELATION, THE RECORD ORDINAL
                     RETURNED IS THAT OF THE LAST RECORD READ.  PRIOR TO
                     READING EACH RECORD IN THE RELATION, THE RECORD
                     ORDINAL IS ZEROED OUT.  IF A PARENT RECORD IS READ 
                     BUT NULL RECORDS ARE RETURNED FOR THE CHILD
                     RECORDS, A RECORD ORDINAL OF ZERO IS RETURNED IN 
                     THE RSB.  THIS CAUSES A PRIVACY BREACH IF AN 
                     ATTEMPT IS MADE TO DELETE THE PARENT RECORD AFTER
                     THE READ.
          SOLUTION - IN DB$REL$, ADD A TEMPORARY ITEM TO STORE THE
                     ORDINAL OF THE LAST RECORD READ.  IF A NULL RECORD 
                     IS FOUND, RESTORE THE RSB RECORD ORDINAL TO THAT OF
                     THE LAST RECORD READ.
          PAM     82/02/19   DB$REL$
  
 *L577*    ************************************************ 
 CD2A435  PROBLEM  - CDCS WAITS FOR A BAD LOG FILE TO BECOME USABLE.
                     DB$JFIN AND DB$JRPT WAIT FOR A JOURNAL LOG FILE
                     EVEN IF THERE IS NONE, OR WHEN NONE ARE USABLE.
                     A FILE IS UNUSABLE IF IT IS EMPTY, OR IS FLAGGED 
                     WITH AN ERROR STATUS.
          SOLUTION - WHILE SCANNING FOR A JOURNAL LOG FOR IMMEDIATE 
                     USE, ALSO NOTE ANY THAT MIGHT BECOME USABLE. 
                     RETURN IMMEDIATELY IF NONE OF THE FILES WILL 
                     BECOME USABLE. 
  
                     ALSO - IF IN CDCSBTF ON NOS, REQUEST A ROLL-OUT
                     WHILE WAITING FOR A USABLE LOG FILE. 
          RLM     82/01/20   DB$JFIN, DB$JRPT, DB$SFIN, DB$$RCM 
  
 CD2A436  PROBLEM  -  THE MASTER DIRECTORY UTILITY (DBMSTRD) MAY ABORT
                      WITH "MM BLOCK HANDLER ERROR PNTR AT NUM" IF
                      SYNTAX ERRORS ARE ENCOUNTERED IN A RUN WITH MORE
                      THAN TWO SCHEMAS. IN THIS SITUATION, THE SYNTAX 
                      FOR THE NEXT SCHEMA IN THE INPUT FILE IS IGNORED. 
                      DURING TESTING OF THE ABOVE PROBLEM, A CRM ERROR
                      120 OCCURRED ON THE SCHEMA FILE.
          SOLUTION -  FREE CMM BLOCKS BETWEEN SCHEMAS TO CORRECT THE
                      MANAGED MEMORY BLOCK ERROR. CORRECTLY POSITION
                      THE INPUT FILE BEFORE THE RESTART OF THE SCANNER
                      SO THAT THE NEXT SCHEMA WILL NOT BE IGNORED.
                      CHANGE DB$SR11 SO THAT IT CHECKS THE STATUS 
                      (OPEN OR CLOSE) OF THE SCHEMA FILE IN WORD
                      17 OF THE FIT INSTEAD OF WORD 21. 
          RMP    82-01-27    DB$M30M,DB$SNTX,DB$SRDM,DB$SR11
  
 CD2A437  PROBLEM  - THE CURRENT VALUE OF THE RESTART IDENTIFIER (RID)
                     IS KEPT IN THE AUTOMATIC RECOVERY TABLE (ART). 
                     THE ART IS RECORDED ON THE TRANSACTION RECOVERY
                     FILE (TRF).
                     WHEN THE TRF IS REINITIALIZED FOR ANY REASON, THE
                     RID GETS RESTORED TO A VALUE OF AAAAA. 
                     IN THIS CASE, VALID OUTSTANDING RID'S MAY BE 
                     REASSIGNED.
          SOLUTION - WHEN THE TRF IS ATTACHED, ASSIGN A RID THAT IS 
                     TIME DEPENDENT SO THERE WILL BE A WELL CONTROLLED
                     PROGRESSION OF RID VALUES. 
                     JUST IN CASE, THERE WILL ALSO BE A CHECK FOR 
                     DUPLICATION OF A RID.
          RLM     82/01/27   DB$GTI$, DB$RIDI, DB$TFIN, SKELETON
  
 CD2A439  PROBLEM  - THE BEFORE-IMAGE LOG RECORD FOR A WRITE CONTAINS 
                     THE PRIMARY KEY TO PERMIT THE RECORD TO BE BACKED
                     OUT IF A TRANSACTION IS DROPPED OR IF THE DATA-
                     BASE IS RESTORED TO A PRIOR STATUS.
                     ON AN ACTUAL KEY FILE, THE KEY MAY BE ASSIGNED BY
                     CRM WHEN THE RECORD IS WRITTEN.
                     IN THAT CASE THE BEFORE-IMAGE LOG RECORD DOES NOT
                     CONTAIN THE CORRECT KEY. 
          SOLUTION - IF THE FILE IS AK AND THE KEY IS ZERO, LOG THE 
                     BEFORE IMAGE AFTER THE RECORD IS WRITTEN.
          RLM     82/02/08   DB$WR2$
  
 CD2A452  PROBLEM  - CDCS, CDCSBTF AND DBMSTRD STILL HAVE INSTANCES 
                     WHERE DB$CDIS IS USED INSTEAD OF THE MORE EFFICIENT
                     ROUTINES DB$COCB, DB$COCT, DB$CDEB AND DB$CDEC.
          SOLUTION - CONVERSION OF ALL OF THE CALLS PERMITS DB$CDIS TO
                     BE REMOVED FROM THESE PRODUCTS.
                     THE DB$CDIS CALLS ARE NOT YET COMPLETELY REMOVED 
                     FROM DBRCVR, DBQRFA AND DBREC. 
          RLM     82/02/01
  
 CD2A460  PROBLEM  - CURRENTLY THE FOUR CALLERS OF DB$UNDO ZERO OUT THE 
                     ERROR BLOCK PARAMETER.  IT WOULD BE BETTER FOR 
                     DB$UNDO TO DO IT.  ALSO, THE ERROR BLOCK SHOULD BE 
                     A BASED ARRAY THAT IS ALLOCATED BY DB$MBA SO THAT
                     IT WILL AUTOMATICALLY BE SAVED IN THE EVENT THAT 
                     DB$UNDO IS INTERRUPTED.
          SOLUTION - ZERO OUT THE FIRST WORD OF THE ERROR BLOCK IN
                     DB$UNDO.  DELETE THE REFERENCES TO THE ERROR BLOCK 
                     IN THE CALLERS OF DB$UNDO.  ADD A NEW ROUTINE, 
                     DB$UNDU, TO ALLOCATE THE ERROR BLOCK AND CALL
                     DB$UNDO.  THE ROUTINES THAT DO NOT USE THE ERROR 
                     BLOCK WILL NOW CALL DB$UNDU WITH NO PARAMETERS 
                     AND DB$UNDU WILL PASS THE PARAMETERS TO DB$UNDO. 
                     (DB$UNDU WAS ADDED TO SAVE MEMORY).
          PAM     82/03/22   DB$DRP$,DB$LOK,DB$OVCA,DB$OVCB,DB$RUTR 
                             DB$TQTD,DB$UNDO,DB$UNDU,SKELETON,SRERRDCLS 
  
 CD2A461  PROBLEM  - A USER JOB THAT IS WAITING FOR CDCS, ROLLS OUT 
                     IMMEDIATELY. 
                     THERE IS NO INDICATION AT THE OPERATOR CONSOLE 
                     OF WHAT THE JOB IS WAITING FOR.  CONSEQUENTLY
                     THE OPERATOR MAY NOT KNOW TO INITIATE CDCS.
                     THE ROLL-OUT DELAY THAT IS USED IS THREE MINUTES.
                     THERE IS SUCH A LONG DELAY THAT THE OPERATOR WILL
                     OFTEN DECIDE THAT THE USER JOB IS NOT GOING TO 
                     COME IN AND USE CDCS.
          SOLUTION - THE USER JOB SHOULD STAY AT THE CONTROL POINT FOR
                     AT LEAST TEN SECONDS WHILE DISPLAYING THE MESSAGE
                     "WAITING FOR CDCS", THEN ROLL OUT. 
                     THE INITIAL ROLL-OUT PERIOD SHOULD BE ONLY TWENTY
                     SECONDS, GETTING PROGRESSIVELY LONGER TO A MAXIMUM 
                     OF ABOUT A MINUTE AND A HALF.
          RLM     82/03/15         DB$SSCL
  
 CD2A462  PROBLEM  - FLOW POINT USER IDENTIFICATION IS INCORRECT. 
                     CPU TIME IS WASTED INITIALIZING BASED ARRAY
                     POINTERS TO MONITOR TQT ON EVERY CDCS REQUEST. 
          SOLUTION - CORRECT CODE IN DB$SCHD, PRESET RCITSALX.
                     DB$SCHD CODE INTRODUCED BY CD2A438 IS DELETED
                     AND THE FORMER CODE IS RESTORED. 
          RLM     82/02/09   DB$RCBC, DB$SCHD 
  
 CD2A470  PROBLEM  - WHEN ALL CURRENT RUN UNITS ARE WAITING FOR A FILE
                     THAT IS BUSY AT ANOTHER CONTROL POINT, CDCS ROLLS
                     OUT AND PERIODICALLY TRIES TO ATTACH THE FILE. 
                     WHEN THE FILE BECOMES AVAILABLE, IT IS ATTACHED
                     AND THEN RETURNED BY DB$ROLL.
                     ON NOS/BE IT ATTEMPTS TO RETURN THE FILE USING THE 
                     FDB INSTEAD OF A FET.
                     THIS RESULTS IN A BUFFER ARGUMENT ERROR. 
          SOLUTION - BEFORE RETURNING THE FILE, CONVERT THE FDB 
                     TO A FET.
                                     THIS CODE AFFECTS
                                     NOS/BE ONLY. 
          RLM     82/03/29   DB$ROLL
  
 CD2A471  PROBLEM  - WHEN CRM IS CALLED TO OPEN A NEW FILE, IT ASSUMES
                     THAT SINCE IT IS A NEW FILE THAT IT WILL BE
                     MODIFIED.  THE FSTT IS WRITTEN WITH THE BIT SET
                     THAT SAYS THAT IT HAS BEEN MODIFIED. 
                     IF CRM THEN REJECTS THE OPEN REQUEST WITH AN ERROR 
                     345 (INSUFFICIENT MEMORY) IT RETURNS WITH THE OC 
                     CODE IN THE FIT SET TO 'NEVER OPENED'. 
                     ANY SUBSEQUENT ATTEMPT TO OPEN THE FILE WILL 
                     RESULT IN A CRM ERROR 052. 
  
                     RELATED PROBLEMS - 
                     WHEN CRM ISSUES A 345 ERROR, THERE HAS BEEN NO 
                     ATTEMPT BY CDCS TO MAKE MEMORY AVAILABLE.
                     WHEN THE UFT IS DELINKED BY DB$ERR, THE DBP USER 
                     COUNTS ARE NOT DECREMENTED.
  
          SOLUTION - CALL OPENM THROUGH A NEW INTERFACE PROCEDURE,
                     DB$OPNM. 
                     IF AN ERROR OCCURS DURING THE OPEN, DB$OPNM WILL 
                     CLOSE THE FILE IF NECESSARY. 
                     IF THE ERROR IS 345 (INSUFFICIENT MEMORY), DB$OPNM 
                     WILL CYCLE FOUR MORE TIMES MAKING PROGRESSIVE CALLS
                     TO DB$CMOH TO RELEASE CDCS MEMORY BLOCKS.
                     DB$ERR IS CHANGED TO CALL DB$CLSA TO DELINK THE
                     UFT. 
          RLM     82/04/19   DB$CPRO, DB$OPN$, DB$RFIN, DB$SIFT 
                             DB$CLSA, DB$ERR
                             DB$OPNM
                             SKELETON 
  
 CD2A476  PROBLEM  - JOVEC ERRORS EXIST ON THE CDCS23 PL. 
          SOLUTION - CORRECT THE JOVEC ERRORS.
          PJR     82/04/16   DB$DSNI,DB$DSVL,DB$ROUT
  
 CD2A477  PROBLEMS - CDCS ABORTS IF A JOURNAL LOG FILE OVERFLOWS DURING 
                     A USER TERMINATION RECOVERY POINT. 
                     THE ABORT OCCURS ONLY IF THERE IS NO LOG FILE
                     AVAILABLE OR EXPECTED TO BE AVAILABLE. 
                     BECAUSE OF A CODING ERROR IN DB$JRPT, A LOG FILE 
                     BEING DUMPED BY DBREC IS CONSIDERED AS PERMANENTLY 
                     UNAVAILABLE. 
                     THE ERROR MESSAGE THAT IS ISSUED DOES NOT CONTAIN
                     THE SCHEMA NAME. 
          SOLUTION - CORRECT THE ERROR MESSAGE TO INCLUDE THE SCHEMA
                     NAME.
                     DO NOT ISSUE THE ERROR MESSAGE IF THE JOB HAS NO 
                     LONG TERM CONNECTION.
                     INSTEAD, TERMINATE THE DB$JRPT REQUEST WITHOUT A 
                     RECOVERY POINT.
                     CORRECT DB$JRPT TO RECOGNIZE THAT A JOURNAL LOG
                     FILE IS ATTACHED AT ANOTHER CONTROL POINT AND
                     SHOULD BECOME AVAILABLE. 
          RLM     82/04/19   DB$ERRM, DB$JLO, DB$JLRS, DB$JRPT, DB$TSCH 
  
 CD2A481  PROBLEM  - WHEN THERE IS A WIDE DIVERGENCE IN THE MAXIMUM 
                     RECORD LENGTH (MRL) OF THE AREAS OF A SUBSCHEMA, 
                     CDCS ALLOCATES WORKING STORAGE AREA (WSA) BUFFERS
                     FOR THE LARGEST MRL. 
                     THIS LARGE WSA BUFFER IS WASTEFUL WHEN PERFORMING
                     I-O ON AN AREA THAT REQUIRES A MUCH SMALLER WSA. 
          SOLUTION - EVALUATE THE RELATIVE SIZES OF THE MRL'S AT INVOKE.
                     IF THERE IS A WIDE DIVERGENCE, SET TQSCWSAL
                     NEGATIVE.
                     THIS WILL SIGNAL DB$SFIT TO ALLOCATE ONLY THE
                     BUFFER SPACE REQUIRED FOR PROCESSING THIS AREA.
                     ALSO DB$WRP WILL RETURN THE BUFFERS WHEN THE 
                     REQUEST IS COMPLETED.
                       THIS PSR IS FOR CDCS 2.3 
                       THE EQUIVALENT PSR FOR 2.2 IS CD2A473
          RLM     82/04/19   DB$ADAX, DB$SFIT, DB$SWPO, DB$WRP, DB$RD$, 
                             NEW PROC - DB$WSAR                 DB$TQTD 
                             SKELETON, CDCSCOMMN
  
 CD2A483  PROBLEM  - IF A JOB IS DROPPED WHILE WAITING FOR A JOURNAL
                     LOG FILE OVERFLOW, A DB$PUSH INTERNAL ERROR
                     WILL RESULT. 
          SOLUTION - WHEN A TQT IS BEING TERMINATED BECAUSE OF AN 
                     EXTERNAL ABORT, RESET ITS RCB PUSH DOWN STACK. 
          RLM     82/06/01   DB$DSCS, DB$TARE, DB$TQTT, DB$TRU, DB$TSCH 
  
 CD2A484  PROBLEM  - DBRCN AND DBRST ABORT WITH A MODE ERROR IN A CMM 
                     ROUTINE, BECAUSE A CMM POINTER IS OVERWRITTEN. 
                     THE CMM POINTER IS OVERWRITTEN BECAUSE THE SIZE OF 
                     THE WSA FOR THE SELECT FILE IS COMPUTED
                     INCORRECTLY. IN THE COMPUTATION OF THE SIZE THE
                     MAXIMUM JOURNAL RECORD SIZE FROM THE SAL IS
                     CONVERTED FROM CHARACTERS TO WORDS. INSTEAD OF 
                     ROUNDING THE NUMBER OF WORDS UP, IT IS ROUNDED 
                     DOWN THEREFORE, WHEN A JOURNAL LOG RECORD OF THE 
                     MAXIMUM SIZE IS PLACED IN THE WSA THE CMM POINTER
                     GETS OVERWRITTEN.
          SOLUTION - WHEN CONVERTING THE MAXIMUM JOURNAL LOG RECORD SIZE
                     FROM CHARACTERS TO WORDS (USED IN THE COMPUTATION
                     OF THE WSA FOR THE SELECT FILE) ROUND THE NUMBER OF
                     WORDS UP (+9) INSTEAD OF DOWN (-9).
          EPJ     82/06/01   DB$RUPD
  
 CD2A485  PROBLEM  - CODE FOR CD2A481 SETS TQSCWSAL NEGATIVE UNDER
                     SOME CIRCUMSTANCES.
                     DB$REW$ USES TQSCWSAL TO COMPUTE A BUFFER SIZE.
                     THE RESULT IS A REQUEST FOR A NEGATIVE LENGTH
                     MEMORY BLOCK USED FOR CONSTRAINT PROCESSING. 
          SOLUTION - USE THE RECORD LENGTH FROM THE UFT.
          RLM     82/06/01   DB$REW$
  
 CD2A486  PROBLEM  - WHEN A JOB IS DROPPED BECAUSE IT IS HUNG WAITING 
                     FOR A JOURNAL LOG FILE, IT HANGS AGAIN ATTEMPTING
                     TO LOG A TERMINATION LOG RECORD. 
          SOLUTION - SET RCJLRS ON ENTRY DB$JLRS. 
                     DONT ATTEMPT TO LOG THE TERMINATION LOG RECORD 
                     WHEN RCJLRS IS SET.
          RLM     82/05/28   DB$JLRS, DB$RCBF, DB$TQTD
                             DB$CLSA
  
 CD2A487  PROBLEM  - THE PROCEDURE DB$OPNM THAT WAS ADDED WITH CD2A471
                     TRIES TO CLOSE A FILE AFTER CRM ERROR 532. 
                     CRM THEN ISSUES AN ERROR 115 AND ABORTS. 
          SOLUTION - ON CRM ERROR 345, CHANGE THE OPEN CLOSE CODE TO
                     "OPENED" SO THAT IT WILL BE CLOSED.
          RLM/RMP 82/05/26   DB$OPNM
  
 CD2A490  PROBLEM  - DBRCN GETS A CRM ERROR 120 ACCESSING THE MASTER
                     DIRECTORY FILE. THE ERROR OCCURRS BECAUSE THE
                     SELECT FILE IS WRITTEN WITH INCORRECT VALUES IN THE
                     HEADER OF EACH RECORD, AND THE OFFSET USED TO
                     ACCESS THE MD IS IN THE HEADER.
                     THESE INCORRECT RECORD HEADER VALUES ARE WRITTEN 
                     WHEN A VERSION OTHER THAN "MASTER" IS INVOLVED.
                     THE ROUTINE DB$VEPN IS USED TO OBTAIN FROM THE MD
                     THE PRIMARY VERSION NAME AND THE OFFSET TO PF INFO 
                     (BOTH OF THESE ITEMS ARE IN THE SELECT FILE RECORD 
                     HEADER). THE LAST TWO PARAMETERS OF DB$VEPN ARE
                     OUTPUT PARAMETERS, AND WHEN THIS ROUTINE IS CALLED 
                     DURING THE SELECTION PROCESS, BY DB$RSEL, THE LAST 
                     TWO PARAMETERS USED IN THE CALL ARE ARRAY ITEMS. 
                     BECAUSE THEY ARE ARRAY ITEMS THE SYMPL COMPILER
                     GENERATES TEMPORARY ITEMS AND PASSES THOSE TO
                     DB$VEPN. THE VALUES ARE THEN RETURNED, BY DB$VEPN, 
                     INTO THE TEMPORARY ITEMS AND NOT INTO THE ARRAY
                     ITEMS AS DB$RSEL EXPECTS.
          SOLUTION - CHANGE THE LAST TWO PARAMETERS USED IN THE CALL TO 
                     DB$VEPN, FROM DB$RSEL, SO THAT THEY ARE NOT ARRAY
                     ITEMS. THE LAST PARAMETER USED IN THE CALL TO
                     DB$VEPN, FROM DB$RUPD, IS ALSO AN ARRAY ITEM,
                     WHICH IS CORRECTED.
          EPJ     82/06/08   DB$RSEL,DB$RUPD
  
 *L587*    ************************************************ 
 CD2A465  PROBLEM  - FOLLOWING A CDCSBTF EXECUTION THAT APPEARS TO HAVE 
                     TERMINATED NORMALLY, THE CONTROL STATEMENTS
                     FOLLOWING THE EXIT STATEMENT ARE EXECUTED. 
          SOLUTION - INSTEAD OF DEPENDING ON THE *RECOVR* CALLS TO
                     INTERCEPT THE USER *ENDRUN*S A MODIFIED VERSION
                     OF *SYS=* IS USED TO INTERCEPT THE *END* RA+1
                     REQUESTS FROM THE USER LGO PROGRAMS. 
                     THE *RECOVR* INTERFACE IS STILL USED, BUT ONLY AS
                     BACKUP TO CATCH AN *END* THAT IS NOT ISSUED
                     THROUGH A *SYS=* CALL. 
                     THAT *RECOVR* CALL IS COMBINED WITH THE DB$RCVD
                     INTERFACE SO THAT CDCSBTF DOES NOT MAKE AN 
                     ADDITIONAL *RECOVR* CALL ANY MORE. 
          RLM     82/09/20   CDCSBTF, DB$DUMP, DB$INIT, 
                             DB$RCVD, DB$RCVR, DB$TERM, 
                             DB$$LDR, DB$$SIM, DB$$SYS, 
                             SKELETON 
  
 CD2A478  PROBLEM  - WHEN ALL DATABASE PROCEDURES FOR A SCHEMA HAVE 
                     BEEN UNLOADED, THE FDL GROUP DIRECTORY SHOULD
                     ALSO BE UNLOADED.
                     THIS MAY PERMIT A LARGE FIELD LENGTH REDUCTION.
          SOLUTION - DB$RLSP WILL CALL DB$DBPX TO RELEASE THE GROUP 
                     DIRECTORY. 
          RLM     82/08/09   DB$DBPL, DB$RLSP 
  
 CD2A479  PROBLEM  - DURING FULL CDCS TEST, THE FLOW POINT TABLE
                     IS OVERFLOWING.
                     THIS LEAVES NO TRACE OF THE FLOW POINT NAMES 
                     THAT WERE MOST RECENTLY TO BE ADDED. 
          SOLUTION - EXPAND THE SIZE OF THE FLOW POINT TABLE. 
          RLM     82/07/29   DB$FLOP
  
 CD2A480  PROBLEM  - DB$ITC DOES NOT ZERO THE FIELD RCIRTASK. 
                     THIS CAUSES DB$WRP TO INCORRECTY REDUCE THE
                     PRIORITY REQUEST COUNT.
                     THIS CAN CAUSE INCORRECT PRIORITY HANDLING 
                     IN DB$SCHD.
          SOLUTION - DB$ITC WILL ZERO RCIRTASK. 
          RLM     82/07/29   DB$ITC 
  
 CD2A488  PROBLEM  - THE ACCOUNTING CAPSULE IS LOADED EVEN WHEN 
                     ACCOUNTING IS OFF. 
          SOLUTION - MAKE ANY CALL TO ACCOUNTING PROCEDURES CONDITIONAL.
          RLM     82/06/21   DB$END$, DB$RCVR, DB$TERM
  
 CD2A492  PROBLEM  - PSR CD2A435 CHANGED THE ORDER IN WHICH THE SYSTEM
                     FILES ARE INITIALIZED IN DB$SFIN. JOURNAL LOG FILE 
                     INITIALIZATION WAS MOVED FROM THE FIRST TO THE LAST
                     ONE INITIALIZED. 
                     IN THE CHECK TO SEE IF A JLF EXISTS ANOTHER
                     CONDITION NEEDS TO BE ADDED TO CHECK THAT NO ERRORS
                     HAVE OCCURRED DURING ANY PREVIOUS SYSTEM FILE
                     INITIALIZATIONS. 
          SOLUTION - ADD A CONDITION TO THE IF STATEMENT THAT CHECKS
                     FOR JLF EXISTENCE TO ALSO CHECK THAT NO PREVIOUS 
                     ERRORS HAVE OCCURRED.
          EPJ     82/09/08   DB$SFIN
  
 CD2A494  PROBLEM  - THE DB$LOKD CALLS IN DB$GET AND DB$GETN ARE
                     REDUNDANT. 
                     DB$LOK CALLS DB$LOKD.
          SOLUTION - REMOVE THE DB$LOKD CALLS FROM DB$GET AND DB$GETN.
          RLM     82/08/16   DB$GET, DB$GETN
  
 CD2A495  PROBLEM  - ALL JOURNAL LOG RECORDS ARE FORCE WRITTEN TO THE 
                     JOURNAL LOG FILE.
                     THIS OVERHEAD CAN NOT BE JUSTIFIED EXCEPT FOR
                     'BEFORE IMAGES', RECOVERY POINT RECORDS AND
                     POSSIBLY 'AFTER IMAGES'. 
          SOLUTION - IN DB$JLO, SET THE WTR PARAMETER OF DB$JLCT
                     CONDITIONALLY. 
                     IN DB$JRPT, CALL DB$RWTR TO INSURE THAT THE
                     BUFFER HAS BEEN FLUSHED BEFORE ALTERING THE
                     LOG FILE POSITION FOR A RECOVERY POINT RECORD. 
          RLM     82/08/09   DB$JLO, DB$JRPT
  
 CD2A496  PROBLEM  - HIGHEST HIGH ADDRESS (HHA) IS GREATER DURING 
                     INITIALIZATION THAN DURING EXECUTION.
                     THE INTERVENING WORDS (ABOUT 1000B) ARE WASTED 
                     DURING EXECUTION.
          SOLUTION - RESPECIFY HHA AFTER INITIALIZATION.
          RLM     82/08/09   CDCS, DB$INIT
  
 CD2A497  PROBLEM  - DB$SFRD CALLS DB$SFCL TO ACCOMPLISH THE READS OR 
                     WRITES TO THE UCP. 
                     IF THE READ/WRITE EXCEEDS 64 WORDS, A SEPARATE 
                     CALL IS MADE FOR EACH BLOCK OF 64. 
                     IF A SHORT TRANSFER IS INTERRUPTED AND THEN
                     RESUMED DURING A LONG TRANSFER, THE LONG TRANSFER
                     WILL BE COMPLETED TO/FROM BOTH OF THE USERS. 
                     THIS MAY DESTROY DATA IN EITHER THE UCP OR THE SCP.
          SOLUTION - FOLLOWING A SHORT TRANSFER, SET THE REMAINING
                     NUMBER OF WORDS TO ZERO. 
  
                     INSTEAD OF THAT SOLUTION, NEW PROCEDURES DB$SFRD 
                     AND DB$SFWR HAVE BEEN WRITTEN. 
                     THESE PROCEDURES ENHANCE SIMPLICITY AND EXECUTION
                     TIME AT THE EXPENSE OF ONLY SIX WORDS. 
                     DB$SFCL IS ALSO MODIFIED TO ENHANCE PERFORMANCE. 
          RLM     82/07/29   DB$SFCL, DB$SFRD, DB$SFWR, SKELETON
  
 CD2A499  PROBLEM  - WHEN A USER JOB ABORTS OR IS DROPPED WHILE IT
                     HAS NO CDCS AREAS OPEN, DB$TQTD WILL HANG WHILE
                     ATTEMPTING A JOURNAL LOG RECOVERY POINT. 
                     THIS LEAVES THE CORRESPONDING SCHEMA UNUSABLE. 
                     ALSO, WHEN A JOB TERMINATES WITHOUT CLOSING
                     ITS FILES OR DOING A CDCS TERMINATION, NO LOG
                     RECORDS ARE WRITTEN DURING DB$TQTD EXECUTION.
          SOLUTION - DONT CALL DB$JRPT WHEN THERE IS AN OUTSTANDING 
                     RESERVATION ON THE JOURNAL LOG FILE. 
                     ALSO CLEAR RCCT BEFORE DOING ANY LOGGING FROM
                     DB$TQTD. 
          RLM     82/07/19   DB$TQTD
  
 CD2A500  PROBLEM  - DROPPING A TRANSACTION FOR LACK OF CDCS MEMORY 
                     RESULTS IN A CDCS MODE ERROR.
          SOLUTION - DB$UNDO IS MOVED INTO A FIXED OVERLAY SO THAT
                     MEMORY IS GUARANTEED.
                     DB$BRIF IS ALSO MOVED TO AN OVERLAY. 
                     OTHER LOGGING CAPSULES ARE REORGANIZED TO IMPROVE
                     EFFICIENCY.
          RLM     82/07/30   DB$IOER, DB$RUTR, DB$TQTD, DB$UNDO, DB$UNDU
                             DB$OVCA, DB$OVCB, DB$OVLB, DB$OVLD 
                             BTFDROP, BTFJLOG, BTFJORT, BTFTRAN 
                             SKELETON 
  
 CD2A501  PROBLEM  - LISTS OF IDLE ALT AND RCB ENTRIES ARE NOT KEPT 
                     IN ORDER.
                     THIS INCREASES THE CHANCES OF MEMORY FRAGMENTATION.
          SOLUTION - KEEP THE LISTS OF IDLE BLOCKS IN ORDER OF
                     INCREASING MEMORY LOCATIONS. 
          RLM     82/08/16   DB$CMOH, DB$LNKS 
  
 CD2A502  PROBLEM  - DB$SWPO SETS TQSWPF WHICH INHIBITS FURTHER CALLS 
                     TO DB$SWPO.  TQSWPF IS NEVER CLEARED.
                     CONSEQUENTLY A USER'S WORKING STORAGE AREAS ARE
                     NEVER RELEASED MORE THAN ONCE FOR EACH RUN-UNIT. 
                     THIS IS A RESULT OF CODE FOR CD2A316 WHICH 
                     CAUSED DB$SWPI CALLS TO BE IGNORED.
                     DB$SWPI IS THE PROCEDURE THAT USED TO CLEAR TQSWPF.
          SOLUTION - TQSWPO IS NOT NEEDED.
                     PREVENT COMPILATION OF THE CODE THAT SETS IT.
          RLM     82/08/23   DB$SWPO
  
 CD2A503  PROBLEM  - AN ERROR IN CD2A497 CAN CAUSE A CDCS FATAL ERROR 
                     TO OCCUR WHEN A USER IS DROPPED. 
          SOLUTION - USE BEAD FUNCTIONS WHEN PACKING THE SFCALL WORD. 
          RLM     82/08/20   DB$SFCL
  
 CD2A505  PROBLEM  - THE DBP GROUP NAME THAT IS CREATED BY CDCS 
                     USES THE SCHEMA ID AS AN OCTAL NUMBER. 
                     THE SCHEMA ID THAT IS LISTED BY THE MASTER 
                     DIRECTORY UTILITY IS A DECIMAL BASED NUMBER. 
                     WHEN THE SCHEMA ID IS GREATER THAN SEVEN,
                     THERE IS A MISMATCH. 
                     THIS RESULTS IN AN FDL ERROR 02 WHILE ATTEMPTING 
                     TO LOAD A DBP CAPSULE. 
          SOLUTION - MODIFY DB$DFIN TO CREATE A DECIMAL ID. 
          RLM     82/10/04   DB$DFIN
  
 CD2A507  PROBLEM  - THE ENTRY POINT DB=RWTR IS NOT DEFINED IN BTFJORT. 
                     IT WAS ACCIDENTLY DELETED BY CD2A500.
                     THIS CAUSES A VARIETY OF SYMPTOMS WHILE RUNNING
                     JOURNAL LOGGING TESTS USING CDCSBTF. 
          SOLUTION - REDEFINE THE ENTRY POINT DB=RWTR.
          RLM     82/10/04   BTFJORT
  
 CD2A508  PROBLEM  - CDCS ISSUES CONSTRAINT VIOLATION ERROR 601 WITH THE WRONG
                     CONSTRAINT NAME.  THE CAUSE OF THE PROBLEM IS THAT THE 
                     SCHEMA CONSTRAINT ORDINAL, INSTEAD OF THE CST CONSTRAINT 
                     ORDINAL, IS STORED IN THE CST CONSTRAINT DEPENDENCY TABLE. 
                     THIS COULD CAUSE A CDCS MODE ERROR IF THE INCORRECT ORDINAL
                     CAUSES AN OUT-OF-BOUNDS MEMORY REFERENCE.
          SOLUTION - ADD A CST CONSTRAINT ORDINAL FIELD TO THE DBMSTRD
                     TEMPORARY NEW CONSTRAINT INTEGRITY TABLE (NCIT), SO THAT 
                     THE CORRECT ORDINAL WILL BE STORED IN THE CST CONSTRAINT 
                     DEPENDENCY TABLE.
                     NOTE - SOME EXISTING MASTER DIRECTORY FILES MAY HAVE 
                     THIS PROBLEM.  TO CORRECT THIS PROBLEM THE MASTER
                     DIRECTORY FILE MUST BE REGENERATED.
          PLK/SPL 82/12/15   DB$CARE,DB$CCPP,UTCCSDCLS,UTCDFDCLS
  
 CD2A509  PROBLEM  - CDCS USES MORE FIELD LENGTH THAN NECESSARY 
                     (DUE TO MEMORY FRAGMENTATION) WHEN OVCAPS FOR
                     HEAVILY USED FEATURES ARE REPEATEDLY LOADED
                     AND UNLOADED.
          SOLUTION - ALLOW THE USER TO SPECIFY ON THE CDCS CONTROL
                     CARD WHICH FEATURES WILL BE HEAVILY USED.  THE 
                     OVCAPS WHICH SUPPORT THESE FEATURES WILL BE
                     LOADED INTO MEMORY AND LOCKED FOR THE DURATION 
                     OF CDCS EXECUTION. 
          JMJ     82/11/01   DB$AINT,DB$CAPL(NEW DECK ADDED), 
                             DB$INIT,SKELETON 
  
 CD2A510  PROBLEM  - A DATABASE PROCEDURE INTENDED FOR ACCESS-CONTROL 
                     ON UPDATE IS EXECUTED WHEN DB$PVC IS CALLED
                     FOR RETRIEVAL PERMISSION.
          SOLUTION - DONT CALL UPDATE PRIVACY PROCEDURES ON A REQUEST 
                     FOR RETRIEVAL ACCESS.
                     WHEN A PRIVACY PROCEDURE RETURNS A CODE 3, DONT
                     ABORT THE JOB UNTIL IT ATTEMPTS TO OPEN THE FILE 
                     WITHOUT THE APPROPRIATE PERMISSIONS. 
          RLM     82/10/20   DB$DPIF, DB$PVC$ 
  
 CD2A512  PROBLEM  - AN INTERNAL ERROR -- DB$RDLG 1, OCCURS IN EITHER 
                     CDCS OR DBREC. 
                     ALTERNATE SYMPTOM IS A CMM MODE ERROR FOLLOWING
                     AN AREA BEING DOWNED.
                     THIS SYMPTOM WILL ONLY OCCUR IF THE USER IS
                     IN TRANSACTION MODE AND QRF LOGGING IS BEING 
                     DONE ON THE DOWNED AREA. 
                     THE PROBLEM OCCURS WHEN THERE IS MORE THAN ONE 
                     TEMPORARY BUFFER USING THE SAME BASE POINTER.
                     FOR INSTANCE, TWO JOURNAL LOG RECORD BUFFERS 
                     BOTH USING THE BASED ARRAY JLREC.
                     WHEN AN INTERRUPT OCCURS JLREC IS RESTORED TO
                     POINT TO THE OLDER OF THE TWO RECORD AREAS.
                     THE PROGRAM PROCESSES AS IF IT IS USING THE NEWER
                     OF THE TWO RECORD AREAS. 
          SOLUTION - DB$TQTD MUST RETURN ALL EXISTING TEMPORARY 
                     BUFFERS BEFORE CALLING DB$UNDU, OR WRITING ANY 
                     NEW LOG RECORDS. 
          RLM     82/11/11   DB$TQTD
  
 CD2A515  PROBLEM  - THE ITEM CONVERSION PROCEDURE DC$CONV REQUIRES 
                     3075 OCTAL WORDS IN OVERLAY 0,0 AND IS VERY
                     SELDOM USED, EVEN DURING MAPPING.
          SOLUTION - MOVE DC$CONV TO AN OVCAP.
          RLM     82/11/20   DB$OVCA, DB$OVCB, BTFCONV, SKELETON
  
 CD2A516  PROBLEM  - CONFLICT OF TAF AND QRF SCHEDULING CAUSES MODE 
                     ERRORS AND DB$POP INTERNAL ERRORS. 
                     WHEN AN INTERNAL TASK IS SCHEDULED USING A 
                     WAIT FLAG OF DFWAITTASK, CONTROL MUST BE RETURNED
                     DIRECTLY TO THE REQUESTING TASK WHEN THE INTERNAL
                     TASK IS COMPLETE.
                     INTERACTIVE QU USERS MAY HAVE THE SAME 
                     PROBLEM AS TAF USERS.
          SOLUTION - QRF TASK SCHEDULING MUST PREEMPT TAF PRIORITY
                     SCHEDULING.
          RLM     82/11/23   DB$SCHD, DB$WRP
  
 CD2A517  PROBLEM  - A DB$RDLG INTERNAL ERROR IN DBREC RESULTS FROM A 
                     RECOVERY POINT OCCURRING DURING HEAVY CDCS 
                     ACTIVITY.
                     WHEN THIS HAS OCCURRED FOR BOTH LOG FILES
                     JOBS ON THAT SCHEMA WILL HANG. 
                     CDCS PERIODICALLY ISSUES THE MESSAGE 
                       *JOURNAL LOG FILE (NAME) FULL*.
                     THIS PROBLEM EXISTED BEFORE BUT HAS BEEN 
                     INTENSIFIED BY CD2A495.
          SOLUTION - WHEN DB$JRPT IS WAITING FOR PRIOR ACTIVITY 
                     TO COMPLETE, IT MUST ALSO WAIT FOR THE WRITE 
                     RECORD IDLE FLAG (FETWTRI).
          RLM     82/12/01   DB$JRPT
  
 CD20072  PROBLEM  - USING THE MIP PARAMETER ON THE CDCS CONTROL
                     CARD PRODUCES A FATAL ERROR.  THE PROBLEM IS 
                     THAT CRM DOES NOT RECOGNIZE THE MIP PARAMETER. 
          SOLUTION - WHEN THE MIP PARAMETER IS FOUND, CHANGE IT 
                     TO THE MP PARAMETER BEFORE PASSING IT TO CRM.
          JMJ     82/11/01   DB$AINT
  
 CD20102  PROBLEM  - IN DBMSTRD INPUT, WHEN A DELETE SCHEMA IS FOLLOWED 
                     BY AN ADD SCHEMA, THE SCHEMA WHICH IS ADDED GOES 
                     INTO THE FIRST SLOT IN THE SCHEMA DIRECTORY TABLE
                     (SDT) OF THE MD AND WIPES OUT THE SCHEMA ENTRY 
                     WHICH WAS THERE.  THE SLOT WHICH THE SCHEMA WAS
                     DELETED FROM REMAINS EMPTY.  THE PROBLEM OCCURS IN 
                     DB$SR07 WHEN DB$TBSR IS CALLED, FINDS AN EMPTY SLOT
                     IN THE SDT AND RETURNS THE ORDINAL OF IT IN THE
                     ITEM MTID.  SINCE MTID THEN HAS A NON-ZERO VALUE,
                     NEITHER THE CODE FOR SEARCHING FOR AN EMPTY SLOT OR
                     FOR EXPANDING THE SDT IS EXECUTED.  THIS PREVENTS
                     THE ITEM SCHDIRP, THE INDEX INTO THE SDT, FROM 
                     GETTING SET, AND IT REMAINS INITIALIZED TO ZERO. 
                     THEREFORE, THE SCHEMA ENTRY WHICH IS ADDED GOES
                     INTO THE FIRST SLOT IN THE SDT, BASED ON A ZERO
                     VALUE FOR SCHDIRP. 
          SOLUTION - DB$TBSR, IN ADDITION TO SEARCHING THE SDT
                     FOR DUPLICATE SCHEMA NAMES, ALSO WILL RETURN 
                     THE ORDINAL OF AN EMPTY SLOT IN THE SDT, IF ONE
                     IS FOUND BEFORE A DUPLICATE SCHEMA NAME IS FOUND.
                     (IT IS IRRELEVANT IF THERE IS AN EMPTY SLOT AFTER
                     A DUPLICATE SCHEMA NAME SINCE THE MD RUN WILL ABORT
                     ON THE DUPLICATE SCHEMA.)  SINCE DB$TBSR RETURNS 
                     AN EMPTY SLOT ORDINAL, THE SOLUTION IS TO REMOVE 
                     THE DUPLICATE CODE FROM DB$SR07 WHICH ALSO SEARCHES
                     FOR AN EMPTY SLOT.  THEN, IN THE CASE WHERE AN 
                     EMPTY SLOT IS FOUND, THE VALUE OF MTID FROM DB$TBSR
                     CAN THEN BE USED TO SET SCHDIRP, THE INDEX INTO
                     THE SDT, ACCORDINGLY.
          JMJ     82/12/15   DB$SR07
  
 *L601*    ************************************************ 
 CD2A474  PROBLEM  - ONE USER DOES A BEGIN TRANSACTION AND WITHIN 
                     THE TRANSACTION DELETES AN ACTUAL KEY (AK) RECORD. 
                     THEN ANOTHER USER WRITES A RECORD ON THE SAME
                     FILE, LEAVING CRM TO ASSIGN THE KEY. 
                     CRM IS MOST APT TO ASSIGN THE KEY THAT WAS JUST
                     DELETED. 
                     IF AT THIS POINT, THE FIRST USER DOES A DROP ON
                     THE TRANSACTION, CDCS IS UNABLE TO REPLACE THE 
                     RECORD THAT WAS DELETED. 
          SOLUTION - THE CHOSEN SOLUTION IS TO WRITE A RECORD AND 
                     THEN REQUEST A RECORD LOCK ON THE ASSIGNED KEY.
                     IF THE RECORD LOCK IS NOT GRANTED, THEN WRITE
                     THE RECORD AGAIN SO THAT CRM WILL ASSIGN A 
                     DIFFERENT KEY. 
                     WHEN AN ACCEPTABLE KEY IS ASSIGNED, THE RECORD(S)
                     WRITTEN WITH UNACCEPTABLE KEYS ARE DELETED.
  
          NOTE -     CD2A474 AND CD2A518 ARE COMBINED INTO A SINGLE 
                     CODE SET.
                     THIS IS BECAUSE OF THEIR INTERTWINING WITHIN 
                     DB$WR2$. 
          RLM     83/03/14   DB$CLSA, DB$IFEX, DB$OFTR, 
                             DB$RIFT, DB$SIFT,
                             DB$WR2J, DB$WR2K, BD$WR2$, 
                             DB$OVCA, DB$OVCB, BTFAKWR
                             BTFJORT, SKELETON
  
 CD2A518  PROBLEM  - IF A USER ATTEMPTS TO WRITE A RECORD USING A 
                     PRIMARY KEY VALUE THAT IS ALREADY IN USE, CRM
                     RETURNS AN ERROR 446 AND DOES NOT WRITE THE RECORD.
  
                     THE PROBLEM OCCURS IF THE ATTEMPTED WRITE WAS
                     WITHIN A TRANSACTION, AND THEN A DROP IS PERFORMED 
                     ON THAT TRANSACTION. 
                     THE BEFORE-IMAGE HAS ALREADY BEEN WRITTEN ON THE 
                     TRANSACTION FILE, SO A TRANSACTION ROLL-BACK WILL
                     CAUSE THE ORIGINAL RECORD TO BE DELETED FROM THE 
                     DATABASE.
  
                     THE SAME PROBLEM OCCURS IF BEFORE-IMAGE JOURNAL
                     LOG RECORDS ARE USED TO RESTORE A DATABASE TO
                     A PRIOR STATUS (DBRST).
  
          SOLUTION - ATTEMPT TO READ THE RECORD BEFORE WRITING A
                     BEFORE-IMAGE TO THE LOG FILE.
  
          NOTE -     BECAUSE OF THEIR INTERTWINED LOGIC WITHIN DB$WR2$
                     THE CODE FOR CD2A474 AND CD2A518 IS COMBINED 
                     AND IS TRANSMITTED AS CD2A474. 
                     THIS IDENTIFIER IS FOR THE HISTORY ONLY. 
          RLM     83/03/28      (HISTORY ONLY)
  
 CD2A519  PROBLEM  - NEED BETTER MEMORY USAGE DURING INVOKE AND 
                     ROLL OUT PROCESSING. 
          SOLUTION - 1. DEFINE A NEW FACILITY TO OVERRIDE THE RCB OVCAP 
                     LOCK IN. 
                     THE PROCEDURE DB$OIUL IS DEFINED IN THE COMMON DECK
                     DB$OSUP, WHICH IS CALLED BY DB$OVCA AND DB$OVCB. 
  
                     2. DB$OIUL IS CALLED FOLLOWING THE COMPLETION OF 
                     EACH PHASE OF THE INVOKE PROCESS.
                     THIS CAUSES THE COMPLETED OVCAP TO BE UNLOADED SO
                     THAT ITS MEMORY CAN BE USED DURING THE FOLLOWING 
                     PHASES OF THE INVOKE PROCESSING. 
  
                     3. TWO LEVELS OF DB$CMOH CALLS ARE MADE BEFORE 
                     DB$ROLL IS CALLED TO REDUCE CDCS FIELD LENGTH. 
                     THIS POINT AT WHICH CDCS IS IDLE IS THE IDEAL
                     TIME TO RELEASE ALL UNUSED MEMORY BLOCKS.
                     THIS MAY REDUCE THE SIZE OF MEMORY THAT MUST 
                     BE WRITTEN TO THE DISK AND GIVE CDCS A CLEAN 
                     START ON MEMORY ALLOCATION WHEN NEW REQUESTS 
                     ARE RECEIVED.
  
                     4. DC$CMPR IS PUT INTO AN OVCAP. 
                     THIS REDUCES MEMORY REQUIREMENTS BY 600 OCTAL
                     WORDS WHEN DC$CMPR IS NOT IN USE.
  
                     5. SOME UNREFERENCED VARIABLES ARE DELETED.
  
                     NOTE.  PART 2 OF THIS SOLUTION MAY CAUSE 
                     EXCESSIVE LOADER ACTIVITY IF THERE IS A LARGE
                     NUMBER OF INVOKES BEING PROCESSED. 
                     THIS CAN BE AVOIDED BY USING THE INV PARAMETER 
                     ON THE CDCS CONTROL STATEMENT TO CAUSE 
                     DURATION LOADING OF THE INVOKE OVCAPS. 
  
          RLM     83/01/21   DB$CAPL, DB$GETN, DB$INV$, DB$MTR
                             DB$SFIN, DB$TQTD, DB$WRP 
                             DB$OVCA, DB$OVCB 
                             BTFCOMP, SKELETON
  
 CD2A520  PROBLEM  - WHEN A LARGE DATABASE PROCEDURE IS CALLED
                     FROM A MAPPING CAPSULE, DB$CMOH MAY UNLOAD THE 
                     MAPPING CAPSULE TO MAKE ROOM FOR THE DATABASE
                     PROCEDURE. 
          SOLUTION - DB$CMOH WILL NOT UNLOAD THE MAPPING
                     CAPSULE THAT DB$MFWA POINTS TO.
  
                     THIS PSR IS FOR CDCS 2.3 
                     THE CORRESPONDING 2.2 PSR IS CD20125 
          RLM      83/03/14   DB$CMOH, DB$KMIF, DB$RMIF 
  
 CD2A521  PROBLEM  - IF AN ATTACH ERROR SUCH AS "PFM EXCESS ACTIVITY" 
                     OCCURS WHILE OTHER CDCS JOBS ARE WAITING TO ATTACH 
                     A FILE, THOSE OTHER JOBS MAY  BE PERMANENTLY HUNG. 
                     THE WAITING JOBS CAN NOT BE DROPPED. 
                     THE FILE INVOLVED MAY NOT BE MADE AVAILABLE TO 
                     OTHER USERS. 
          SOLUTION - EXPAND THE LOGIC THAT WAS USED BY CD2A412
                     TO HANDLE ATTACH ERRORS AS WELL AS OPERATOR
                     DROPS. 
  
                     THIS CODE IS FOR CDCS 2.3. 
                     THE CORRESPONDING PSR FOR 2.2 IS CD20104.
  
          RLM     83/03/03    DB$ADAX, DB$TQTT
  
 CD2A522  PROBLEM  - THE CDCS OUTPUT FILE IS ALLOWED TO BECOME
                     INDEFINITELY LARGE.
                     THERE IS NO PROVISION FOR DUMPING IT, OTHER THAN 
                     TERMINATING CDCS.
          SOLUTION - PERIODICALLY ROUTE THE OUTPUT FILE TO A PRINTER. 
  
                     THIS PSR AGAINST CDCS 2.3, REPORTS THE PROBLEM 
                     IDENTIFIED AS CD2A475 FOR CDCS 2.2.
  
          RLM     83/03/28   CDCSBTF, DB$DUMP, DB$ERR, DB$ERRE, DB$LINE 
                             DB$ODMP, DB$RCVR, DB$TERM, 
                             DB$OVLB, DB$OVLD, DB$RDM,
                             DB$ROUT, DB$WRRM, SKELETON 
                             -PURGED- DB$OFIT 
                             -ADDED-- DB$OFET,DB$PROF, DB$ROPM, DB$WRTZ 
  
 CD2A524  PROBLEM  - WITH AM20136 INSTALLED, CRM WILL OCCASIONALLY
                     ISSUE AN ERROR 202 (RUINED FILE) ON A FILE THAT
                     IS INTACT. 
                     IN THE CDCS ENVIRONMENT THE 202 ERRORS THAT HAVE 
                     OCCURRED, HAVE CONSISTENTLY BEEN ASSOCIATED WITH 
                     USABLE FILES.
          SOLUTION - SET A BIT IN THE FIT OF CDCS FILES THAT WILL EXEMPT
                     IT FROM THE 202 ERROR THAT COULD RESULT FROM THE 
                     FSMODFLG BIT BEING SET IN THE FSTT AT OPEN TIME. 
          NOTE -     THIS CODE IS TEMPORARY.
                     WHEN IT IS DETERMINED UNDER WHAT CIRCUMSTANCES A 
                     USABLE FILE IS FLAGGED AS RUINED, THIS CODE SHOULD 
                     BE PURGED. 
          RLM     83/04/29   DB$ACAI, DB$ADAX, DB$RFIN, DB$RUPD 
  
 CD2A525  PROBLEM  - CPU ERROR EXIT DURING CDCS TERMINATION.
                     INVALID INSTRUCTION IN DB$CPT. 
                     IN NOS 2.2 THE GETJA MACRO RETURNS TWO MORE WORDS
                     IN ITS RETURN BLOCK. 
                     THIS WIPES OUT SOME EXECUTABLE CODE IN THE DB$CPT
                     INTERNAL PROCEDURE DB$NCPT.
          SOLUTION - INCREASE THE SIZE OF THE RETURN BLOCK THAT IS
                     ALLOCATED FOR THE GETJA MACRO RETURN BLOCK.
          RLM     83/04/29   DB$CPT 
  
 CD2A526  PROBLEM  - ITEM LEVEL DATA BASE PROCEDURES ARE NOT CALLED ON
                     AN ERROR EXIT. 
                     DB$ERR ONLY CALLS DB$DPIR WHEN NO PARAMETERS ARE 
                     SAVED. 
                     WHEN DB$DPIR IS CALLED, IT RETURNS IMMEDIATLY SO 
                     THE ONLY RESULT IS A WASTEFUL LOADING OF THE DBP 
                     OVCAP. 
          SOLUTION - CORRECT THE DB$DPIR CALL IN DB$ERR.
          RLM     83/06/13   DB$DPIF, DB$ERR
  
 CD2A527  PROBLEM  - DBMSTRD FAILS WITH MODE 1 ERROR. OCCURS WHEN,
                     ON AN UPDATE RUN, A SCHEMA HAS RELATIONS REMOVED,
                     AND THE OLD SUBSCHEMA(S), WITH RELATIONS STILL 
                     PRESENT, ARE USED. CAUSED BY A CODING ERROR THAT 
                     FAILS ON A BEGINNING CONDITION WITH NO MEMBERS IN
                     A SET. 
          SOLUTION - CHANGE AN IF TEST FROM AN -EQUAL TO- TO A
                     -GREATER THAN OR EQUAL TO-, IN ORDER TO COVER THE
                     CASE OF NO RELATIONS IN THE SET. 
                     THIS PSR AGAINST CDCS 2.3 REPORTS THE PROBLEM
                     IDENTIFED AS CD20111 FOR CDCS 2.2. 
          GFK     83/05/19   DB$CCHK
  
 CD2A528  PROBLEM  - DBMSTRD DOES NOT PRINT THE NUMBER OF SUBSCHEMAS IN 
                     THE OVERALL SUMMARY. CAUSED BY STORING DATA IN WRONG 
                     VARIABLE.
          SOLUTION - CHANGE THE PLACE WHERE THE DATA WAS BEING ENCODED. 
          GFK     83/06/03   DB$M40M
  
 CD2A529  PROBLEM  - DBMSTRD FAILS WITH A MODE 1 ERROR WHILE LISTING THE
                     CONTENTS OF AN MD WITH AN AREA NAME OVER 27
                     CHARACTERS LONG. CAUSED BY OVERWRITE OF LAST 
                     CHARACTERS OF AREA NAME. 
          SOLUTION - CHANGE CODE TO WRITE AREA IDENT IN PRINT LINE
                     AFTER AREA NAME, INSTEAD OF ON TOP OF IT.
                     THIS PSR AGAINST CDCS 2.3 REPORTS THE PROBLEM
                     IDENTIFIED AS CD20098 FOR CDCS 2.2 . 
          GFK     83/05/25   DB$MDR2
  
 CD2A533  PROBLEM  - CDCS MODE ERROR OCCURS WHILE RUNNING WITH ITEM 
                     LEVEL DATA BASE PROCEDURES.
                     THIS OCCURS WHEN THE USER JOB IS SWAPPED OUT DURING
                     DB$ERR PROCESSING AND THE CD2DBPS OVCAP IS UNLOADED
                     BEFORE THE DB$DPIR CALL. 
                     THERE IS ALSO AN ARRAY PRESET PROBLEM IN DB$DPIF.
          SOLUTION - ENTRY POINT DB$CEDP IS DEFINED AS
                     NON-INTERRUPTIBLE. 
                     IT IS CHANGED TO INTERRUPTIBLE.
                     AN ARRAY DEFINITION IS CORRECTED IN DB$DPIF. 
          RLM     83/06/22   DB$DPIF, DB$OVCA, DB$OVCB
  
 CD20099  PROBLEM  - CDCS HANGS DURING AUTO-RECOVERY IF ANY OF THE
                     JOURNAL LOG FILES ARE NOT CATALOGED. 
                     DB$JFIN CONTAINS AN ERROR THAT CAUSES IT TO WAIT 
                     FOR NONEXISTENT FILES AND RETURN AN ERROR IF 
                     THE FILE IS BUSY.
                     ON NOS/BE THERE IS NO COMMUNICATIVE MESSAGE DURING 
                     A WAIT FOR A PERMANENT FILE. 
          SOLUTION - CORRECT DB$JFIN TO WAIT FOR BUSY FILES AND RETURN
                     AN ERROR STATUS IF THERE IS NO FILE. 
                     ADD A DIAGNOSTIC MESSAGE.
                     PLACE A LIMIT ON THE WAIT DURING SYSTEM RECOVERY.
          RLM     82-11-22   DB$JFIN
  
 CD20121  PROBLEM  - DBMSTRD FAILS WITH MODE 1 ERROR WHEN PROCESSING
                     A FIRST SCHEMA WITHOUT CONSTRAINTS AND THEN A SCHEMA 
                     WITH CONSTRAINTS. CAUSED BY FAILURE TO RESET 
                     PRE-CONSTRAINT USE TABLE INDEX.
          SOLUTION - RESET INDEX ON RESTART OF SYNTAX CRACKING. 
          GFK     83/05/24   DB$SR64
  
 CD20124  PROBLEM  - "MONITOR CALL ERROR" OCCURS WHEN THERE IS HEAVY
                     CDCS ACTIVITY IN WHICH RECORD LOCK CONTENTIONS 
                     ARE APT TO OCCUR ON JOBS THAT ARE SWAPPED OUT. 
  
                     THIS OCCURRED BECAUSE DB$SOSI CALLS DB$SFST TO DO
                     THE STATUS FUNCTION ON THE JOB TO BE SWAPPED IN. 
                     DB$SFST USES THE TQT OF THAT JOB WITHOUT CHECKING
                     IF THERE IS AN OUSTANDING REQUEST ON THAT TQT. 
                     THE OPERATING SYSTEM COMPLETES THE OUTSTANDING 
                     REQUEST BEFORE ATTEMPTING THE STATUS FUNCTION. 
                     IT THEN ISSUES THE "MONITOR CALL ERROR" BECAUSE
                     THE COMPLETE BIT IS ALREADY SET ON AN SFCALL.
  
          SOLUTION - IN DB$SOSI, USE A LOCAL BUFFER TO ISSUE THE
                     SF.STAT FUNCTION ON THE ALTERNATE TQT. 
          RLM     83/05/06   DB$SOSI, DB$SWPO 
  
 CD20126  PROBLEM  - IF A USER FIELD LENGTH IS TOO LARGE TO FIT IN
                     MEMORY AT THE SAME TIME AS CDCS, THE USER JOB CAN
                     NOT EVEN BE DROPPED. 
          SOLUTION - DISCONNECT USERS THAT ARE BEING DROPPED BEFORE 
                     ATTEMPTING TO ROLL IN THE FULL CDCS FIELD LENGTH.
                     IF CDCS IS DROPPED, EXIT FROM SCP STATUS BEFORE
                     ATTEMPTING TO ROLL IN THE FULL CDCS FIELD LENGTH.
          NOTE -     ON NOS/BE THIS CODE SHOULD BE USED IN CONJUCTION 
                     WITH NB04060 TO ASSURE CORRECT PROCESSING OF AN
                     OPERATOR DROP OF CDCS. 
          RLM     83/03/20   DB$ROLL
  
 CD20132  PROBLEM  - IF CRM CALLS THE BLOCK LOGGING ROUTINE "DB$QRF"
                     DURING HEAVY MEMORY USAGE, A RECURSIVE CALL TO 
                     FDL.LOC MAY RESULT WHILE ATTEMPTING TO LOAD THE
                     OVCAP THAT CONTAINS DB$QRF.
  
                     NOS SYMPTOMS - 
                     CRM ERROR 507. 
                     TWO COPIES OF DB$QRF LOADED. 
                     EVENTUALLY - FDL ERROR 6.
  
                     NOS/BE SYMPTOM - 
                     "AUTO-RECALL ERROR" ON AN LDQ CALL.
  
          SOLUTION - LOAD AND LOCK THE DB$QRF OVCAP DURING CDCS 
                     INITIALIZATION IF QRF LOGGING IS SPECIFIED FOR 
                     ANY SCHEMA IN THE MASTER DIRECTORY.
          RLM     83/03/21   DB$INIT
  
 CD20135  PROBLEM  - DBRCN AND DBRST DO NOT WORK ON A LOG FILE THAT HAS 
                     NOT BEEN PROCESSED BY DBREC. 
          SOLUTION - MODIFY DB$RSEL TO DO THE FOLLOWING - 
                     SIMULATE END-OF-INFORMATION WHEN A RECORD IS FOUND 
                     WHERE THE FIRST WORD IS A PRESET VALUE.
                     IDENTIFY AND SKIP THE JOURNAL LOG HEADER RECORD. 
                     IDENTIFY AND SKIP A FRAGMENT OF A LOG RECORD AT
                     THE END OF THE RECORDED LOG RECORDS. 
          RLM     83/04/18   DB$RSEL
  
 CD20139  PROBLEM  - "CDCS INTERNAL ERROR--DB$TRJL 1" 
                     THIS ERROR OCCURS ON A COMMIT REQUEST WHEN THE 
                     TOTAL SIZE OF THE TRANSACTION LOG RECORDS IS 
                     EXACTLY THE SIZE OF THE TRF BUFFER.
                     IN THAT CASE, THE OUTPUT ROUTINES USED BY DB$TRFW
                     LEAVE THE -IN- POINTER AT FIRST INSTEAD OF LIMIT.
                     THIS CAUSES AN ERRONEOUS READ FROM THE TRF FILE
                     WHICH DESTROYS THE CONTENTS OF THE BUFFER. 
          SOLUTION - SET FETIN = FETLIMIT INSTEAD OF FETFIRST.
          RLM     83/06/29   DB$TRJL
  
 CD20146  PROBLEM  - WHEN CDCS TRIES TO ATTACH THE MASTER DIRECTORY 
                     PERM FILE FROM A FAMILY SET OTHER THAN THE DEFAULT 
                     FAMILY PFM ERROR 2 RESULTS.  THE FAMILY PARAMETER
                     REQUIRED FOR THE CALL TO DB$FAM IS SET UP
                     INCORRECTLY IN DB$ATCH* AND DB$ATWR*.  THE FAMILY
                     PARAMETER (FAMNAME) IS DEFINED AS AN UNSIGNED
                     INTEGER AND THE CHARACTER VALUE (PFPN) IS BEING
                     MOVED INTO IT.  THIS CONVERSION RESULTS IN A 
                     RIGHT-JUSTIFIED ZERO-FILLED VALUE WHEN THE 
                     OPERATING SYSTEM MACRO (ENFAM) THAT DB$FAM CALLS 
                     IS EXPECTING A LEFT-JUSTIFIED ZERO-FILLED VALUE. 
          SOLUTION - THE SOLUTION IS TO CHANGE THE ITEM DECLARATION FOR 
                     FAMNAME FROM UNSIGNED INTEGER TO CHARACTER OF
                     LENGTH 7.  THEN, AFTER PFPN IS MOVED INTO FAMNAME, 
                     USE THE B FUNCTION TO ZERO-FILL THE REST OF THE
                     WORD WHICH CONTAINS THE VALUE OF FAMNAME.
          JMJ     83/06/20   DB$ATCH*, DB$ATWR* 
  
 CD20154  PROBLEM  - CONSECUTIVE VERSION CHANGE REQUESTS USING THE SAME 
                     VERSION OR AN INVOKE FOLLOWED BY A VERSION CHANGE
                     USING THE CURRENT INVOKED VERSION WILL CAUSE A MODE
                     ERROR.  THE MODE ERROR OCCURS IN CMM AS A RESULT OF
                     A CMM POINTER BEING OVERWRITTEN.  THE POINTER IS 
                     OVERWRITTEN BECAUSE TQSCWSAL IS ZERO WHICH RESULTS 
                     IN THE ALLOCATION OF A ZERO LENGTH WSA (POINTED TO 
                     BY TQSCWSA).  ON A VERSION CHANGE DB$ADAX IS CALLED
                     TO ATTACH THE AREAS OF THE NEW VERSION.  TQSCWSAL
                     IS INITIALIZED TO ZERO BEFORE ENTRY INTO THE MAIN
                     LOOP OF DB$ADAX AND COMPUTED INSIDE THE MAIN LOOP. 
                     IF AN AREA IS ALREADY ATTACHED FOR THE USER THEN 
                     THE CODE TO COMPUTE TQSCWSAL IS BYPASSED,  SO IF 
                     ALL AREAS ARE ALREADY ATTACHED TQSCWSAL WILL REMAIN
                     ZERO.
          SOLUTION - CHANGE THE MAIN LOOP IN DB$ADAX SO THAT TQSCWSAL IS
                     ALWAYS COMPUTED. 
          EPJ     83/15/19   DB$ADAX
  
 CD20159  PROBLEM  - "RANDOM ADDRESS NOT ON FILE" ERROR OCCURS AFTER
                     THE ROLLOUT ATTACH FLAG (DB$ROAF) HAS BEEN LEFT
                     WITH A NON-ZERO VALUE. 
  
                     IF CDCS THEN EXPERIENCES AN IDLE PERIOD WHILE ITS
                     ACTIVE USERS ARE ROLLED OUT, CDCS WILL CALL
                     DB$ROLL TO WRITE ITS OWN MEMORY TO ITS ROLL FILE 
                     AND REDUCE ITS FIELD LENGTH.  WHEN DB$ROAF IS SET
                     DB$ROLL ASSUMES THAT CDCS IS WAITING TO ATTACH THE 
                     INDICATED FILE.  DB$ROLL WILL THEN ATTACH AND
                     RETURN THE FILE ASSUMING THAT DB$ATCH WILL AGAIN 
                     ATTACH THE FILE AFTER THE CDCS FIELD LENGTH HAS
                     BEEN ROLLED BACK IN. 
  
                     IF DB$ROAF IS LEFT SET AFTER THE FILE HAS BEEN 
                     ATTACHED, DB$ROLL WILL ERRONEOUSLY RETURN IT.
  
                     DB$ROAF MAY BE LEFT SET UNDER THE FOLLOWING
                     CONDITIONS - 
  
                     AN "INTERLOCK NOT AVAILABLE", OR OTHER TEMPORARY 
                     DELAY ON A PERMANENT FILE ATTACH, LEAVES THE FLAG
                     SET DUE TO AN ERROR IN DB$ATCH*. 
  
                     A USER IS TERMINATED WHILE WAITING TO ATTACH  A
                     FILE.
  
                     A USER JOB REQUIRES AN IMMEDIATE REPLY WHEN A FILE 
                     IS NOT AVAILABLE.
  
          SOLUTION - REMOVE THE RETURN MACRO FROM DB$ROLL.  DB$ADAX OR
                     DB$TQTT WILL RETURN THE FILE IF NECESSARY. 
                     DB$ADAX AND DB$TQTT SHOULD ALSO CLEAR DB$ROAF SO 
                     THAT DB$ROLL WILL NOT ATTEMPT TO ATTACH THE FILE.
                     THE ERROR IN DB$ATCH* IS CORRECTED.
          RLM     83/06/25   DB$ADAX, DB$ATCH*, DB$ROLL,
                             DB$RSDC, DB$TQTT 
  
 CD20163  PROBLEM  - DBMSTRD MODE ONE ERROR WHILE PROCESSING A SCHEMA 
                     WITH 7 CONSTRAINTS. CAUSED BY INCORRECTLY
                     REPOSITIONING A BASED ARRAY AFTER A COMMON 
                     MEMMORY MANAGER CALL, WHICH REARRANGED MEMORY
                     BLOCKS.
          SOLUTION - REPOSITION BASED ARRAY BY OFFSET FROM BASE POINTER,
                     RATHER THAN BY ADDRESS.
          GFK     83/07/22   DB$SR66
  
 CD20166  PROBLEM  - "CM OUT OF RANGE" ERROR OCCURS DURING A USER 
                     TERMINATION IF QRF LOGGING OCCURS DURING A CLOSEM
                     CALL.
          SOLUTION - SAVE THE UFT AND RSARBLK POINTERS BEFORE CLOSING 
                     A FILE.
          RLM     83/07/28   DB$CLSA
  
 CD20169  PROBLEM  - WHILE LOADING USER LGO FILES WITH CDCSBTF, 
                     DUPLICATE COPIES OF CMM.R AND CTL$RM ARE LOADED. 
                     THIS CAUSES DUPLICATE ENTRY POINT ERRORS AND 
                     INCORRECT EXECUTION OF CRM ROUTINES. 
          SOLUTION - WHEN ANY OF THE ENTRY POINTS WITHIN A RELOCATABLE
                     MODULE ARE DEFINED IN PASSLOC ENTRIES, ALL OF THE
                     ENTRY POINTS WITHIN THAT MODULE MUST BE DEFINED. 
          DJF/RLM 83/08/05   DB$$LDR
  
 *L617*    ************************************************ 
 CD2A530  PROBLEM  - CDCS MUST TAKE ADVANTAGE OF THE NEW NOS
                     ACCOUNTING INTERFACE.
          SOLUTION - ADD CODE TO DB$ACCN TO CONVERT THE FORMAT OF 
                     THE SCP ACCOUNTING BLOCK TO THE NOS FORMAT.
                     ACCUMULATE AN ESTIMATED CM USAGE NUMBER. 
          NOTE     - THIS CM USAGE NUMBER DOES NOT INCLUDE MEMORY 
                     ASSIGNED TO DATABASE PROCEDURES OR MAPPING 
                     CAPSULES.
  
          RLM     83/06/13   DB$ACCM(NEW), DB$ACCN, 
                             DB$CLS$, DB$INV$,
                             DB$OPN$, DB$WRP, 
                             CDCSCTX
  
 CD2A531  PROBLEM  - DB$SEK DOES NOT REISSUE THE CRM SEEK AFTER WAITING 
                     FOR THE BUSY FET TO COMPLETE.
                     IN A BUSY SYSTEM, WHERE CRM IS EXECUTING NEAR ITS
                     MEMORY LIMIT (BL OR MFL), THE BUFFER MAY OFTEN 
                     HAVE BEEN KICKED OUT OF MEMORY BEFORE THE READ IS
                     ISSUED.  THE READ FUNCTION THEN HAS TO WAIT FOR A
                     ANOTHER DISK ACCESS, THIS TIME WITHOUT OVERLAP.
                     THIS DEFEATS THE ATTEMPTED READ OVERLAP. 
          SOLUTION - REPEAT THE SEEK UNTIL IT COMPLETES IMMEDIATELY 
                     WITH END-OF-RECORD.  THIS INDICATES THAT THE 
                     REQUIRED BLOCK IS IN MEMORY. 
          RLM     83/09/22   DB$SEK 
  
 CD2A534  PROBLEM  - ADDRESS OUT OF RANGE - ERROR IN DB$DPIF. 
                     WHEN BOTH JOURNAL LOGGING AND RECORD LEVEL 
                     DATABASE PROCEDURES ARE DEFINED FOR AN AREA, 
                     A CDCS MODE ERROR MAY OCCUR WHILE PROCESSING A 
                     DELETE RECORD ON THE FILE. 
                     THE ERROR WILL OCCUR IF ANOTHER REQUEST IS 
                     PROCESSED BY CDCS WHILE IT IS WAITING FOR THE
                     JOURNAL LOG RECORD TO BE WRITTEN.
  
                     DB$DEL$ DOES NOT RESTORE P<RSRECBLK> AFTER DOING 
                     JOURNAL LOGGING. 
                     WHILE WAITING FOR LOGGING, OTHER REQUESTS ARE
                     RUN WHICH USE THE RSB RECORD BLOCK POINTER.
                     THEN WHEN DB$DEL$ CALLS DB$DPIF, DP$DPIF PICKS 
                     UP AN OFFSET INTO THE CST FROM THE RECORD BLOCK
                     AND PROCESSES GARBAGE FROM THE CST.
  
          SOLUTION - SET THE RSB RECORD BLOCK POINTER IN DB$DPIF
                     BEFORE USING IT. 
          RLM     83/11/18   DB$DPIF
  
 CD2A535  PROBLEM  - THE CDCS DEVELOPMENT PROJECT REQUIRES AN EXTENSION 
                     OF THE DIAGNOSTIC AIDES WITHIN CDCS. 
          SOLUTION - ADD A MESSAGE TO THE OUTPUT FILE TO IDENTIFY THE 
                     SCHEMA AND SUBSCHEMA ON AN INVOKE. 
                     ANOTHER MESSAGE CORRELATES THE CDCS INTERNAL FILE
                     WITH THE AREA NAME.
                     THERE ARE ALSO SEVERAL EXTENSIONS OF THE FLOW
                     POINT CAPABILITY.
          RLM     83/10/10   DB$ADAX, DB$ASK$, DB$CMT$, DB$END$,
                             DB$ERRE, DB$ERRI(NEW), DB$ERRM, DB$FLOP, 
                             DB$FTEX, DB$GTI$, DB$INV$, DB$IOER,
                             DB$SFIT, DB$STR$, SKELETON 
  
 CD2A536  PROBLEM  - IF CRM EXITS TO DB$FTEX DURING REPRIEVE PROCESSING,
                     CDCS DOES NOT RETURN TO CRM. 
                     DB$FTEX CALLS DB$ERR WHICH RESUMES NORMAL CDCS 
                     EXECUTION VIA A CALL TO DB$WRP.
          SOLUTION - DB$FTEX SHOULD RETURN IF A REPRIEVE IS IN PROGRESS.
          RLM     83/09/12   DB$FTEX
  
 CD2A537  PROBLEM  - ADDRESS OUT OF RANGE - ERROR COULD OCCUR DURING
                     CDCS TERMINATION.
                     WHEN A FILE IS CLOSED WITHOUT THE DETACH 
                     PARAMETER SPECIFIED, THE LOCAL FILE NAME IS LEFT 
                     IN THE LIST OF FILES.
                     WHEN CDCS IS TERMINATED, IF THE FIT ADDRESS IS NO
                     LONGER WITHIN THE FIELD LENGTH, AN ADDRESS OUT OF
                     RANGE ERROR OCCURS.
          SOLUTION - ADD THE DET PARAMETER WHERE REQUIRED.
                     THIS ERROR IS NOT KNOWN TO HAVE OCCURRED.
                     THE CODE CONTRIBUTES TO CONSISTENCY OF THE CDCS
                     CLOSE FUNCTIONS. 
          RLM     83/09/12   DB$OPNM, DB$WRAR 
  
 CD2A538  PROBLEM  - IF JOURNAL LOGGING IS SPECIFIED, DB$CLSA ALLOCATES 
                     A NEW MEMORY BLOCK FOR EACH FILE THAT IT CLOSES. 
                     WHEN IT IS CALLED BY DB$TQTD FOR A SERIES OF FILES 
                     IT CREATES AN EXCESSIVE NUMBER OF MEMORY BLOCKS. 
          SOLUTION - RETURN EACH OF THE CMM BLOCKS AFTER USE. 
          RLM     83/09/13   DB$CLSA
  
 CD2A539  PROBLEM  - WHEN DB$QRF IS CALLED WITH A FINAL CALL, IT MAY
                     NOT RESTORE THE OFT POINTER. 
                     THIS COULD POSSIBLY CAUSE SOME OBSCURE PROBLEMS. 
          SOLUTION - RESTORE THE OFT POINTER. 
                     ALSO REMOVE AN UNUSED FIELD FROM THE QFT.
          RLM     83/09/13   DB$QFIN, DB$QRF
  
 CD2A540  PROBLEM  - "RANDOM ADDRESS NOT ON FILE" ERROR OCCURS FROM 
                     THE FOLLOWING SEQUENCE.
                     JOB-A IS TRYING TO INVOKE, BUT THE JOURNAL LOG 
                     FILES ARE ATTACHED ELSEWHERE.
                     WHILE JOB-A IS WAITING, JOB-B INVOKES USING A
                     DIFFERENT SCHEMA.
                     JOB-B INVOKES SUCCESSFULLY, BUT A SHORT TIME LATER 
                     CDCS IS ABORTED WHILE ATTEMPTING TO WRITE ON THE 
                     JOURNAL LOG FILE FOR JOB-B.
  
                     THE PROBLEM IS IN DB$JFIN. 
                     AFTER ATTEMPTING TO ATTACH THE LOG FILES FOR JOB-A,
                     IT CALLS DB$SCHD TO DELAY ABOUT 50 SECONDS BEFORE
                     ATTEMPTING THE ATTACH AGAIN. 
                     DURING THE DELAY, JOB-B LOG FILES ARE ATTACHED.
                     THIS LEAVES THE FET POINTER POINTING TO THE JOB-B
                     LOG FILES. 
                     WHEN DB$JFIN RESUMES FOR JOB-A IT FAILS TO RESTORE 
                     THE FET POINTER BEFORE CALLING DB$ATCH.
                     PFM IS CALLED USING THE LOCAL FILE NAME OF THE 
                     JOB-B LOG FILE, SO THAT FILE IS RETURNED BEFORE THE
                     ATTACH IS ATTEMPTED FOR THE JOB-A LOG FILE.
                     THE NEXT TIME THAT JOB-B ATTEMPTS TO WRITE ON THE
                     LOG FILE, THE "RANDOM ADDRESS NOT ON FILE" ERROR 
                     OCCURS.
  
                     A SIMILAR ERROR CAN OCCUR IF JOURNAL LOGGING 
                     OCCURS ON ANOTHER SCHEMA WHILE DB$JRPT IS WAITING
                     FOR A JOURNAL LOG FILE SWITCH. 
                     IN THIS CASE DB$JRPT FAILS TO RESTORE THE POINTER
                     TO THE JOURNAL LOG HEADER RECORD.
                     WHEN IT RETURNS TO THE BEGINNING OF THE ATTACH 
                     LOOP, IT APPEARS THAT AN AVAILABLE LOG RECORD
                     HAS BEEN LOCATED.
                     IT THEN STARTS NORMAL PROCESSING USING A LOG FILE
                     THAT HAS NOT BEEN ATTACHED.
                     THIS ALSO RESULTS IN THE "RANDOM ADDRESS NOT ON
                     FILE ERROR". 
  
                     THESE SYMPTOMS WILL APPEAR ONLY ON NOS, THE  NOS/BE
                     SYMPTOMS WILL BE DIFFERENT.
  
          SOLUTION - DB$JFIN. 
                     RESTORE THE BASED ARRAY POINTER FOR THE JOURNAL
                     LOG FILE FET BEFORE ATTEMPTING TO ATTACH THE FILE
                     AGAIN. 
  
                     DB$JRPT. 
                     RESTORE THE BASED ARRAY POINTER FOR THE JOURNAL
                     LOG HEADER RECORD BEFORE ATTEMPTING TO ATTACH THE
                     FILE AGAIN.
          RLM     83/11/21   DB$JFIN, DB$JRPT 
  
 CD2A542  PROBLEM  - NOS V2.3 HAS MOVED THE "SCREEN" MACRO FROM THE 
                     COMMON DECK "COMCMAC" TO "COMCDCM".
                     THIS MEANS THAT DB$DMGI WILL NO LONGER ASSEMBLE
                     CORRECTLY. 
          SOLUTION - THE XTEXT CONTAINED IN DB$DMGI IS CHANGED TO GET 
                     THE COMMON DECK "COMCDCM" FROM THE FILE "OPL". 
  
          NOTE     - THIS PSR IS REQUIRED IF ANY OLDER VERSION OF CDCS
                     IS TO BE BUILT AND RUN ON A NOS V2.3 SYSTEM. 
  
                     THIS PSR MUST BE YANKED IF A CURRENT LEVEL OF CDCS 
                     IS TO BE RUN ON NOS V2.2 OR OLDER SYSTEMS. 
  
          RLM     84/02/02   DB$DMGI
  
 CD2A543  PROBLEM  - THE SUPPORT OF THE TYPE 721 OPERATOR CONSOLE UNDER 
                     NOS V2.3 REQUIRES CDCS TO PRESENT A VERSION OF THE 
                     K DISPLAY WHICH IS EIGHTEEN LINES SHORTER THAN THE 
                     EXISTING K DISPLAY.
          SOLUTION - THE CSTATUS MACRO IS USED TO DETERMINE WHICH TYPE
                     OF OPERATOR CONSOLE IS IN USE. 
                     IF THE TYPE IS 545, A 41 LINE K DISPLAY IS USED. 
                     IF THE TYPE IS 721, A 23 LINE K DISPLAY IS USED. 
                     IN THAT CASE THE DYNAMIC PORTION IS REDUCED TO 
                     ONLY THIRTEEN LINES. 
                     SINCE THE DISPLAY PAGES ARE SO SHORT, THE TEXT MUST
                     BE ALLOCATED TO THE PAGES VERY CAREFULLY IN ORDER
                     TO RETAIN READABILITY. 
          RLM     84/02/02   DB$DMGR, DB$DSL1, DB$DSL2, 
                             DB$DSMC, DB$DS27,
                             DB$DMGI, DB$ROLL 
  
 CD20136  PROBLEM  - DBRCN/DBRST GET "MONITOR CALL ERROR" WHEN THE NL 
                     PARAMETER IS SPECIFIED.
          SOLUTION - ALLOCATE A MEMORY BLOCK FOR BUILDING THE JOURNAL 
                     LOG RECORDS. 
          RLM     83/06/13   DB$JLOG, DB$LNIF, CDCSCOMMN
  
 CD20167  PROBLEM  - CDCS ISSUES AN ERRONEOUS PRIVACY BREACH ERROR WHICH
                     ALSO RESULTS IN A MODE ERROR IN CMM IF THERE IS
                     LOGGING FOR THE GIVEN AREA.  THE ERRONEOUS PRIVACY 
                     BREACH ERROR WAS ISSUED, WHILE PROCESSING A DELETE,
                     BECAUSE THE CURRENT RECORD ORDINAL IN THE RSB FIXED
                     PART WAS ZERO.  THIS CAUSED THE POINTER OF THE RSB 
                     RECORD WORK BLOCK TO BE SET INCORRECTLY, THUS
                     CAUSING THE WRONG FIELDS TO BE EXAMINED IN THE 
                     PRIVACY CHECK. 
          SOLUTION - TO ENSURE THAT THE RSB RECORD WORK BLOCK POINTER IS
                     SET PROPERLY FOR A DELETE EXTRACT THE RECORD 
                     ORDINAL FROM THE REQUEST PACKET(RCB) BEFORE SETTING
                     THE BASED ARRAY POINTER. 
          EPJ     83/08/04   DB$DEL$
  
 CD20168  PROBLEM  - ON NOS/BE, CDCS INITIATES A DUMP ON A NORMAL 
                     TERMINATION. 
                     DB$RCVD IDENTIFIES A NORMAL TERMINATION AS AN
                     "END" PASSED AS THE RA+1 CONTENTS, BUT NOS/BE
                     CLEARS RA+1 BEFORE CALLING THE REPRIEVE ROUTINE. 
          SOLUTION - USE THE ERROR CODE FROM THE B0 FIELD OF THE
                     EXCHANGE PACKAGE TO IDENTIFY A NORMAL TERMINATION. 
                     ON A NORMAL TERMINATION THIS FIELD IS ZERO.
          RLM     83/08/09   DB$RCVD
  
 CD20171  PROBLEM  - CDCS INTERNAL ERROR - DB$AREH 1. 
                     THIS ERROR OCCURS IF THE FOLLOWING CONDITIONS
                     OCCUR. 
                     1. CDCS HAS TO WAIT TO ATTACH A JOURNAL LOG FILE.
                     2. WHILE WAITING, A JOURNAL LOG FILE IS ATTACHED 
                        FOR A DIFFERENT SCHEMA. 
                     3. WHEN THE FIRST LOG FILE IS ATTACHED, IT IS
                        AN UNALLOCATED FILE.
          SOLUTION - CHANGE DB$JFIN TO PASS THE BASED ARRAY POINTER OF
                     THE ERROR BLOCK TO DB$AREH.
                     IT CURRENTLY PASSES THE ERROR BLOCK ADDRESS WHICH
                     IS IN A VARIABLE WHICH HAS NOT BEEN PUSHED AND 
                     POPPED WHILE WAITING FOR THE ATTACH. 
          RLM     83/09/16   DB$JFIN
  
 CD20174  PROBLEM  - CDCS ABORTS NEW JOBS DURING DOWN OR IDLE STATUS. 
                     IT WOULD BE MORE CONSISTENT TO WAIT, JUST AS IF
                     CDCS WERE NOT AT A SYSTEM CONTROL POINT. 
          SOLUTION - MODIFY DB$RQST TO WAIT IF CDCS OR ONE OF ITS 
                     SCHEMAS IS DOWN OR IDLE. 
          RLM     83/09/01   DB$RQST, DB$DLAY(NEW), 
                             SKELETON 
  
 CD20175  PROBLEM  - THE "UP" COMMAND DOES NOT CLEAR AN "ERRDOWN" 
                     STATUS FOR A SCHEMA. 
  
          SOLUTION - THE "UP" COMMAND FOR A SCHEMA THAT IS IN 
                     "DOWN" OR "ERRDOWN" STATUS WILL CAUSE THE
                     SCHEMA TO BE PROCESSED THROUGH THE AUTOMATIC 
                     RECOVERY PROCEDURES. 
  
                     THE "RECOVERY STARTED FOR SCHEMA --" 
                     AND "RECOVERY COMPLETED FOR SCHEMA --" 
                     MESSAGES ARE REPLACED BY A SINGLE MESSAGE
                     "RECOVERING SCHEMA --".
  
          WARNING  - THE SYSTEM RECOVERY PHASE OF CDCS WAITS FOR
                     SYSTEM FILES THAT ARE NOT AVAILABLE. 
                     THIS PSR CAUSES CDCS TO RETURN TO THE SYSTEM 
                     RECOVERY PHASE FOR THE SPECIFIED SCHEMA. 
                     IF ANY OF THE SYSTEM FILES FOR THIS SCHEMA ARE 
                     ATTACHED AT A DIFFERENT CONTROL POINT, CDCS WILL 
                     WAIT WITHOUT PERFORMING ANY OTHER FUNCTIONS UNTIL
                     THAT FILE IS RETURNED. 
                     THIS PROBLEM WILL BE FIXED IN ANOTHER PSR. 
  
          RLM     83/10/12   DB$ARRO, DB$CARS, DB$DCSC, 
                             DB$INIT, DB$SFIN 
  
 CD20177  PROBLEM  - CDCS ABORTS WITH ERROR MESSAGE "CDCS INTERNAL
                     ERROR -- DB$FDA 1".  THE PROBLEM EXISTS
                     WHEN DB$ERR IS CALLED BY DB$DSCS TO OUTPUT 
                     A CDCS ERROR.  IF THE LONG TERM CONNECT FLAG 
                     IS NOT SET, CONTROL IS RETURNED TO THE STATE-
                     MENT FOLLOWING THE DB$ERR CALL WHICH HAPPENS 
                     TO BE A LABEL STATEMENT WITH ANOTHER CALL TO 
                     DB$ERR TO OUTPUT AN ERRONEOUS CDCS ERROR.
  
                     ALSO, DURING DB$TQTD PROCESSING OF A USER TERMI- 
                     NATION, THE OFT USER COUNT IS REDUCED BY ONE FOR 
                     EACH AREA CONTROL BLOCK THAT HAS A POINTER TO THAT 
                     OFT. THE POINTER IS NOT SET TO ZERO AS IT SHOULD BE. 
                     DURING PROCESSING OF A USER ABORT, IT IS NOT 
                     UNUSUAL FOR THE OPERATING SYSTEM TO REPORT THAT
                     USER ABORT TO CDCS TWICE.  IF THE SECOND 
                     NOTIFICATION OCCURS AFTER CDCS HAS ALREADY REDUCED 
                     THE OFT USER COUNT, DB$TQTD WILL BE REINITIATED
                     AND THE OFT USER COUNT WILL BE REDUCED AGAIN FOR 
                     THE SAME AREA CONTROL BLOCK.  THIS LEAVES THE OFT
                     USER COUNT ONE SHORT.
  
                     IF THE USER BEING DROPPED IS THE ONLY ONE, THE 
                     FIRST EXECUTION OF DB$TQTD CAUSES THE AREA TO BE 
                     RETURNED AND THE OFT FREED.  THE SECOND EXECUTION
                     WILL REDUCE THE OFT USER COUNT ON AN OFT THAT NO 
                     LONGER EXISTS.  THE RESULTS ARE UNPREDICTABLE. 
  
                     IF ONE OTHER USER EXISTS, THE SECOND EXECUTION OF
                     DB$TQTD CAUSES THE OFT USER COUNT TO GO TO ZERO. 
                     THE AREA IS RETURNED AND THE OFT IS FREED. 
                     THE REMAINING USER WILL GET "RANDOM ADDRESS NOT ON 
                     FILE" WHEN ANY RANDOM FILE ACCESS IS ATTEMPTED.
  
          SOLUTION - AFTER RETURNING FROM DB$ERR, CALL DB$TQTD TO 
                     DELETE THE TQT ENTRY AND CALL DB$WRP TO PROCESS
                     COMMAND COMPLETION.
  
                     DB$TQTD MUST RESET RSAROFIT WHEN IT REDUCES THE
                     COUNT OF OFUSERS.
  
          ASE/RLM 83/09/21   DB$DSCS, DB$TQTD 
  
 CD20186  PROBLEM  - AN INVALID INSTRUCTION IS EXECUTED FOLLOWING A 
                     WAIT FOR A BUSY FILE.
                     THIS ERROR OCCURS IF THERE ARE TWO OR MORE JOBS
                     WAITING FOR THE FILE WHEN IT BECOMES AVAILABLE.
          SOLUTION - PUSH AND POP THE "RETURNAREAS" ENTRY POINT WHEN
                     DB$SCHD IS CALLED. 
  
          NOTE     - THIS PROBLEM WAS INTRODUCED BY PSR CD2A521.
  
          RLM     83/09/13   DB$ADAX
  
 CD20188  PROBLEM  - FOR A TAF OF INTERACTIVE QU APPLICATION, IF A
                     JOURNAL LOG FILE IS BUSY AT INVOKE TIME, CDCS DOWNS
                     THE SCHEMA ASSOCIATED WITH THAT JOURNAL LOG FILE.
                     THIS IS TRUE FOR ALL OF THE CDCS SYSTEM FILES. 
                     IN ADDITION, THERE IS THE MORE GENERAL PROBLEM OF
                     THE FIVE SYSTEM FILE ATTACH ROUTINES BEING 
                     INCONSISTENT IN THE CASES OF PERM FILE BUSY AND
                     OTHER PERM FILE ERRORS AT SYSTEM RECOVERY
                     TIME AND INVOKE TIME.
          SOLUTION - MODIFY DB$SFIN TO DOWN THE SCHEMA ONLY IF THERE IS 
                     AN ERROR ON A SYSTEM FILE AND IT IS NOT A TAF OR 
                     INTERACTIVE QU JOB AND NOT A BUSY FILE ERROR.
                     IN ADDITION, MODIFY THE FIVE SYSTEM FILE 
                     ATTACH ROUTINES SO THAT THEY ALL BEHAVE IN A 
                     CONSISTENT MANNER WITH REGARD TO ATTACHING WITH OR 
                     WITHOUT QUEUEING AND ALSO WITH REGARD TO DIAG- 
                     NOSTICS ISSUED.
          JMJ     83/11/07   DB$AREH, DB$DFIN, DB$INV$, DB$JFIN,
                             DB$QFIN, DB$RFIN, DB$SFIN, DB$TFIN,
                             SRERRDCLS
  
 CD20192  PROBLEM  - "CM OUT OF RANGE" ERROR IN DB$TQTT.
                     THIS ERROR OCCURS WHEN AN INVOKE IS ABORTED
                     BEFORE IT ENTERS THE INVOKE SYMBIONT.
          SOLUTION - CLEAR RCINOFCOMP IN DB$RCBC. 
                     IT WAS FORMERLY CLEARED IN DB$INV$ AND 
                     DB$VER$ BUT THAT WAS NOT EARLY ENOUGH. 
  
          NOTE     - THIS PROBLEM WAS INTRODUCED BY PSR CD2A521.
  
          RLM     83/10/03   DB$INV$, DB$RCBC, DB$VER$
                             DB$ROLL
  
 CD20195  PROBLEM  - CDCS AK FILE WRITTEN WITH 2 ALTERNATE KEYS 
                     WHEN ONLY ONE WAS DEFINED. CAUSED BY CALLING RMKDEF
                     WITH THE PRIMARY KEY INFORMATION FROM MD TABLES, 
                     WHICH DOES NOT MATCH THE INFO IN THE FIT. THIS 
                     CAUSES CRM TO FAIL TO RECOGNIZE THAT THE KEY WAS 
                     THE PRIMARY KEY, AND TO REDEFINE IT AS AN
                     ALTERNATE KEY. 
          SOLUTION - CHANGE CODE SO THAT RMKDEF IS NOT CALLED WITH THE
                     PRIMARY KEY INFORMATION. 
          GFK     83/09/29   DB$OPN$
  
 CD20204  PROBLEM  - THE CMM CHAIN GETS OVERWRITTEN WHEN TWO LONG 
                     DAYFILE MESSAGES ARE SENT TO THEIR RESPECTIVE
                     USER CONTROL POINTS SO THAT THERE IS AN OVERLAP
                     IN THE TIME THAT MESSAGE SEGMENTS ARE SENT.
                     A LONG DAYFILE MESSAGE IS ONE THAT IS LONGER THAN
                     38 CHARACTERS, INCLUDING THE TWO SPACES THAT CDCS
                     INSERTS AT THE BEGINNING.
                     ONLY THOSE THAT ARE SENT TO THE USER CONTROL POINT 
                     VIA THE SFCALL(REGRETS) FUNCTION WILL CAUSE THIS 
                     ERROR. 
  
                     ONLY THE MESSAGES DEFINED WITHOUT ANY EXTERNAL 
                     NUMBER ARE SENT VIA THE REGRETS FUNCTION.
                     THE MESSAGE THAT IS THE MOST FREQUENT OFFENDER IS
                     THE MESSAGE "PF WAIT ON AREA 'X'." WHERE THE AREA
                     NAME 'X' IS LONGER THAN 19 CHARACTERS, INCLUDING 
                     AN APPENDED VERSION NAME IF THERE IS ONE.
                     NONE OF THE DAYFILE MESSAGES FOR TAF OR FOR
                     INTERACTIVE QU ARE SENT VIA THE REGRETS FUNCTION.
  
                     THE REASON THE ERROR OCCURS IS THAT DB$ERSF WAS
                     WRITTEN AS NON-INTERRUPTIBLE WHEN IT IS ACTUALLY 
                     INTERRUPTIBLE BECAUSE IT CALLS DB$SFCL.
                     IF AN INTERRUPTION OCCURS DURING DB$SFCL, AND
                     ANOTHER DB$ERSF EXECUTION OCCURS DURING THE INTER- 
                     RUPTION, THEN WHEN THE ORIGINAL DB$ERSF EXECUTION
                     IS RESUMED ITS VARIABLES SCPA, LG AND CP WILL HAVE 
                     BEEN MODIFIED. 
                     THE CHARACTER MOVES THAT RESULT WILL MOVE DATA 
                     BEYOND THE CONFINES OF THE MESSAGE AREA IN WHICH 
                     DB$ERSF IS WORKING.
                     THIS RESULTS IN A CMM CHAIN BEING OVERWRITTEN. 
  
          SOLUTION - DB$ERSF IS REWRITTEN AS AN INTERRUPTIBLE PROCEDURE.
          RLM     83/12/08   DB$ERR, DB$FDA, DB$NRR*, 
                             SKELETON 
                             DB$ERSF IS REPLACED
  
 *L628*    ************************************************ 
 CD2A545  PROBLEM  - CDCS PROCESSES REQUESTS IN "LAST IN, FIRST OUT"
                     SEQUENCE INSTEAD OF "FIRST IN, FIRST OUT". 
                     THIS CAN BE SEEN SOMETIMES WHEN THERE ARE FOUR 
                     OR MORE JOBS, ALL MAKING SIMILAR REQUESTS
                     (WRITES WITHOUT LOGGING).
                     IN THIS CASE, TWO OF THE JOBS COMPLETE WHILE THE 
                     OTHERS DO NOT ADVANCE. 
          SOLUTION - CREATE NEW RCB'S AS THE LAST IN THE QUEUE INSTEAD
                     THE FIRST IN THE QUEUE.
          RLM     84/03/15   DB$CRMR, DB$IREC 
  
 CD2A546  PROBLEM  - THE USER GETS ERROR MESSAGE: 
                     "MAXIMUM NUMBER OF BEGIN COMMIT SEQUENCES EXCEEDED"
                     WHEN A PROGRAM INTERFACING WITH CDCS, DOING
                     INVOKES AND TERMINATES USING A BEGIN/COMMIT
                     SEQUENCE FOLLOWING EACH INVOKE AND THE PROGRAM 
                     WILL ABORT.
  
          SOLUTION - ADDED CODE TO CLEAR THE TRANSACTION ID AT SYSTEM 
                     FILE INITIALIZATION IF THE COMMITMENT FLAG IS ON.
          RPS     84/05/18   DB$TFIN
  
 CD2A547  PROBLEM  - IF THE ONLY CDCS USER IS A BATCH QU JOB, THAT JOB
                     WILL HANG WHEN IT DOES A VERSION CHANGE. 
          SOLUTION - PUT AN ADDITIONAL TEST IN DB$MTR SO THAT IT WILL 
                     NOT ROLL OUT WHEN THE LAST USER INTERFACE IS 
                     TERMINATED IF THERE IS A NEW REQUEST WAITING 
                     TO BE EXECUTED.
  
          NOTE     - THIS PROBLEM WAS INTRODUCED BY CD2A545 
  
          RLM     84/06/01   DB$IREC, DB$MTR, DB$RCBQ 
  
 CD20190  PROBLEM  - A "PF WAIT" MESSAGE RESULTS FROM AN "INTERLOCK NOT 
                     AVAILABLE" CONDITION ON NOS. 
                     THIS HAPPENS ONLY FOR TAF OR INTERACTIVE QU JOBS.
  
                     DB$ATCH* REPEATS AN ATTACH ATTEMPT ONLY THREE TIMES
                     FOR AN INTERACTIVE USER AND THEN RETURNS TO DB$ADAX
                     WITH ATTACHSTATUS NEGATIVE.
                     DB$ADAX INTERPRETS ANY NEGATIVE ATTACHSTATUS VALUE 
                     AS A FILE BUSY STATUS AND ISSUES THE "PF WAIT" 
                     MESSAGE. 
          SOLUTION - THE PFM ERROR CODE IS ADDED TO THE "PF WAIT" 
                     MESSAGE SO THAT THE USER CAN DETERMINE THE REASON
                     FOR THE WAIT.
                     OTHER IMPROVEMENTS ARE MADE IN THE ERROR MESSAGE 
                     ROUTINES.
          RLM     84/02/22   DB$ADAX, DB$ERR, DB$ERRE,
                             DB$ERRM, DB$FTEX,
                             ERSORDCLS (NEW COMDECK)
  
 CD20194  PROBLEM  - A CONSTRAINT VIOLATION IS REPORTED WHEN THE DATA 
                     IS NOT IN VIOLATION. 
                     THE PROBLEM IS CAUSED BY USING THE RECORD COUNT
                     (RC) FIELD IN A FIT AFTER A CALL TO "GET", WHICH 
                     USED TO SET RC, BUT NO LONGER DOES.
  
                     WHEN A FILE THAT IS DEFINED WITH AN INTRA-AREA 
                     CONSTRAINT IS OPENED FOR OUTPUT DURING A CREATION
                     JOB, WRITING TO THAT FILE WILL CAUSE A DEADLOCK TO 
                     BE REPORTED.  THIS HAPPENS EVEN THOUGH THERE IS
                     ONLY ONE JOB RUNNING.
  
          SOLUTION - CORRECT CODE IN DB$CPRO TO USE A "START" INSTEAD 
                     OF A "GET" TO RETRIEVE THE RECORD COUNT (RC FIT
                     FIELD).  ALSO INCLUDE CODE TO TAKE INTO ACCOUNT
                     THE NEED TO MAINTAIN CERTAIN LOCKS WHEN DOING
                     CONSTRAINT PROCESSING DURING BEGIN/COMMIT
                     TRANSACTION PROCESSING.
  
                     CORRECT DB$LOK TO RECOGNIZE WHEN TWO LOCKS ARE FOR 
                     THE SAME USER JOB EVEN THOUGH THEY ARE REQUESTED 
                     THROUGH TWO UFT ENTRIES. 
  
          GFK/RLM 84/02/15   DB$CPRO, DB$LOK
  
 CD20202  PROBLEM  - DBRCN AND DBRST ISSUE DIAGNOSTIC 129, INVALID
                     VERSION NAME, WHEN THE VERSION NAME SPECIFIED IS 
                     VALID.  THIS ERROR OCCURS BECAUSE THE VERSION NAME 
                     THAT IS BEING COMPARED TO THE VALID VERSION NAMES
                     CONTAINED IN THE MASTER DIRECTORY IS ONE CHARACTER 
                     SHORTER THAT THE VERSION NAME SPECIFIED IN THE 
                     INPUT FILE, THUS CAUSING THE ERROR.
                     THE ISSUING OF DIAGNOSTIC 129 WHEN THE VERSION NAME
                     IS NOT FOUND IN THE MASTER DIRECTORY IS NOT
                     CONSISTENT WITH THE DIAGNOSTICS THAT ARE ISSUED
                     WHEN THE SCHEMA OR AREA NAME IS NOT FOUND
                     (DIAGNOSTICS 115 AND 141 RESPECTIVELY).  THE 
                     WORDING FOR DIAGNOSTIC 141 IS INCORRECT.  IT 
                     MENTIONS SCHEMA DIRECTORY INSTEAD OF MASTER
                     DIRECTORY. 
          SOLUTION - CORRECT THE ERROR SO THAT THE ENTIRE VERSION NAME
                     IS USED IN THE COMPARISION WITH THE VERSION NAMES
                     IN THE MASTER DIRECTORY.  THE DIAGNOSTIC 210 IS
                     ADDED, "UNABLE TO FIND VERSION VN IN THE MASTER
                     DIRECTORY".  THE DIAGNOSTIC 211 IS ADDED, "UNABLE
                     TO FIND AREA AN IN THE MASTER DIRECTORY", AND WILL 
                     BE USED IN PLACE OF DIAGNOSTIC 141.  THIS
                     DIAGNOSTIC IS USED IN THE MD UTILITY AND THEREFORE 
                     CANNOT BE REMOVED FROM THE CODE. 
          EPJ     83/12/07   DB$CRIN, DB$DADD, DB$RSTX
  
 CD20218  PROBLEM  - CDCS GETS A MODE 1 ERROR IN DB$ERR WHILE ATTEMPTING
                     TO TERMINATE A USER JOB. 
          SOLUTION - CORRECT DB$SFCL SO THAT IT WILL NOT RESET THE
                     AREA CONTROL BLOCK POINTER IF THERE IS NO CURRENT
                     AREA OF REFERENCE. 
          RLM     84/05/31   DB$SFCL
  
 CD20224  PROBLEM  - DBQRFA GETS A "PFM ERROR 007" WHEN IT ATTEMPTS 
                     TO ATTACH A DATA FILE. 
          SOLUTION - CHANGE THE DATA TYPE OF THE VARIABLE LFNDB.
                     IT IS EXPECTED TO BE AN INTEGER DATA TYPE. 
          RLM     84/08/07   DBQRFA 
  
 CD20225  PROBLEM  - MODE ERROR IN CMF.ALF. 
                     WHEN CRM BLOCKS ARE LARGER THAN DFQRFBUFL, DB$QRF
                     WRITES THESE BLOCKS DIRECTLY FROM THE CRM BUFFER.
                     IT IS NECESSARY FOR DB$QRF TO ADD ITS TWO WORD 
                     SUFFIX TABLE TO THE BLOCK WHILE IT IS BEING
                     WRITTEN. 
                     THE TWO WORDS (INCLUDES A CMM CHAIN WORD) ARE
                     SAVED AND THEN RESTORED WHEN THE WRITE IS COMPLETE.
                     THIS PROHIBITS RETURNING TO CRM OR MAKING ANY CMM
                     CALLS UNTIL THE WRITE IS COMPLETE. 
                     THE WAIT IS CURRENTLY ACCOMPLISHED BY CALLING
                     DB$RCLL. 
                     UNFORTUNATELY, DB$RCLL CALLS DB$IREC TO ACCEPT NEW 
                     CDCS REQUESTS WHILE WAITING AND DB$IREC MAY CALL 
                     CMM TO ALLOCATE A NEW RCB. 
          SOLUTION - CALL DB$CRMR INSTEAD OF DB$RCLL WHILE WAITING. 
                     DB$CRMR ACCEPTS A NEW REQUEST, ONLY IF THERE IS AN 
                     RCB ALREADY ALLOCATED TO RECEIVE IT. 
  
          NOTE     - THE CONSTANT DFQRFBUFL IS CONTAINED IN THE COMMON
                     DECK QRTABDCLS, ITS VALUE IS 3004 OCTAL. 
                     THIS SIZE IS SELECTED TO ALLOW OVERLAPPED I/O, 
                     QUEUEING THREE BLOCKS OF LENGTH 776, TWO BLOCKS OF 
                     1376 WORDS OR ONE BLOCK OF 2776 WORDS. 
                     LOGGING OF BLOCKS LARGER THAN 2776 IS NEVER ALLOWED
                     AS A CONCURRENT OPERATION. 
  
          RLM     84/08/16   DB$QRF 
  
 *L642*    ************************************************ 
 CD2A544  PROBLEM  - DBMSTRD ABORTS WHEN A LARGE NUMBER OF VERSIONS 
                     IS DEFINED.
                     THIS OCCURS BECAUSE DBMSTRD GETS A MEMORY ABORT
                     IF THE TOTAL NUMBER OF PERMANENT FILES DEFINED IS
                     GREATER THAN A NUMBER IN THE NEIGHBORHOOD OF 3000. 
          SOLUTION - THREE INTERNAL TABLES HAVE BEEN GIVEN A LENGTH 
                     RESTRICTION. 
                     WHEN THE MAXIMUM LENGTH IS EXCEEDED, THESE TABLES
                     ARE DIVIDED INTO SEGMENTS THAT ARE WRITTEN TO DISK.
  
                     THE RESTRICTED TABLES ARE: 
                     PFN  -  PERMANENT FILE NAME TABLE. 
                     PIT  -  PERMANENT FILE INFORMATION TABLE.
                     VIT  -  VERSION INFORMATION TABLE. 
  
                     THE PFN HAS BEEN REORGANIZED TO BE STORED
                     SEQUENTIALLY AND AN INDEX TO THE DISK SEGMENTS 
                     IS MAINTAINED. 
                     THIS PERMITS AN EFFICIENT SEARCH TO BE PERFORMED.
  
                     THIS HAS ADDED A SIGNIFICANT AMOUNT OF CODE. 
                     TO AVOID REQUIRING A LARGER FIELD LENGTH WHILE 
                     PROCESSING A NORMAL MASTER DIRECTORY, THE OVERLAY
                     STRUCTURE OF DBMSTRD HAS BEEN EXTENSIVELY MODIFIED.
          RLM     84/08/31
                                  COMDECKS MODIFIED 
                             CUGDFDCLS, MDABTDCLS, MDDEFDCLS, 
                             MDSCDDCLS, MDVITDCLS, SALDCLS, 
                             UTCDFDCLS, UTMPTDCLS 
  
                                  SYMPL PROCEDURES MODIFIED 
                             DBMSTRD, DB$CERR,
                             DB$MABT, DB$MDDF, DB$MDDP, 
                             DB$MDPF, DB$MDPR, DB$MDRD, 
                             DB$MDR1, DB$MDR2, DB$MDTR, 
                             DB$MDWD, DB$MDWU, DB$M40M, 
                             DB$SRDM, DB$SR15, DB$SR16, DB$SR18,
                             DB$SR29, DB$SR52, DB$SR64, DB$SR67,
                             DB$SR68, DB$SR71, DB$SR72, DB$SR73,
                             DB$SR74, DB$SR75, DB$SR88, DB$SR1H,
                             DB$UALC, DB$UAWS, DB$UFRE, DB$USHR 
  
                                  COMPASS DECKS MODIFIED
                             DB$MLDV, SKELETON
  
                                  NEW SYMPL PROCEDURES
                             DB$MABI, DB$MDPG, DB$MDPS, DB$MDWS,
                             DB$UALB, DB$UAOS, DB$URDS, DB$USDS,
                             DB$UTLC
  
                                  NEW COMPASS DECKS 
                             DB$MLDO, DB$MLD1, DB$MLD3, 
                             DB$M11M, DB$M31M, DB$M36M, DB$RNRD 
  
 CD2A549  PROBLEM  - WHEN AN ALTERNATE FAMILY IS SPECIFIED FOR A
                     PERMANENT FILE, THE FAMILY NAME IS USED ONLY FOR 
                     THE FIRST ATTEMPT TO ATTACH THE FILE.
                     IF THAT FIRST ATTACH REQUEST FAILS FOR A REASON
                     THAT IS CAUSE TO DELAY AND REPEAT THE REQUEST, THE 
                     FOLLOWING REQUEST IS MADE USING THE DEFAULT
                     FAMILY NAME. 
                     THIS RESULTS IN A PFM ERROR 002, "FILE NOT FOUND". 
          SOLUTION - SAVE THE FAMILY NAME WHERE IT CAN BE USED FOR
                     SUCCEEDING ATTACH REQUESTS.
          RLM     84/09/24   DB$ATCH* (NOS ONLY)
  
 CD2A550  PROBLEM  - THE INTERNAL TASK "QRFTASK" IN DB$QRF MAKES A
                     MAXIMUM OF TWO CALLS TO DB$SCHD TO DELAY WHILE IT
                     IS WAITING FOR A PREVIOUS WRITE TO COMPLETE. 
                     IF THAT DELAY IS NOT ADEQUATE, A "BUFFER ARGUMENT
                     ERROR" OCCURS. 
          SOLUTION - WAIT AS LONG AS IS NECESSARY FOR THE PREVIOUS
                     WRITE TO COMLETE.
          RLM     84/09/28   DB$QRF 
  
 CD2A552  PROBLEM  - THE CDCSBTF OVCAP BTFQRF CONTAINS AN UNSATISFIED 
                     EXTERNAL REFERENCE FOR DB$CRMR.
                     THIS PROBLEM WAS INTRODUCED BY CODE FOR CD20225. 
          SOLUTION - INCLUDE THE MODULE DB$CRMR IN THE OVCAP. 
                     DB$CRMR REFERENCES DB$RCLM, SUBSTITUTE RCL=. 
          RLM     85/01/07   SKELETON 
  
 CD2A553  PROBLEM  - FOL ERROR 01 LOADING DB$SR56.
                     THE WRONG OVERLAY NAME IS SPECIFIED FOR THE ENTRY
                     POINT DB$SR52. 
          SOLUTION - SPECIFY DB$SR52 INSTEAD OF DB$SR56.
  
                     THIS ERROR WAS INTRODUCED BY CD2A544.
          RLM     85/01/10   D$MLD1 
  
 CD2A554  PROBLEM  - DBMSTRD MODE ERROR IN DB$SR1H WHILE CHANGING THE 
                     AREA LOGGING OPTIONS.
                     THIS OCCURS BECAUSE THE USE OF THE VIT TABLE 
                     POINTER WAS NOT MODIFIED FOR TABLE SEGMENTATION. 
          SOLUTION - MODIFY THE CODE TO USE THE TLC POINTER.
  
                     THIS PROBLEM WAS INTRODUCED BY CD2A544.
          RLM     85/01/11   DB$SR1H
  
 CD2A556  PROBLEM  - WHEN THE SYSTEM FILE ATTACH ROUTINES ISSUE THE 
                     MESSAGE "PF WAIT ON SYSTEM FILE", DB$ERR IS NOT
                     TREATED AS AN INTERRUPTIBLE PROCEDURE.  IN ONE 
                     INSTANCE THIS RESULTED IN A "BUFFER ARGUMENT ERROR"
                     ON THE TRANSACTION RECOVERY FILE.
          SOLUTION - SAVE THE SIGNIFICANT VARIABLES WHEN MAKING A DB$ERR
                     THAT IS EXPECTED TO RETURN.
          RLM     85/01/28   DB$ADAX, DB$DFIN, DB$JFIN, DB$MBA, 
                             DB$QFIN, DB$RFIN, DB$TFIN
  
 CD2A557  PROBLEM  - IF A USER JOB IS ABORTED WHILE ITS REQUEST IS
                     WAITING TO WRITE ON A JOURNAL LOG FILE 
                     (IN DB$RWTR), CDCS ABORTS WITH THE ERROR MESSAGE 
                     "CDCS INTERNAL ERROR--DB$POP". 
          SOLUTION - DB$RCBF MUST GET THE FET ADDRESS FROM THE SAL
                     INSTEAD OF POPPING IT OUT OF THE PUSH-DOWN STACK.
          RLM     85/02/13   DB$RCBF, DB$TQTD 
  
 CD20219  PROBLEM  - USER ABORTS WITH "CPM ARGUMENT ERROR" AFTER
                     THE MESSAGE "WAITING FOR CDCS".
          SOLUTION - THE "ROLLOUT" PARAMETER WORD IS CORRECTED
                     IN THE TWO INSTANCES OF ITS USE. 
                     1. A USER JOB WAITING FOR CDCS.
                     2. CDCSBTF WAITNG FOR A BUSY PERMANENT FILE. 
          RLM     84/09/10   DB$SSCL, DB$$RCM 
  
 CD20228  PROBLEM  - ATTACH ERROR, LFN ALREADY IN USE.
          SOLUTION - PREVENT THE OVERLAPPED EXECUTION OF DB$PST 
                     AND DB$SFIN. 
          RLM     84/09/11   DB$TQTD
  
 CD20240  PROBLEM  - USE OF A DATABASE STATUS BLOCK THAT IS NOT WITHIN
                     THE USERS FIELD LENGTH CAUSES CDCS TO GO INTO A
                     LOOP WRITING THE MESSAGE "CDCS REQUEST NOT IN FL". 
          SOLUTION - ZERO OUT THE DATABASE STATUS ADDRESS TO AVOID
                     THE LOOP.
                     INSERT LOGIC TO AVOID THE LOOP FOR OTHER ADDRESSES 
                     THAT ARE OUTSIDE THE FL. 
          NOTE     - THIS CODE REQUIRES THAT CD20190 HAS BEEN INSTALLED.
          RLM     84/09/20   DB$SFCL, DB$ERRM 
  
 CD20242  PROBLEM  - A CDCS USER MAY BE LEFT IN A ROLL OUT STATUS.
          SOLUTION - DO NOT CLEAR THE RCSFSWP FLAG IF THE SF.SWPO 
                     FUNCTION IS NOT ACCEPTED BY THE OS.
          RLM     84/08/31   DB$SFCL
  
 CD20244  PROBLEM  - THE PRIORITY USER COUNT IS NOT DECREMENTED 
                     CORRECTLY. 
          SOLUTION - DELINK THE RCB AFTER THE TEST IF IT IS A PRIORITY
                     REQUEST. 
          RLM     84/09/12   DB$WRP 
  
 CD20245  PROBLEM  - WHEN CDCS IS DOING CONSTRAINT PROCESSING WITHIN
                     A TRANSACTION, IT LEAVES RECORDS PERMANENTLY 
                     LOCKED.
                     DB$CPRO USES AN EXTRA SET OF UFTS FOR FILE ACCESS
                     DURING CONSTRAINT PROCESSING.
                     IT ALSO USES THESE EXTENDED UFTS TO OBTAIN RECORD
                     LOCKS. 
                     DURING CONSTRAINT PROCESSING, THESE LOCKS ARE
                     LEFT TO BE DELETED BY DB$LKRU WHEN THE TRANSACTION 
                     IS COMMITTED OR DROPPED. 
                     DB$LKRU, HOWEVER, DOES NOT RELEASE ANY LOCKS ON
                     THE EXTENDED UFTS. 
                     THE USER IS NOT ABLE TO ISSUE AN UNLOCK ON AN
                     EXTENDED UFT.
          SOLUTION - MODIFY DB$LKRU TO RELEASE ALL RECORD LOCKS.
          RLM     84/09/01   DB$LKRU
  
 CD20247  PROBLEM  - CDCS DIES A SLOW DEATH FOLLOWING A CRM ERROR 507.
          SOLUTION - ABORT IMMEDIATELY ON A CRM 507.
                     THIS WILL PREVENT ANY FURTHER ACTIVITY WHICH MAY 
                     ONLY SERVE TO OBSCURE THE SYMPTOMS.
          RLM     84/09/27   DB$FTEX
  
 CD20254  PROBLEM  - CDCS FAILS WITH A MODE 1 WHEN ATTEMPTS TO PROCESS
                     A RELATION WHICH CONTAINS TWO RESTRICT CLAUSES.
                     THE MODE 1 WAS CAUSED BY OVER-INDEXED THE BASED
                     ARRAY -CSRLNSER-.
          SOLUTION - CORRECT THE INDEX OF THE ARRAY.
          KIM   84/10/18    DB$REL$ 
  
 CD20257  PROBLEM  - DURING THE INVOKE OF THE INITIAL USER ON A SCHEMA, 
                     IF ANY OF THE SYSTEM LOG FILES IS NOT ATTACHED FOR 
                     ANY REASON, THE SCHEMA IS PUT IN AN "ERROR DOWN" 
                     STATUS.
                     THERE IS NO REASON TO DOWN THE SCHEMA FOR A
                     TEMPORARY CONDITION SUCH AS "FILE BUSY" OR 
                     "INTERLOCK NOT AVAILABLE". 
          SOLUTION - DURING INVOKE, DO NOT DOWN THE SCHEMA FOR TEMPORARY
                     CONDITIONS.
                     DURING THE SYSTEM RECOVERY PHASE THE SCHEMA WILL 
                     BE DOWNED FOR ANY ATTACH FAILURE SINCE THAT WILL 
                     PREVENT THE SYSTEM RECOVERY FROM COMPLETING. 
  
          NOTE     - IF CD20175 HAS BEEN INSTALLED, IT IS POSSIBLE
                     TO "UP" THE SCHEMA WITHOUT REINITIALIZATION OF 
                     CDCS.
  
                     CD20257 DEPENDS ON CD20188.
  
          RLM     84/11/09   DB$INV$, DB$SFIN 
  
 CD20259  PROBLEM  - CDCS REQUEST SCHEDULING IS INADEQUATE WHEN THERE 
                     IS A HEAVY LOAD. 
          SOLUTION - SET UP SCHEDULING PARAMETERS THAT PERMIT SEPARATE
                     PRIORITIES FOR BATCH, INTERACTIVE, AND TAF.
                     THE NEW SCHEME ALSO PERMITS A NEW REQUEST TO BE
                     DELAYED, WHILE INTERRUPTED REQUESTS ARE CONTINUED. 
                     THIS PRIORITY SCHEDULING HAS NO EFFECT UNTIL THERE 
                     ARE AT LEAST THREE OUTSTANDING REQUESTS. 
                     THEN THE PRIORITY DIFFERNCES INCREASE AS THE NUMBER
                     OF OUTSTANDING REQUESTS INCREASES. 
  
                     ANOTHER FEATURE IS THAT AT LEAST THREE EXTRA RCB'S 
                     ARE HELD IN RESERVE.  THESE CAN BE USED TO RECEIVE 
                     NEW REQUESTS DURING CRM RECALLS. 
  
          RLM     84/12/12   DB$AINT, DB$CARS, DB$CMOH, 
                             DB$INIT, DB$ITC,  DB$JLOG, 
                             DB$MTR,  DB$RCBC, DB$RCBQ, 
                             DB$RUPD, DB$SCHD, DB$TRU,
                             DB$WRP,  CDCSCTX 
  
 *L650*    ************************************************ 
 CD2A555    PROBLEM  - CDCS RETURNS A -BAD RECTYPE CODE VALUE- WHEN A 
                       RECORD OF A TYPE NOT IN THE SUBSCHEMA IS READ. 
                       CAUSED BY A FAILURE TO RECOGNIZE THE SEPERATE
                       ERROR CONDITION. 
            SOLUTION - RECOGNIZE AND REPORT THE -RECORD TYPE NOT IN 
                       SUBSCHEMA- ERROR.
            GFK     83/07/25   DB$DRT,DB$ERRM 
  
 CD2A558  PROBLEM  - THE SKELGEN ON THE CDCS PL SHOULD INCLUDE FEATURES 
                     FOUND IN THE SKELGENS USED BY OTHER PRODUCTS.
          SOLUTION - THE CDCS SKELGEN IS UPGRADED.
                     IT IS NOW POSSIBLE TO DEFINE CAPSULES AS WELL AS 
                     OVERLAYS AND OVCAPS. 
                     COMMENTS CAN BE INCLUDED WITH OVLAY, OVCAP AND 
                     CAPSULE MACROS FOR INCLUSION WITH THE LOAD MAP.
                     COMMENTS ARE ADDED FOR THE PRODUCTS ON THE CDCS PL.
          CFR/RLM 85/04/04   SKELETON, SKELGEN
  
 CD20210  PROBLEM  - FOLLOWING ANOTHER CRM ERROR, CDCS GETS TWO CRM 215 
                     ERRORS AND THEN GOES INTO A LOOP.
                     THE INITIAL ERROR CAUSES CRM TO MARK THE AREA AS 
                     BAD.  AN ERROR CODE IS LEFT IN THE FSTT TO 
                     IDENTIFY THE FILE AS BAD AND CRM WILL NOT ACCEPT 
                     ANY MORE REQUESTS FOR THE FILE, NOT EVEN A CLOSE.
                     CDCS PROCEEDS TO CLOSE THE FILE AND THEN RELEASE 
                     THE MEMORY FOR THE FIT.  SOON CRM IS LEFT WITH A 
                     FIT THAT IS LINKED TO ITSELF AND CRM GOES INTO A 
                     LOOP FOLLOWING THIS CHAIN. 
          SOLUTION - FOLLOWING AN ERROR THAT IS FATAL TO A FILE, CDCS 
                     CLEARS THE ERROR FLAG IN THE FIT BEFORE CLOSING
                     THE FILE.
                     THE CODE IS INTEGRATED WITH THE CODE OF CD20250. 
                     THIS REPLY CONTAINS HISTORY ONLY.
          RLM     85/04/04   DB$TARE
  
 CD20213  PROBLEM  - THE ONLINE DUMPING OF JOURNAL LOG FILES PROVIDES 
                     NO OPTION BUT TO DUMP TO A NEW MAGNETIC TAPE EACH
                     TIME A LOG FILE IS DUMPED. 
          SOLUTION - A NEW FEATURE IS DEVELOPED CALLED -CCLPROC- TO 
                     ALLOW USER TO USE A CCL PROCEDURE INSTEAD OF THE 
                     TAPE DUMP OPTION.
                     WHEN A PROCEDURE IS SPECIFIED, DBREC DUMPS THE 
                     JOURNAL LOG FILE TO A LOCAL FILE OR A MAGNETIC 
                     TAPE NAMED -LOGDUMP- AND DOES NO FILE POSITIONING. 
  
          KIM     85/03/18
                                 COMDECKS MODIFIED
                           DBRDFDCLS, MDJOBDCLS, MD10CDCLS, 
                           SEMJPDCLS
  
                                 SYMPL PROCEDURES MODIFIED
                           DB$BDLG, DB$BRJB, DB$M10M, DB$SRAC,
                           DB$SRSF, DB$SRTF, DB$SR07, DB$SR15,
                           DB$SR16, DB$SR64, DB$SR84
  
                                 COMPASS DECKS MODIFIED 
                           DB$BUTX, DB$DADD 
  
                                 NOS ONLY SYMPLE PROCEDURE MODIFIED 
                           DB$BRJB* 
  
                                 SYNGEN PROCEDURE MODIFIED
                           DB$SNTX
  
 CD20249  PROBLEM  - CRM ERROR 507 RESULTS FROM A RECURSIVE CALL TO 
                     THE CRM MEMORY OVERFLOW HANDLING ROUTINES. 
          SOLUTION - AVOID ANY MEMORY ALLOCATION CALLS WHILE WRAPPING UP
                     AN INTERNAL TASK.
          RLM     85/03/15   DB$WRP 
  
 CD20250  PROBLEM  - CDCS ABORTED WITH FET ADDRESS OUT OF RANGE.
                     THIS OCCURRED WHILE CDCS WAS ATTEPTING TO DOWN AN
                     AREA FOLLOWING AN AAM ERROR 215. 
                     THIS CAUSED A REVIEW OF THE PROCESS OF DOWNING AN
                     AREA AND THE FOLLOWING PROBLEMS WERE FOUND.
  
                     1.  DB$FTEX IS THE ROUTINE THAT IDENTIFIES AN ERROR
                     THAT REQUIRES THE AREA TO BE DOWNED, BUT IT IS NOT 
                     CALLED ON AN AAM ERROR FROM DB$CPRO, DB$RFOR OR
                     DB$UNDO. 
  
                     2.  WHEN AN AREA IS DOWNED, THE QUICK RECOVERY FILE
                     MUST BE APPLIED TO IT IMMEDIATELY IF IT IS TO HAVE 
                     ANY CHANCE OF CORRECTING THE FILE STRUCTURE ERROR. 
                     IF A QRF RECOVERY POINT WERE ALLOWED TO OCCUR THE
                     QRF WOULD LOSE ALL OF THE SIGNIFICANT BLOCK IMAGES.
  
                     3.  IF THE QRF RECOVERY POINT (DB$QRP) IS CALLED 
                     LESS FREQUENTLY, PERFORMANCE IS ENHANCED AND THERE 
                     IS A GREATER PROBABILITY OF RECOVERING FROM ANY
                     RANDOM CDCS ERROR THAT MIGHT HAVE CAUSED A FILE
                     STRUCTURE ERROR. 
  
                     4.  DB$QRFA AUTOMATICALLY REQUESTS A 20000 WORD
                     BUFFER FOR READING THE BLOCK IMAGES FROM THE QRF.
                     THAT LARGE A MEMORY REQUEST CAN NOT BE TOLERATED 
                     WHEN IT IS CALLED IN A BUSY SYSTEM TO "UP" A SCHEMA
                     OR TO "DOWN" AN AREA.
  
          SOLUTION - 1.  DB$FTEX IS CALLED FROM DB$CPRO, DB$OCAR, 
                     DB$RFOR AND DB$UNDO. 
  
                     2.  IF AN ERROR OCCURS THAT CAUSES AN AREA TO BE 
                     DOWNED, DB$TARE WILL FIRST TAKE A FULL FIELD LENGTH
                     DUMP SO THAT THE ERROR CONDITION CAN BE STUDIED
                     LATER.  DB$TARE THEN CALLS DB$CARS USING A NEW 
                     INTERFACE THAT CAUSES DB$QRFA AND DB$RFOR TO 
                     PROCESS JUST THE ONE AREA. 
                     DB$UNDO WILL ONLY BE EXECUTED IF THE USER JOB IS 
                     DROPPED. 
  
                     3.  IN THE PAST EACH COMMIT HAS CAUSED A CALL TO 
                     DB$QRP.  THAT WILL NOW ONLY BE DONE IF AN UPDATE 
                     HAS BEEN RECORDED ON THE QRF BUT NO AFTER IMAGE
                     JOURNAL LOG RECORD IS RECORDED.
                     ALSO, INSTEAD OF TAKING A RECOVERY POINT EVERY 
                     TIME A USER TERMINATES, THIS WILL BE DONE WHEN THE 
                     LAST USER OF THE SCHEMA TERMINATES, OR IF THE QRF
                     IS OVER ONE THIRD FULL WHEN A USER TERMINATES. 
  
                     4.  DB$QFIN HAS ALREADY ALLOCATED A 3000 WORD
                     BUFFER.  THAT BUFFER IS USED FOR READING THE BLOCK 
                     IMAGES.  IF THE BLOCK IS LARGER, IT IS COPIED TO 
                     DATA FILE IN PORTIONS THAT FIT IN THE BUFFER.
  
                     EXTENSIVE MODIFICATIONS TO SKELGEN AND SKELETON
                     ARE ALSO INCLUDED. 
  
          NOTES -    CODE FOR CD20210 AND CD20258 IS ALSO INCLUDED IN 
                     THIS IDENT.
                     CD20175 MUST BE INSTALLED WITH OR BEFORE CD20250.
  
          RLM     85/04/04   CDCS,    DB$ACAI, DB$AINT, DB$BEG$,
                             DB$CARS, DB$CKUP, DB$CLOU, 
                             DB$CLS,  DB$CLSA, DB$CMT$, 
                             DB$CPRO, DB$CRMR, DB$DEL$, DB$DSCS,
                             DB$DSUA, DB$ERRE, DB$ERRM, 
                             DB$FTEX, DB$INIT, DB$ITC,  DB$IORE,
                             DB$JLCT, DB$MFO8, DB$MTR,
                             DB$OCAR, DB$QFIN, DB$QRF,
                             DB$QRFA, DB$REW$, DB$RFOR, 
                             DB$ROLL, DB$RUTR, DB$TARE, 
                             DB$TQTD, DB$UNDO, DB$WR2$, 
                             DB$$SIM, SKELETON
  
 CD20258  PROBLEM  - "WRITE ON READ-ONLY FILE" OCCURS WHEN USING CDCSBTF
                     TO CREATE A DATABASE.
                     THIS WILL OCCUR IF THE USER JOB THAT IS LOADED WITH
                     CDCSBTF IS READING AN AAM FILE AND WRITING THE 
                     CREATION FILE THROUGH CDCSBTF. 
                     ANOTHER CONDITION THAT IS NECESSARY TO GET THIS
                     ERROR IS THAT THE CREATION FILE IS BEING LOGGED
                     USING BLOCK LOGGING (QRF). 
          SOLUTION - WHEN QRF LOGGING IS BEING USED UNDER CDCSBTF, THE
                     QRF BUFFER LENGTH WILL BE SET TO ZERO SO THAT ALL
                     BLOCK LOGGING WILL TAKE PLACE DIRECTLY FROM THE
                     CRM BUFFER.
                     THIS NEGATES THE NEED FOR ANY INTERNAL TASKING 
                     WITHIN QRF.
                     IT ALSO RESULTS IN QRF LOGGING BEING DONE WITHOUT
                     ANY I/O OVERLAP DURING CDCSBTF EXECUTION.
  
          NOTE -     THE CORRECTIVE CODE FOR THIS PSR IS COMBINED WITH
                     CD20250.  THIS IDENT CONTAINS HISTORY ONLY.
  
          RLM     84/12/18   DB$MTR, DB$QFIN, DB$QRF, 
                             DB$QRFA, DB$$SIM, SKELETON 
  
 CD20261  PROBLEM  - THE K DISPLAY "STATUS" COMMAND WITH THE JOB OPTION 
                     WILL NOT ACCEPT A FOUR CHARACTER NOS JSN.
          SOLUTION - CORRECT THE CODE.
          RLM     85/01/21   DB$DSVL, DB$DS26 
  
 CD20263  PROBLEM  - A READ WILL NOT CLEAR A PRIOR RECORD LOCK IF THE 
                     READ RETURNS WITH AN INVALID KEY ERROR.
                     THIS IS A RESULT THE CODE FOR PSR CD2A494. 
          SOLUTION - DELETE RECORD LOCKS IF CRM RETURNS AN ERROR STATUS.
          RLM     85/04/30   DB$GET, DB$GETN
  
 CD20269  PROBLEM  - DURING THE FILE ATTACH PHASE OF AN INVOKE, NO
                     OTHER CDCS ACTIVITY CAN BE PROCESSED.
                     THIS IS A PROBLEM ONLY ON NOS. 
                     NOS REQUIRES THE RECALL BIT BE SET ON PFM CALLS. 
                     THIS FORCES CDCS TO MAKE ITS ATTACH CALLS WITH 
                     RECALL BUT THEN CDCS COMPOUNDS THE PROBLEM BY NOT
                     PROCESSING ANY OTHER REQUESTS BETWEEN ATTACH CALLS.
          SOLUTION - A DB$SCHD CALL IS PUT INTO DB$ATCH* SO THAT OTHER
                     REQUESTS WILL BE PROCESSED BETWEEN ATTACH CALLS. 
          RLM     85/04/05   CDGDFDCLS, DB$ATCH*
  
 CD20270  PROBLEM  - CDCS ISSUES ERROR 626, ILLEGAL AREA NAME, WHEN IT
                     CANNOT FIND THE CST AREA WORK BLOCK ENTRY THAT IS
                     IDENTICAL TO THE REALM NAME IN THE REQUEST.
                     THE REALM NAME IS ZEROES FILLED WHILE THE CST AREA 
                     WORK BLOCK ENTRIES ARE BLANK FILLED. 
  
          SOLUTION - BLANK FILL THE REALM NAME BEFORE SEARCHING THE CST 
                     AREA WORK BLOCK. 
          KIM     85/04/29   DB$LKA$
  
 CD20284  PROBLEM  - LOCK CONFLICTS OCCUR UNDER SOME CONDITIONS WHEN
                     WHEN RUNNING WITH CONSTRAINTS. 
                     THIS IS BECAUSE A USER HAS TWO UFT'S FOR A SINGLE
                     AREA WHEN CONSTRAINTS ARE DEFINED. 
                     A LOCK ASSOCIATED WITH ONE OF THE UFT'S IS NOT 
                     RECOGNIZED AS BEING FOR THE SAME USER WHEN IT IS 
                     REQUESTED AGAIN THROUGH THE OTHER UFT. 
          SOLUTION - THE UFT'S ARE LINKED TOGETHER SO THAT LOCK 
                     REQUESTS WILL BE PROCESSED THROUGH JUST ONE OF 
                     THEM.
          RLM     85/09/27   DB$CLSA, DB$CPRO 
                             DB$LKRU, DB$LOK
                             DB$OPN$
  
 CD20285  PROBLEM  - ERROR "656 - INSUFFICIENT MEMORY FOR ROLLBACK".
                     THE TRANSACTION ROLLBACK FUNCTION THAT IS PERFORMED
                     BY DB$UNDO REQUIRES TOO MUCH MEMORY TO BE DONE 
                     DURING A HEAVY MEMORY USAGE PERIOD.
                     IF CDCS ATTEMPTS TO TERMINATE A USER THAT IS IN
                     A TRANSACTION, ERROR 656 OCCURS AND THE SCHEMA IS
                     DOWNED.
          SOLUTION - PROVIDE A WSA FOR THE TRANSACTION LOG RECORDS
                     DURING CDCS INITIALIZATION.  THERE IS USUALLY
                     SUFFICIENT MEMORY BETWEEN DABA AND HHA.
  
                     WHEN A ROLLBACK OCCURS DURING CDCS EXECUTION, THE
                     FILES TO BE ROLLED BACK ARE ALREADY OPEN.
                     USE THE EXISTING UFT'S.
  
                     SINCE DB$OCAR IS NO LONGER CALLED EXCEPT DURING
                     SYSTEM RECOVERY, CD20252 IS NO LONGER APPLICABLE.
                     IT IS PURGED.
          RLM     85/10/10   DB$INIT, DB$UNDO, DB$UNDU
  
 CD20286  PROBLEM  - A CRM ERROR 52 MAY OCCUR LATER IF CDCS IS DROPPED
                     DURING ITS REPRIEVE PROCESSING.
          SOLUTION - ADD DAYFILE MESSAGES TO TELL THE OPERATOR WHAT 
                     IS HAPPENING.
          RLM     85/10/02   DB$RCVD, DB$RCVR 
  
 *L670*    ************************************************ 
 CD2A570  PROBLEM  - THE OVCAP THAT CONTAINS THE DATABASE PROCEDURE 
                     INTERFACES CAN GET UNLOADED WHILE IT IS LOADING
                     A DATABASE PROCEDURE.
                     WHEN CONTROL IS RETURNED FROM FDL, A CPU ERROR 
                     OCCURS.
          SOLUTION - REMOVE THE NO-INTERRUPT PARAMETER FROM THE INCAP 
                     MACRO FOR DB$DPIF. 
          RLM     86/04/02   DB$OVCA, DB$OVCB 
  
 CD2A571  PROBLEM  - JOURNAL LOGGING MAY BE INCLUDED OR OMITTED CONTRARY
                     TO INSTRUCTIONS IN THE MASTER DIRECTORY. 
                     WHEN SEVERAL JOBS ARE INVOKING THE SAME SCHEMA 
                     CONCURRENTLY, THE LOGGING FLAGS MAY NOT BE SET UP
                     CORRECTLY FOR ALL OF THEM. 
                     IF THIS CAUSES LOGGING TO BE ATTEMPTED ON A SCHEMA 
                     THAT DOES NOT HAVE THE APPROPRIATE LOG FILE
                     PROVIDED, THE RESULTS ARE UNPREDICTABLE. 
          SOLUTION - SET THE FLAGS CORRECTLY. 
          RLM     86/04/22   DB$ADAX
  
 CD20256  PROBLEM  - "CANNOT GET 4502 WORDS CM FOR TAF" ERROR MESSAGE 
                     OCCURS BECAUSE OF SEVERE FRAGMENTATION OF CENTRAL
                     MEMORY.  IT IS IMPOSSIBLE TO ASSIGN A LARGE BLOCK
                     EVEN THOUGH THERE ARE SEVERAL AVAILABLE BLOCKS 
                     THAT ARE NEARLY LARGE ENOUGH FOR THE REQUESTED 
                     BLOCK SIZE.
  
          SOLUTION - AAM AND CDCS ARE BOTH OFTEN ABLE TO RELEASE THEIR
                     MEMORY BLOCKS THAT ARE LARGER THAN 240 (OCTAL) 
                     WORDS.  IT IS THE SMALLER BLOCKS THAT CREATE 
                     OBSTRUCTIONS AND CAUSE SEVERE FRAGMENTATION.  A
                     NEW CDCS PARAMETER, "SMALL BLOCK LIMIT" (SBL), IS
                     CREATED TO SET A LIMITING ADDRESS BEYOND WHICH CMM 
                     WILL NOT ASSIGN SMALL BLOCKS.  THIS LEAVES A 
                     PORTION OF CM WHERE THE LARGE BLOCKS CAN EXCHANGE
                     SPACE MORE FREELY. 
  
                     ANOTHER NEW PARAMETER, "SMALL BLOCK BOUNDARY 
                     INCREMENT" (SBI), IS USED TO SLOW THE GROWTH OF
                     THE CDCS FIELD LENGTH.  IT SPECIFIES THE SIZE OF 
                     THE INCREMENT BY WHICH THE BOUNDARY IS INCREASED.
                     BEFORE INCREMENTING BY SBI, CDCS PERFORMS ITS CMM
                     OVERFLOW PROCEDURES. 
  
                     AN OLD CDCS FEATURE IS RESTORED.  THIS PERMITS RSB 
                     AND CST TABLES TO BE WRITTEN OUT TO DISK WHEN THEY 
                     ARE NOT IN USE.  THE ORIGINAL FEATURE USED A CRM 
                     WORD ADDRESSABLE FILE THAT CAUSED PROBLEMS.  THE 
                     REWRITTEN FEATURE USES DIRECT CIO CALLS TO WRITE 
                     TO THE SWAP FILE.
                     (THIS FEATURE IS NOT RESTORED FOR NOS/BE USERS.) 
  
                     IF BL IS NOT SPECIFIED ON THE CDCS STATEMENT A 
                     DEFAULT VALUE IS CALCULATED. 
  
          NOTES -    CMM PSR CMMA072 MUST BE INSTALLED. 
  
                     THE FOLLOWING CDCS PSR'S MUST BE INSTALLED 
                     BECAUSE THEY ARE DIRECTLY OR INDIRECTLY REQUIRED 
                     BY THIS PSR. 
                     THEY ARE LISTED IN APPROXIMATE CHRONOLOGICAL 
                     ORDER. 
                     CD2A412, CD2A505, CD2A509, CD2A519,
                     CD2A521, CD2A522, CD20159, CD2A539,
                     CD20186, CD20192, CD20219, CD20244,
                     CD2A544, CD2A552, CD2A553, CD2A554,
                     CD20249, CD20250, CD20259
  
                     CODE FOR CD2A565, CD20275 AND CD20289 IS INCLUDED. 
  
          RLM     86/02/19   DB$ADAX, DB$AINT, DB$ASLC, 
                             DB$CLSA, DB$CLSE, DB$CMOH, 
                             DB$DS27, DB$INIT, DB$IREC, 
                             DB$ITC,  DB$LOK,  DB$MTR,
                             DB$QFIN, DB$QRF,  DB$RCBC, 
                             DB$RCVD, DB$RCVR, DB$RLSA, 
                             DB$SCHD, DB$SFCL, DB$SWI,
                             DB$SWPI, DB$SWPO, DB$TERM, 
                             DB$TQTD, DB$WRP,  BTFASLC, 
                             DB$FLOP, DB$OVCA, DB$OVCB, 
                             DB$OVLB, DB$OVLD, SKELETON 
  
 CD20294  PROBLEM  - A FILE IS RUINED FOLLOWING A CDCS INTERRUPT. 
                     TWO SEPARATE PROBLEMS WERE FOUND IN THE BLOCK
                     LOGGING INTERFACE. 
                     1.  WHEN DB$QRF SAVES A BLOCK IMAGE, IT APPENDS
                     TWO WORDS THAT IDENTIFY THE FILE, VERSION AND PRU
                     LOCATION OF THE BLOCK.  WHEN THE SAME BLOCK IS 
                     SAVED TWICE, ONLY THE FIRST ONE IS VALID. APPLYING 
                     THE SECOND COULD RESULT IN A RUINED FILE.
                     DB$QRFA RETAINS A LIST OF THE BLOCKS THAT IT HAS 
                     APPLIED AND SKIPS A SECOND ONE IF IT OCCURS. 
                     ITS LIST CONSISTS OF THE TWO WORD BLOCK ID'S.
                     THERE IS ONE FIELD IN THE TWO WORD ID THAT IS NOT
                     SIGNIFICANT BUT IS NOT INITIALIZED.  WHEN IT IS
                     DIFFERENT IN THE TWO BLOCKS, THE SECOND BLOCK IS 
                     ERONEOUSLY APPLIED.
                     2.  THERE ARE THREE ROUTINES IN CDCS THAT DO NOT 
                     CALL DB$FLSH IMMEDIATELY BEFORE CALLING DB$QRP.
                     THIS MEANS THAT A BLOCK IMAGE THAT HAS BEEN LOGGED 
                     BY CRM MAY BE LOST FROM THE QRF FILE WHEN THE QRF
                     FILE IS RESET BY DB$QRP. 
                     IF CDCS IS INTERRUPTED BEFORE BEFORE A FLUSH AND 
                     QRF RESET ARE DONE CORRECTLY, A FILE MAY BE RUINED.
          SOLUTION - 1. CLEAR THE INSIGNIFICANT FIELD.
                     2. ADD THE DB$FLSH CALL IN EACH PLACE IT IS
                     MISSING. 
          RLM     85/10/19   DB$QFIN, DB$QRF, DB$RCVD,
                             DB$TQTD, DB$WR2$ 
  
 CD20300  PROBLEM  - 1 - DBMSTRD GIVES ERRORS WHEN RUNNING MODIFICATION 
                     OF A ONE SCHEMA MASTER DIRECTORY.  THE INPUT DATA
                     HAS A DELETE SCHEMA ENTRY AND AN ADD SCHEMA ENTRY
                     WITH THE REPLACEMENT MASTER DIRECTORY FOLLOWING. 
                     THE REPLACEMENT MASTER DIRECTORY GETS NON-UNIQUE 
                     ERRORS DURING THE COMPILATION, BECAUSE DBMSTRD 
                     DOES NOT DELETE ALL PFN ENTRIES OF THE DELETED 
                     SCHEMA PROPERLY. 
  
                     2 - IF THE SIZE OF THE VIT TABLE EXCEEDS THE 
                     MAXIMUM TABLE SIZE, THE AREA NAMES AND CHECKSUMS 
                     WON'T BE WRITTEN TO THE MASTER DIRECTORY CONTENTS
                     REPORT, BECAUSE THE CALCULATION OF MAXIMUM BUFFER
                     SIZE YIELDS ZERO.
  
          SOLUTION - 1 - MODIFY DB$MDDP TO DELETE ALL PFN ENTRIES OF
                     THE DELETED SCHEMA.
  
                     2 - IF THE CALCULATION OF THE MAXIMUM BUFFER SIZE
                     YIELDS ZERO, THEN SET THE BUFFER SIZE TO THE VIT 
                     LENGTH.
  
          NOTE     - THIS PSR DEPENDS ON CD2A544. 
  
          KIM     86/01/07   DB$MDDP, DB$MDR2 
  
 CD20301  PROBLEM  - USING A TRANSACTION FILE IN AN APPLICATION PROGRAM 
                     CAUSES CDCS ABORTED WITH CRM ERROR 171.
                     THE IFT FIELD, IFFITHRL, IS ZERO WHEN CDCS CALLS 
                     CRM TO OPEN THE IFT. 
          SOLUTION - COPY THE ADDR OF THE DBP ENTRY POINT FROM UFT
                     INTO IFT.
  
          KIM     85/12/12   DB$SIFT
  
 CD20307  PROBLEM  - CMM CENTRAL MEMORY LIMIT INSUFFICIENT ERROR
                     ENCOUNTERED DURING THE DBMSTRD COMPILATION.
                     DB$UAWS GRADUALLY INCREASED THE PADDING TO 
                     AVOID FREQUENT CALL TO MEMORY ALLOCATION,
                     AND THIS CAUSED THE PADDING GROW BEYOND THE
                     CMM CENTRAL MEMORY LIMIT.
          SOLUTION - DB$UAWS WON'T INCREASE THE LENGTH OF THE 
                     PADDING. 
          NOTE     - THIS PROBLEM IS INTRODUCED BY CD2A544. 
  
          KIM     86/02/10   DB$UAWS
  
 CD20314  PROBLEM  - 1 -
                     DB$RCBF ISSUES A SWAP-IN FUNCTION EVEN WHEN THERE
                     IS NO LONG TERM CONNECTION.
                     2 -
                     IF A USER JOB IS WAITING FOR A LOCK OR FOR A FILE
                     TO BE ATTACHED, THAT JOB IS OFTEN SWAPPED OUT BY 
                     THE OPERATING SYSTEM WHILE IT IS WAITING FOR THE 
                     EVENT TO OCCUR.
                     WHEN THE LOCK IS AVAILABLE, OR THE FILE IS 
                     ATTACHED, CDSC THEN REQUESTS THAT THE USER JOB BE
                     SWAPPED IN TO CONTINUE PROCESSING. 
                     WHEN THE DELAY IN SWAPPING IN THE USER JOB IS
                     LONGER THAN THE CDCS DELAY BEFORE ROLLING ITSELF 
                     OUT, CDCS WRITES ITS MEMORY TO ITS ROLL-OUT FILE 
                     BEFORE THE OPERATING SYSTEM SETS THE COMPLETE BIT
                     FOR THE SWAP-IN FUNCTION.
                     THE RESULT IS THAT CDCS NEVER SEES THE COMPLETION
                     BIT SET ON THE USER SWAP-IN FUNCTION AND WAITS 
                     INDEFINITELY.
          SOLUTION - 1 -
                     DO NOT ISSUE THE SWAP-IN FUNCTION UNLESS THERE 
                     IS A LONG TERM CONNECTION. 
                     2 -
                     DO NOT ROLL CDCS OUT WHILE THERE IS ANY EXTERNAL 
                     EVENT PENDING. 
          RLM     86/02/24   DB$FTBZ, DB$RCBF 
  
 CD20318  PROBLEM  - 1. 
                     CM OVERFLOW DURING A CRM FILE MODIFICATION MAY 
                     LEAVE A FILE WITH AN INCONSISTENT INDEX BLOCK
                     OR INDEX FILE. 
                     IF CRM HAS MODIFIED A RECORD BLOCK AND THEN HAS TO 
                     READ INDEX BLOCKS TO BE MODIFIED, CMM MAY ENCOUNTER
                     AN OVERFLOW CONDITION WHILE TRYING TO SATISFY THE
                     REQUEST FOR FOR A BUFFER INTO WHICH TO READ THE
                     INDEX BLOCK. 
                     WHEN THE OVERFLOW PROCEDURES ARE UNABLE TO SATISFY 
                     THE MEMORY REQUEST, CDCS DROPS THE USER WITHOUT
                     RETURNING CONTROL TO CRM.
                     THIS MEANS THAT THE INDEX BLOCK HAS NOT BEEN 
                     MODIFIED AND IS INCONSISTENT.
                     THIS CAN BE THE CAUSE OF CRM 202 ERRORS. 
                     2. 
                     IF AN RSB IS SWAPPED OUT AND RESTORED TO A 
                     DIFFERENT LOCATION DURING THE PROCESSING OF A CDCS 
                     REQUEST, SOME PROCESSORS RETAIN ABSOLUTE POINTERS
                     TO THE RSB.  THIS CAN CAUSE SERIOUS AND
                     UNPREDICTABLE MALFUNCTIONS OF CDCS.
                     THE CM OVERFLOW HANDLER DOES NOT SWAP ACTIVE RSB'S 
                     BUT THEY ARE SWAPPED OUT UNDER SOME CIRCUMSTANCES
                     BY THE RECORD LOCK PROCESSOR.
                     3. 
                     A "STATUS,JOBS" DISPLAY INCLUDES THE PROGRAM NAME
                     AND THE VERSION NAME WHICH ARE STORED IN THE RSB.
                     WHEN THE RSB IS SWAPPED OUT, A DISK READ IS
                     PERFORMED TO OBTAIN THESE ITEMS. 
                     THIS MAKES FOR AN INEFFICIENT K DISPLAY. 
                     4. 
                     WHEN A MEMORY OVERFLOW CAUSES THE RSB'S TO BE
                     SWAPPED OUT, EVERY INACTIVE RSB IS SWAPPED OUT 
                     WITH NO REGARD FOR HOW RECENTLY IT HAS BEEN USED.
                     5. 
                     CD20256 INTRODUCED AN EXTENSION OF THE FLOW POINT
                     FACILITY THAT WILL DETECT A CDCS INTERNAL LOOP.
                     LOOPS ARE DETECTED IF THEY INCLUDE AT LEAST ONE
                     AND NOT MORE THAN SIXTY FLOW POINTS. 
                     THIS CURRENTLY HAS A BUG THAT CAUSES IT TO DETECT
                     A LOOP WHEN THERE IS JUST ONE USER PERFORMING
                     A VERY REPETITIOUS PROCESS.
                     THIS CAUSES A CDCS ABORT.
                     6. 
                     CM OUT OF RANGE ERROR OCCURS IN DB$REL$ ROUTINE
                     DBSTAREA.  ALSO A FILE POSITION STATUS IS WRITTEN
                     TO THE WRONG RSB.  IF THAT OTHER RSB HAD BEEN
                     SWAPPED OUT, THIS COULD CAUSE A WRITE IN ANY 
                     BLOCK THAT HAD BEEN ASSIGNED IN ITS PLACE. 
                     7. 
                     A FLUSH IS DONE ON EVERY COMMIT. 
                     THIS CAUSES HIGH OVERHEAD. 
                     8. 
                     THERE ARE NO INTERRUPTS DURING A SEQUENCE OF 
                     ATTACHING MULTIPLE FILES.
  
          SOLUTIONS  1. 
                     INSTEAD OF DROPPING THE USER JOB, CALL DB$TARE 
                     TO DOWN THE AREA AND DROP ALL OF ITS CURRENT 
                     USERS. 
                     IN THE PROCESS, THE QUICK RECOVERY FILE IS APPLIED 
                     TO BRING THE FILE BACK TO A CONSISTENT STATE.
                     THE PROCEDURE FOLLOWED IS VERY SIMILAR TO AUTO-
                     RECOVERY.
                     EVEN THOUGH THE FILE IS RECOVERED, IT IS LEFT IN A 
                     "DOWN" STATE AND MUST BE BROUGHT UP AGAIN BY THE 
                     CONSOLE OPERATOR BEFORE IT CAN BE USED.
                     IF THERE IS STILL INSUFFICIENT MEMORY TO RECOVER 
                     THE AREA, THE SCHEMA WILL BE PUT IN AN "ERRDOWN" 
                     STATUS.
                     WHEN THE OPERATOR DOES AN "UP SCHEMA" THE RECOVERY 
                     PROCEDURES ARE REPEATED ONCE MORE.  THIS TIME, 
                     BECAUSE THE SCHEMA DOWN PROCEDURES HAVE BEEN 
                     COMPLETED, THERE WILL PROBABLY BE ENOUGH MEMORY
                     AVAILABLE TO COMPLETE THE RECOVERY.
                     2. 
                     PERMIT AN RSB TO BE SWAPPED OUT ONLY DURING AN 
                     INVOKE OR READ REQUEST.  THESE ARE SAFE. 
                     3. 
                     SAVE A COPY OF THE PROGRAM NAME AND THE VERSION
                     NAME IN THE TQT SO THAT THEY ARE ALWAYS IN MEMORY. 
                     4. 
                     AGE THE RSB ENTRIES AND SWAP THEM OUT IN FOUR
                     STAGES, THE OLDEST ONES FIRST. 
                     5. 
                     PLACE AN EXTRA FLOW POINT IN DB$MTR THAT WILL BE 
                     RECORDED ON EVERY 32ND EXECUTION, SO THAT A LOOP 
                     WILL NOT BE DETECTED IF CONTROL IS PASSING THROUGH 
                     DB$MTR.
                     6. 
                     RESET THE RELATION POINTERS BEFORE SAVING THE FILE 
                     POSITION AND AREA NAME.
                     7. 
                     MAKE THE FLUSH CONDITIONAL, IF RECORDS ARE UPDATED 
                     WITHOUT AN AFTER IMAGE LOG.
                     8. 
                     CORRECT THE CODE OF CD20269 IN DB$ATCH*. 
  
          NOTE -     THIS PSR REQUIRES CD20256 AND MUST BE INSTALLED
                     WITH THAT PSR. 
                     CD20269 IS ALSO REQUIRED.
  
          RLM     86/03/26   DB$ATCH*, DB$CMOH, 
                             DB$CMT$, DB$DEL$, DB$DSCS, 
                             DB$DS27, DB$ERR,  DB$INV$, 
                             DB$MFO,  DB$MTR,  DB$QRF,
                             DB$REL$, DB$REW$, DB$RFOR, 
                             DB$SWI,  DB$SWPO, DB$TARE, 
                             DB$TQTC, DB$VER$, DB$WRP,
                             DB$WR2$, DB$WR2K, SKELETON 
  
 CD2A572  PROBLEM  - THE CST DOESNT ALWAYS SWAP OUT WHEN ALL THE RSB'S
                     ARE SWAPPED OUT. 
          SOLUTION - PUT A SPECIAL LOOP IN DB$CMOH TO SWAP OUT THE CST
          RLM     86/05/16   DB$CMOH, DB$SWPO 
  
 CD20322  PROBLEM  - THE INVOKE FOR AN INTERACTIVE USER MAY BE ABORTED
                     WITH AN ERROR 604, IF THE INVOKE OCCURS DURING THE 
                     TIME THAT ANOTHER JOB ON THE SAME SCHEMA IS WAITING
                     TO REPEAT AN ATTACH THAT RESULTED IN A PFA ERROR 
                     104 (INTERLOCK BUSY).
          SOLUTION - CREATE A SYNCHRONIZATION BETWEEN DB$ADAX AND 
                     DB$ATCH SO THAT THEY WILL PRODUCE THE SAME RESULTS 
                     FOR TWO USERS THAT ARE INVOKING CONCURRENTLY.
  
          NOTE -     THIS PSR IS DEPENENT ON CD20256. 
                     CONSEQUENTLY IT REQUIRES CD20318 AND CD20269 
                     IN ADDITION TO ALL OF THE PSR'S LISTED IN THE
                     HISTORY OF CD20256.
  
          RLM     85/04/08   DB$ADAX, DB$ATCH, DB$ATCH*, DB$TQTT
  
 CD20326  PROBLEM  - CDCS MAY ABORT WITH AN INVALID INSTRUCTION IF BOTH 
                     JOURNAL LOG FILES ARE FULL.
                     IF THE JOB THAT INITIATED THE JOURNAL LOG SWITCH 
                     IS TERMINATED, THERE IS NOTHING TO HOLD THE OVCAP
                     IN MEMORY. 
                     IF THE OVCAP IS UNLOADED BEFORE THE LOG FILE 
                     SWITCH IS COMPLETED, CDCS WILL ABORT.
          SOLUTION - DO A DUMMY CALL TO DB$JRPT FROM THE INTERNAL TASK
                     SO THAT ITS RCB WILL HOLD THE OVCAP IN MEMORY. 
          RLM     86/04/16   DB$COM, DB$JRPT
  
 CD20328  PROBLEM  - IF AREA RECOVERY FAILS DUE TO A RUINED FILE, CDCS
                     GOES INTO A LOOP TAKING DUMPS OF THE CDCS FIELD
                     LENGTH.
          SOLUTION - TAKE A DUMP ONLY ON THE FIRST ENTRY INTO DB$TARE.
                     IF DB$TARE IS CALLED DURING THE ATTEMPTED AREA 
                     RECOVERY, DOWN THE SCHEMA. 
                     DO NOT DUMP FL IF THE DOWN IS CAUSED BY A CM 
                     OVERFLOW.
          NOTE     - THIS PSR REQUIRES THAT CD20318 IS INSTALLED. 
                     SEE NOTES IN CD20318 AND CD20256 FOR OTHER REQUIRED
                     PSR'S. 
          RLM     86/04/18   DB$MFO, DB$SFCL, DB$SWPO, DB$TARE
  
 CD20334  PROBLEM  - "INTERNAL ERROR -- DB$SFCL" MAY OCCUR WHEN A USER
                     JOB ABORTS AND THEN INVOKES CDCS AGAIN.
  
                     WHEN A UCP ABORTS, THE OS REPEATS THE NOTICES TO 
                     THE SCP UNTIL ALL CONNECTIONS HAVE BEEN RELEASED.
                     WHEN CDCS RECIEVES REQUESTS FASTER THAN THEY CAN 
                     BE SERVICED, THEY ARE SAVED FOR LATER PROCESSING.
                     AFTER THE FIRST NOTICE HAS BEEN PROCESSED BY CDCS, 
                     THE UCP IS FREE TO PROCEED TO NEW STATEMENTS THAT
                     MAY FOLLOW AN EXIT STATEMENT.
                     IF A NEW CDSC INVOKE REQUEST IS ISSUED BEFORE ALL
                     OF THE OUTSTANDING ABORT NOTICES HAVE BEEN 
                     PROCESSED, THE CONNECTION CREATED FOR THE NEW
                     INVOKE IS RELEASED BEFORE THE INVOKE IS PROCESSED. 
  
          SOLUTION - ISSUE THE SF.ENDT THAT RELEASES THE CONNECTIONS
                     IMMEDIATELY WHEN THE ABORT NOTICE IS RECEIVED. 
          RLM     86/06/05   DB$RCBQ, DB$SFCL, DB$TRU 
  
 CD20336  PROBLEM  - CD20285 SAVES MEMORY DURING A TRANSACTION
                     ROLL-BACK. 
                     PART OF ITS MEMORY IS SAVED BY USING EXISTING UFT
                     ENTRIES WHEN THEY ARE AVAILABLE. 
                     THE EXISTING UFT'S HAVE CRM ERROR EXIT ROUTINE 
                     ADDRESSES. 
                     DB$UNDO DEPENDS ON HAVING NO ERROR EXIT ADDRESSES. 
                     AN UNEXPECTED ERROR CALL BRINGS IN THE ERROR 
                     MESSAGE OVERLAY WHICH DESTROYS THE DB$UNDO OVERLAY.
          SOLUTION - SAVE THE ERROR EXIT ADDRESS FROM THE EXISTING
                     UFT AND RESTORE IT WHEN DB$UNDO IS DONE. 
                     SET THE EXIT ADDRESS TO ZERO WHILE DB$UNDO 
                     IS USING THE UFT.
          RLM     86/07/08   DB$UNDO
  
 *L688*    ************************************************ 
 CD2A578  PROBLEM  - CDCS FORGETS THAT IT HAS ATTACHED A FILE AND 
                     ATTEMPTS TO ATTACH IT AGAIN. 
          SOLUTION - SAVE THE OFT LOCATION BEFORE CALLING SCHEDULER.
          RLM     87/03/17   DB$ADAX
  
 CD2A579  PROBLEM  - ON AN SF.SWPI, IF NOS RETURNS WITH ERROR CODE 46,
                     (SWAP-IN TEMPORARILY PROHIBITED) CDCS ABORTS WITH
                     "CDCS INTERNAL ERROR--DB$SFCL" 
          SOLUTION - DELAY AND THEN REPEAT THE SWAP-IN REQUEST. 
          RLM     87/04/07   DB$SFCL
  
 CD20337  PROBLEM  - "CM OUT OF RANGE" ERROR MAY OCCUR IF A USER
                     REQUESTS A SECOND INVOKE.
                     THIS HAPPENS BECAUSE AN EXTRANEOUS RCB IS CREATED
                     DURING THE ERROR PROCESSING. 
                     THIS RESULTS IN DELETING THE SAME TQT TWICE. 
          SOLUTION - SET TQRCB BEFORE ANY ERROR CALLS.
          RLM     86/07/22   DB$IREC
  
 CD20345  PROBLEM  - 1. A DOUBLE INVOKE FROM A TAF OR INTERACTIVE QU
                     TASK CAUSES A CDCS MODE ERROR IF THE SECOND INVOKE 
                     USES AN INVALID SCHEMA NAME. 
  
                     2. AN INITIAL INVOKE WITH AN INVALID SCHEMA NAME 
                     HANGS UP IN DB$TQTD. 
                     THIS LEAVES A GHOST JOB ACTIVE WITH CDCS WHICH 
                     PREVENTS CDCS FROM BEING TERMINATED. 
  
          SOLUTION - 1. IN DB$INV$ SET THE SAL INDEX FROM THE FIRST 
                     INVOKE.
  
                     2. IN DB$TQTD DONT ACCESS THE SCHEMA ACCESS LIST 
                     UNLESS THE SAL INDEX IS VALID. 
          RLM     86/08/05   DB$INV$, DB$TQTD 
  
 CD20346  PROBLEM  - A BAD LOG FILE CAUSES CDCS TO ABORT WITH THE 
                     MESSAGE "CDCS INTERNAL ERROR--DB$RDLG 1".
                     THIS PREVENTS AUTOMATIC RECOVERY FROM COMPLETING 
                     AND RENDERS THE JOURNAL LOG FILE UNUSABLE. 
          SOLUTION - IT HAS NOT BEEN DETERMINED EXACTLY HOW THE BAD 
                     LOG RECORDS ARE CREATED, BUT WE CAN BYPASS THEM
                     WHEN THEY ARE FOUND. 
                     THEY HAVE ALWAYS BEEN "CLOSE" LOG RECORDS WHICH
                     HAVE NO SIGNIFICANCE FOR RECOVERY. 
  
                     SKIP PAST BAD RECORDS ON THE JOURNAL LOG FILE. 
                     ISSUE DIAGNOSTIC MESSAGES TO IDENTIFY THE SKIPPED
                     RECORDS. 
          RLM     87/03/06   DB$RDLG, SKELETON
  
 CD20347  PROBLEM  - 1. 
                     IF CDCS ISSUES AN SFCALL WHEN THERE IS NO USER 
                     CONNECTION, THE OS RETURNS ERROR CODE 63.
                     ON CODE 63, (WITH CD20334) CDCS TERMINATES THE 
                     RUN UNIT.
                     IF THE RUN UNIT IS TAF, ALL THE TAF TASKS ARE
                     TERMINATED AND CDCS ACCEPTS NO MORE REQUESTS 
                     FROM THEM. 
                     THIS PROBLEM SEEMS TO OCCUR WHEN A TASK RE-INVOKES 
                     WHILE CDCS IS STILL PROCESSING A PRIOR TERMINATION.
                     2. 
                     WITH CD20334 INSTALLED, DROPPING AN ACTIVE USER
                     MAY RESULT IN A RETURN CODE 63.
                     ALL USER CONNECTIONS ARE BROKEN IMMEDIATLY WHEN A
                     USER IS DROPPED. 
                     THIS LEAVES AN OUTSTANDING REQUEST WITHOUT ANY 
                     CONNECTION AND NOS RETURNS ERROR 63 WHEN CDCS
                     ATTEMPTS TO COMPLETE THEM. 
          SOLUTION - 1. 
                     DO NOT PERMIT A NEW REQUEST TO BEGIN UNTIL THE 
                     PRIOR ONE FOR THE TASK IS COMPLETED. 
                     2. 
                     SET A FLAG IN THE TQT SO ERROR RETURN CODES WILL 
                     BE IGNORED.
  
                     ALSO, IN CASE THE 63 OCCURS UNDER OTHER
                     CIRCUMSTANCES, DONT TERMINATE THE RUN UNIT BUT 
                     INSTEAD TERMINATE CDCS WITH
                     "CDCS INTERNAL ERROR -- DB$SFCL".
                     THAT WILL PERMIT A FASTER DIAGNOSIS AND
                     RESOLUTION OF THE PROBLEM. 
          RLM     86/10/22   DB$IREC, DB$RCBQ, DB$SFCL, DB$TQTD 
  
 CD2A577  PROBLEM  - CDCS CAN NOT BE DOWNED AND TERMINATED NORMALLY 
                     IF AN INTERACTIVE USER IS INVOKED BUT IS NOT 
                     ACTIVELY USING CDCS. 
                     ON A "DOWN" COMMAND, CDCS WAITS FOR THE NEXT USER
                     REQUEST BEFORE ABORTING THE USER.
                     THIS IS DONE SO THAT A "CDCS DOWN" DIAGNOSTIC CAN
                     BE SENT TO THE USER VIA THE SYSTEM CONTROL POINT 
                     INTERFACE. 
          SOLUTION - WAIT TEN SECONDS TO RECEIVE THE NEXT REQUEST FROM
                     AN INVOKED USER. 
  
                     USERS WITH AN ACTIVE REQUEST WITHIN THAT TIME
                     WILL BE ABORTED WITH "640-RUN ABORT, CDCS DOWN". 
  
                     FOR AN INTERACTIVE JOB THAT IS WAITING FOR INPUT,
                     THE DIAGNOSTIC WILL DEPEND ON WHEN THAT JOB MAKES
                     ITS NEXT CDCS REQUEST. 
  
                     THERE IS A VERY SHORT TIME PERIOD (200 MILLISEC) 
                     AT THE END OF THE TEN SECONDS WHEN THE DIAGNOSTIC
                     MIGHT BE "HUNG IN AUTORECALL". 
  
                     AFTER THE TEN SECONDS AND BEFORE CDCS HAS BEEN 
                     TERMINATED, AND AFTER CDCS IS REINITIATED, THE 
                     DIAGNOSTIC WILL BE 
                     "CDCS ILLEGAL REQUEST, NOT INVOKED". 
  
                     WHILE CDCS IS NOT AT A CONTROL POINT, THE USER 
                     WILL BE NOTIFIED THAT THE SUBSYSTEM HAS ABORTED. 
  
          RLM     87/03/28   CDCSCOMMN, DB$IREC, DB$SFCL, 
                             DB$TQTD, DB$TQTT, DB$WRP,
                             DB$ERRM
  
 CD20348  PROBLEM  - DBRCN AND DBRST USE BAD SORT KEYS FOR
                     DATE AND TIME. 
          SOLUTION - CORRECT THE SORT KEYS. 
                     CHANGE DB$SORT TO USE SORT5 INTERFACE PROCEDURES.
          RLM     86/09/19   DB$SORT
  
 CD20350  PROBLEM  - DBMSTRD INTERNAL ERROR -- DB$MDWS 1. 
                     THIS ERROR MAY OCCUR WHEN THE NUMBER OF PERMANENT
                     FILE NAMES EXCEEDS 336.
                     AT THAT POINT THE PFN TABLE OVERFLOWS TO DISK, 
                     CREATING TWO DISK SEGMENTS THAT CONTAIN THE PF 
                     NAMES IN ALPHABETIC ORDER. 
                     THEN THE ERROR WILL ONLY OCCUR IF THE FINAL PF 
                     NAMES THAT ARE ADDED HAPPEN TO BE ADDED TO THE 
                     FIRST DISK SEGMENT.
          SOLUTION - ON THE CALL TO DB$MDPG BE SURE THAT THE SEGMENT
                     THAT IS SPECIFIED IS NOT THE ONE THAT IS CURRENTLY 
                     RESIDENT.
          RLM     86/10/02   DB$MDWS
  
 CD20355  PROBLEM  - WRITING A RECORD THAT PARTICIPATES IN A CONSTRAINT 
                     MAY CAUSE A LOCK TO BE DELETED ON THE OWNER RECORD.
          SOLUTION - DONT ALLOW THE CONSTRAINT PROCESSOR TO RELEASE 
                     ANY LOCKS THAT IT DID NOT SET. 
          RLM     87/01/27   DB$LOK 
  
 CD20357  PROBLEM  - A "MONITOR CALL ERROR" OCCURS WHEN THREE OR MORE 
                     USERS ARE IN CONTENTION FOR A SINGLE RECORD LOCK 
                     AND THE ONE HOLDING THE LOCK IS SWAPPED OUT. 
          SOLUTION - MODIFY DB$SFST SO THAT IT DOES NOT ISSUE THE 
                     SFCALL FROM THE TQT OF THE USER BEING TESTED.
          RLM     87/01/07   DB$LOK, DB$SFST
  
 CD20366  PROBLEM  - CDCS GOES INTO A CPU LOOP IF THERE IS AN ATTEMPT 
                     TO WRITE ON AN AK FILE USING A ZERO KEY, WHILE 
                     ANOTHER USER HAS AN AREA LOCK ON THAT FILE.
          SOLUTION - WAIT FOR AN AREA LOCK TO BE RELEASED BEFORE
                     WRITING ON AN AK FILE. 
          RLM     87/04/21   DB$LOK, DB$WR2K
                             NEW COMDECK - ALTDCLS
  
 CD20367  PROBLEM  - PFM ERROR 002 WHEN SWITCHING VERSIONS. 
  
                     THIS ERROR WILL HAPPEN MOST FREQUENTLY WHEN THE
                     NUMBER OF VERSIONS IS JUST OVER 20.
                     A VERSION NAME LIST IN CENTRAL MEMORY CONTAINS 20
                     VERSION NAMES AT A TIME. 
                     IF THERE ARE 21 VERSIONS, AND A SWITCH IS PERFORMED
                     TO VERSION 21, THE FIRST 20 VERSION NAMES ARE
                     LOADED AND SEARCHED. 
                     THE VERSION IS NOT FOUND, SO THE VERSION 21 NAME IS
                     LOADED AND SATISFIES THE SEARCH. 
                     THE VERSION NAME LIST IS LEFT CONTAINING THE 
                     VERSION NAMES OF VERSION 21 AND 2 THRU 20. 
                     ANY NEW SEARCH WILL SEARCH THE ENTIRE BUFFER FOR 
                     THE VERSION NAME.
                     ALL OF THE VERSION NAMES ARE THERE EXCEPT FOR
                     VERSION 1 WHICH IS ALWAYS "MASTER" AND DOESNT
                     REQUIRE A SEARCH OF THE LIST.
                     VERSIONS 2 THRU 20 WILL BE FOUND BUT THEIR ORDINAL 
                     WILL BE COMPUTED FROM A BASE OF 21, YIELDING 
                     ORDINALS 22 THRU 40. 
                     WHEN THAT ORDINAL IS USED TO OBTAIN THE PERMANENT
                     FILE NAME, A GARBAGE NAME IS RETRIEVED.
  
                     IN THIS WORST CASE, THE ONLY VERSIONS THAT WILL
                     WORK AGAIN UNTIL THE LIST IS RELOADED, ARE 
                     VERSIONS 1 AND 21. 
                     THE LIST WILL BE RELOADED AFTER ALL SCHEMA USERS 
                     HAVE TERMINATED THEIR CDCS CONNECTIONS.
  
                     AS ANOTHER EXAMPLE --- 
                     IF THERE ARE 45 VERSIONS, THE ONLY CASES THAT WILL 
                     NOT WORK ARE A SWITCH TO 41 THRU 45, FOLLOWED
                     DIRECTLY BY A SWITCH TO VERSION 26 THRU 40.
                     THEN THE SECOND VERSION SWITCH WILL FAIL.
                     THE TWO VERSION SWITCHES MAY BE BY THE SAME USER 
                     OR DIFFERENT USERS.
  
          SOLUTION - RESTRICT THE BUFFER SEARCH TO THE NUMBER OF VERSION
                     NAMES THAT WAS LAST LOADED.
  
          RLM     87/04/16   DB$VEMD
  
 *L716*    ************************************************ 
 CD2A583  PROBLEM  - QU JOBS HANG DURING VERSION CHANGES. 
          SOLUTION - DONT LET CDCS ROLL OUT WHILE THERE ARE ANY 
                     PENDING REQUESTS.
          RLM     88/01/27   DB$MTR 
  
 CD2A584  PROBLEM  - CDCS ABORTS WITH 'CDCS INTERNAL ERROR -- DB$LOK 1'.
                     WHILE CDCS IS DROPPING A TRANSACTION TO RESOLVE
                     A DEADLOCK, A THIRD USER ATTEMPTS TO LOCK ONE OF 
                     LOCKED RECORDS.
          SOLUTION - FORCE THE THIRD USER TO WAIT UNTIL THE INITIAL 
                     DEADLOCK HAS BEEN RESOLVED.
          RLM     88/04/25   DB$LOK 
  
 CD2A586  PROBLEM  - CDCS ABORTS WITH "CM OUT OF RANGE" DURING THE
                     INVOKE OF THE FIRST USER OF A SCHEMA.
                     THIS IS A RESULT OF A MEMORY OVERFLOW, SO OTHER
                     SCHEMAS MUST ALREADY BE IN USE.
          SOLUTION - DONT SWAP OUT A CST DURING AN INVOKE.
          RLM     88/05/25   DB$CMOH
  
 CD20382  PROBLEM  - " CDCS INTERNAL ERROR -- DB$MDWS 1 " 
                     THIS ERROR RESULTS WHEN A LARGE NUMBER OF PFN
                     TABLE ENTRIES IS DELETED FROM A MASTER DIRECTORY.
                     WHEN DBMSTRD CONVERTS FROM A DISK RESIDENT PFN 
                     TABLE TO A CM RESIDENT TABLE, IT LOSES TRACK OF
                     THE SIZE OF THE TABLE. 
          SOLUTION - ADJUST THE "USED" FIELD IN THE TLC HEADER. 
          RLM     87/06/29   DB$USDS
  
 CD20383  PROBLEM  - "CDCS INTERNAL ERROR--DB$UNDO" 
                     OR "CM OUT OF RANGE" ERROR WITHIN DB$UNDO. 
  
                     IF A JOB ABORTS OR IS DROPPED WHILE PROCESSING 
                     A TRANSACTION, AND HEAVY USAGE HAS CAUSED CDCS 
                     TO SWAP OUT THE RUN-UNIT STATUS BLOCK FOR THAT 
                     JOB, ONE OF THE ABOVE ERRORS WILL OCCUR. 
  
          SOLUTION - SWAP IN THE RSB BEFORE DOING THE ROLL-BACK 
                     OF THE TRANSACTION.
          RLM     87/08/04   DB$TQTD
  
 CD20388  PROBLEM  - WHEN THE FIFO OPTION IS SELECTED FOR ALTERNATE 
                     KEYS WHERE DUPLICATES ARE ALLOWED, THE PERFORMANCE 
                     OF REWRITES MAY DEGRADE TO THE POINT WHERE IT SEEMS
                     THAT CDCS IS NOT RUNNING.
                     THIS IS SEVERE WHEN THERE IS A LARGE NUMBER OF 
                     EQUAL KEY VALUES.
                     THE INDEX FILE ORGANIZATION IS ESTABLISHED WHEN
                     THE FILE IS CREATED, SO IT MAY BE DIFFERENT THAN 
                     SPECIFIED IN CDCS SCHEMA.
                     FIFO IS THE DEFAULT FOR A COBOL PROGRAM, SO IT IS
                     EASY TO SPECIFY IT WITHOUT REALIZING IT. 
  
          SOLUTION - ISSUE A WARNING MESSAGE IF A FIFO KEY IS IN USE. 
                     ALSO FIX A MINOR TASK SCHEDULING PROBLEM.
          RLM     87/09/15   DB$OPN$
                             RLQPSDCLS, DB$INIT, DB$RCBQ, DB$SCHD 
  
 CD20389  PROBLEM  - THE QUICK RECOVERY FILE (QRF) MAY GROW BEYOND
                     ITS SPECIFIED SIZE.
                     DB$JRPT WAITS FOR THE COMPLETION OF JOURNAL LOG
                     ACTIVITY, DOING NOTHING TO HALT IT, BEFORE WRITING 
                     THE RECOVERY POINT RECORD AND RESETING THE QRF.
          SOLUTION - RESET THE QRF (DB$QRP) BEFORE CALLING DB$JRPT. 
                     RELY ON THE EXISTING PRIORITY OF INTERNAL TASKS
                     TO INITIATE THE QRF RESET TASK.
          RLM     87/10/09   JFQUEDCLS, QRTABDCLS, DB$JRPT, 
                             DB$MTR, DB$QRF, DB$TQTD
  
 CD20390  PROBLEM  - DB$DS26 TAKES THE CALLING PROGRAM NAME AND THE 
                     VERSION NAME FROM THE RSB, EVEN IF THE RSB HAS 
                     BEEN SWAPPED OUT TO THE DISK.
                     IN THAT CASE THE RSB POINTER IS THE COMPLEMENT 
                     OF THE LOCATION OF THE RSB ON THE SWAP FILE. 
                     THE INVALID ADDRESS CAUSES A CDCS MODE ERROR.
          SOLUTION - CD20318 CREATED A COPY OF THE PROGRAM NAME AND 
                     THE VERSION NAME IN THE TQT SO THAT THEY COULD 
                     BE DISPLAYED WHILE THE RSB IS SWAPPED OUT. 
                     THESE ARE USED IN DB$DS27, USE THEM IN DB$DS26.
          EXTRA    - ISSUE AN INFORMATIVE MESSAGE IF THE TASK IS
                     WAITING FOR A LOCK.
          RLM     87/10/13   DB$DS26, DB$DS27,
                             DB$LOK,  DB$ERRM 
  
 CD20394  PROBLEM  - CDCS INTERNAL ERROR--DB$PROF 
          SOLUTION - CD2A573 WAS A MISTAKE, PURGE IT. 
          RLM     87/10/22   DB$MTR, DB$PROF
  
 CD20398  PROBLEM  - TWO PROBLEMS WERE FOUND. 
                     1.  DBREC WILL NOT WAIT FOR THE JOURNAL LOG FILE 
                     IF IT IS BUSY OR OTHERWISE INTERLOCKED.
                     THIS WILL LEAVE THE LOG FILE IN A FULL STATUS. 
                     2.  CDCS MIGHT ABORT ON A VERSION CHANGE 
                     IF A NEW VERSION FILE IS BUSY OR OTHERWISE 
                     INTERLOCKED. 
          SOLUTION - 1.  CODE IN DB$BDLG WILL CAUSE DBREC TO WAIT.
                     2.  ADD CORRECTIVE CODE TO DB$VER$.
  
          RLM     87/12/15   DB$BDLG, DB$VER$ 
  
 CD20399  PROBLEM  - CDCS MAY ABORT IF A TRANSACTION ROLL-BACK OCCURS 
                     BECAUSE OF A CONSTRAINT VIOLATION. 
                     THIS MIGHT ALSO OCCUR IF THE USER HAS REQUESTED
                     IMMEDIATE-RETURN AND THE CONSTRAINING RECORD IS
                     LOCKED.
          SOLUTION - MAKE SURE THE JOURNAL LOG POINTER IS NOT LOST
                     DURING THE TRANSACTION ROLL-BACK.
          RLM     88/01/21   DB$INIT, DB$UNDO 
  
 CD20408  PROBLEM  - CDCS ABORTS WITH "CDCS INTERNAL ERROR-- DB$LOKD 1" 
                     DURING CONSTRAINT PROCESSING, CDCS REQUESTS A
                     LOCK ON THE CONSTAINING RECORD.
                     IF THAT RECORD IS LOCKED AND THE UPDATE REQUEST
                     IS MADE WITH IMMEDIATE RETURN AND A TRANSACTION
                     IS BEING PROCESSED AND THERE IS MORE THAN ONE
                     RECORD ALREADY LOCKED FOR THIS USER, CDCS ABORTS.
          SOLUTION - CLEAR THE MULTI-LOCK FLAG THAT IS SET BY DB$CPRO.
          RLM     88/07/07   DB$LKRU, DB$TQTD 
  
 CD20409  PROBLEM  - CDCS DOMINATES THE CPU WHEN THE USER JOBS ARE
                     DOING NOTHING BUT GET-NEXT BY PRIMARY KEY. 
          SOLUTION - DO AN OCCASIONAL RECALL TO ALLOW OTHERS TO GET 
                     THE CPU. 
                     CHANGES ARE MADE TO TASK SCHEDULING TO ASSURE
                     MAXIMUM THRUPUT AT ALL LOAD LEVELS.
                     UPDATE REQUESTS REQUIRE THE BLOCK THAT IS TO BE
                     UPDATED IS IN MEMORY.  THE USER JOB HAS ALREADY
                     DONE A READ, SO THE BLOCK PROBABLY IS IN MEMORY. 
                     IF A LARGE NUMBER OF OTHER READS WERE PERMITTED
                     BEFORE THE UPDATE, THEY COULD FORCE THAT BLOCK OUT 
                     OF MEMORY.  TO AVOID THIS, THE UPDATES ARE PLACED
                     AHEAD OF OTHER WAITING REQUESTS. 
  
          RLM     88/07/21   DB$INIT, DB$ITC, 
                             DB$MTR,  DB$RCBQ,
                             DB$SCHD, DB$WRP, 
                             RLQPSDCLS
  
 CD20413  PROBLEM  - THE 'K.DOWN,CDCS' COMMAND DOESNT DROP ALL USERS. 
                     USERS THAT HAD NO OUTSTANDING REQUESTS AT THE TIME 
                     OF THE DOWN, BUT MAKE A NEW REQUEST WITHIN TEN 
                     SECONDS, CONTINUE NORMALLY.
          SOLUTION - CORRECT THE CODE.
          RLM     88/07/21   DB$IREC
  
 CD20414  PROBLEM  - THE "WAITING FOR LOCK" MESSAGE COMES TOO SOON
                     AND TOO OFTEN. 
          SOLUTION - WAIT SIX SECONDS BEFORE ISSUING THE MESSAGE. 
          RLM     88/07/30   DB$LOK, DB$ERRM
  
 *L739*    ************************************************ 
 CD20402  PROBLEM  - WHEN THE NUMBER OF FILES TIMES THE NUMBER OF USERS 
                     WITH THOSE FILES OPEN EXCEEDS ABOUT FIVE HUNDRED,
                     CDCS ACTIVITY GRINDS DOWN TO A SLOW CRAWL OR STOPS 
                     COMPLETELY.
          SOLUTION - MODIFY CDCS SO IT CAN RUN WITH JUST ONE FIT PER
                     FILE REGARDLESS OF THE NUMBER OF USERS.
  
          NOTE     - REQUIRES PSR'S SW1A649 AND AM2A305 
                     ALSO REQUIRES CD20355, CD20389, CD20390
  
          RLM     88/05/11   OBSOLETES 3 EXISTING DECKS 
                 (89/10/11)      DB$IFEX, DB$RIFT AND DB$SIFT 
                             CREATES 8 NEW DECKS
                             MODIFIES 88 DECKS
  
 CD2A585  PROBLEM  - THE CODE FOR CD20402 HAS THE FOLLOWING PROBLEMS. 
  
          PROBLEM 1. A READ-NEXT-RECORD MAY GET AN INVALID END-OF-DATA. 
          SOLUTION - WHEN RESTORING A FIT FOR A USER AFTER ANOTHER USER 
                     HAS USED IT, RESTORE THE FILE POSITION FIELD IN
                     THE FIT AS WELL AS IN THE FIAT.
          RLM     88/05/17   DB$FPOS
  
          PROBLEM 2. "CM OUT OF RANGE" ERROR EXIT IN DB$FSET
                     WHEN DB$DPIF CALLS DB$FSET TO GET THE UFT. 
          SOLUTION - DO NOT CALL DB$FSET WHEN THERE IS NO UFT.
          RLM     88/05/25   DB$DPIF
  
          PROBLEM 3. CRM ERROR 507 MAY OCCUR DURING A SEEK FUNCTION.
          SOLUTION - DO NOT INITIATE A SEEK IF ONE IS ALREADY IN
                     PROGRESS USING THIS FIT. 
          RLM     88/06/10   CDCSCOMMN, DB$SEK
  
          PROBLEM 4. CDCS MALFUNCTIONS DURING READ-RELATION FUNCTIONS.
          SOLUTION - THIS IS A PROBLEM OF READ BY MAJOR KEY THAT
                     THAT SHOWED UP DURING READ-RELATION TESTING. 
          RLM     88/10/18   DB$SEK 
  
          PROBLEM 5. SEE CD20410
          RLM     88/07/20
  
          PROBLEM 6. CRM ERROR 547 OCCURS ON A GET-NEXT ON AN INDEX 
                     FILE. ( THIS FUNCTION IS ONLY DEFINED FOR QU ) 
          SOLUTION - CALL DB$SFIT INSTEAD OF DB$FSIO TO SELECT AND SET A
                     FIT. 
          RLM     88/08/10   DB$RDX$
  
          PROBLEM 7. SEE CD20417
          RLM     88/10/18
  
          PROBLEM 8. CODE FOR CD20415 IS NOT COMPATIBLE WITH CD20402. 
          SOLUTION - THIS IS THE EQUIVALENT CODE. 
          RLM     88/10/18   DB$ACHK, DB$SFIT 
  
          PROBLEM 9. CRM ERROR 502. 
          SOLUTION - THE FIT IS NOT RESET CORRECTLY AFTER KEY MAPPING.
          RLM     88/10/20   DB$REL$, DB$SFIT 
  
          PROBLEM 10. CRM ERROR 100 OCCURS WHILE PROCESSING QU QUERY ON 
                     A DA FILE. 
          SOLUTION - SAVE FIT FILE POSITION IN FIAT.
          RLM     88/10/24   DB$FSAV
  
 CD2A587  PROBLEM  - CDCS SOMETIMES GOES INTO A LOOP IF DB$IREC IS
                     EXECUTED FROM A QRF RCB. 
          SOLUTION - DONT PERFORM DB$IREC FUNCTIONS FROM A QRF RCB. 
          RLM     88/11/01   DB$IREC
  
 CD2A588  PROBLEM  - SASCMAXLOG IS ONLY 15 BITS.
                     THIS CAUSES RECOVERY FAILURES WHEN THE MAXIMUM 
                     LOG RECORD SIZE EXCEEDS 32767 CHARACTERS.
          SOLUTION - EXPAND IT TO 21 BITS.
                     THIS WILL BE INEFFECTIVE UNLESS CD2A608 IS 
                     INSTALLED. 
          RLM     89/06/26   SALDCLS, DB$INIT 
  
 CD2A608  PROBLEM  - DBREC ABORTS WITH ADDRESS OUT OF RANGE WHILE 
                     DUMPING A JOURNAL LOG FILE.
                     THIS HAPPENS WHEN A LOG RECORD IS LARGER THAN
                     THE COMPUTED SIZE OF THE WORKING STORAGE AREA
                     THAT IT IS READ INTO.
                     THE MAXIMUM LOG RECORD SIZE IS KEPT IN A 15 BIT
                     FIELD IN THE MASTER DIRECTORY. 
                     WHEN IT IS LARGER THAN 32767 CHARACTERS, THE 
                     DBREC ABORT MAY OCCUR. 
          SOLUTION - WHEN THE MAX RECORD SIZE IS GREATER THAN 32000 
                     CHARACTERS, DIVIDE IT BY 80 TO STORE IT. 
          RLM     89/06/14   MDSCDDCLS, DB$BALT, DB$BDLG, DB$SRDM 
  
 CD2A609  PROBLEM  - CDCS INTERNAL ERROR -- DB$FKLA 1 
          SOLUTION - DO NOT SET THE FPT POINTER IF THE FILE IS NOT OPEN.
                     LEAVE A VALUE THAT WILL CAUSE A MODE ERROR IF IT 
                     IS REFERENCED. 
                     CORRECT THE USE OF AN INVALID FPT POINTER IN 
                     DB$DPIF AND DB$REL$. 
          RLM     89/06/15   DB$ACHK, DB$CLSA, DB$DPIF, DB$DRT, 
                             DB$MFP,  DB$RCHK, DB$REL$, DB$RSR$,
                             DB$RWR$, DB$TQTD, DB$UNDO
  
 CD2A610  PROBLEM  - AN UNNECESSARY CRM ERROR 532 IS ISSUED.
          SOLUTION - DO NOT ISSUE THE ERROR.
                     ALSO SOLVES AN ABORT THAT HAPPENS WHEN CD2A609 
                     IS INSTALLED.
          RLM     89/06/07   DB$OPN$
  
 CD2A611  PROBLEM  - CDCS ABORTS IN CMM.ALF 
                     WHEN MAPPING OR A DATABASE PROCEDURE IS DEFINED FOR
                     ONE AREA, CDCS DOES NOT CHECK THE RECORD LENGTH
                     CORRECTLY FOR OTHER AREAS. 
                     WHEN THE SPECIFIED RECORD LENGTH IS GREATER THAN 
                     THE MAXIMUM RECORD LENGTH, THE MEMORY MANAGER BLOCK
                     CHAIN IS DESTROYED.
          SOLUTION - THE RECORD LENGTH TEST IS CORRECTED FOR GREATER
                     ACCURACY.
                     THE ALLOCATION OF THE SCHEMA AND SUBSCHEMA 
                     WORKING STORAGE AREAS IS MODIFIED TO AVOID 
                     ALLOCATING UNNECESSARILY LARGE BUFFERS.
          RLM     89/07/06   DB$REW$, DB$SFIT, DB$WR2$
  
 CD2A612  PROBLEM  - CANNOT PRODUCE A FLOW POINT REPORT AND CONTINUE
                     CDCS EXECUTION.
          SOLUTION - REINITIALIZE FLOW POINT TABLES AFTER READOUT.
          RLM     89/08/10   DB$FLOP, DB$FLRP, DB$ODMP, 
                             DB$RCVD, DB$RCVR 
  
 CD2A613  PROBLEM  - CDCS ERROR - DB$FSET 1 
                     DB$LKRU LEAVES THE WRONG OFT POINTER.
                     THAT CAUSES AN ABORT IN DB$FSET WHEN IT IS CALLED
                     BY DB$DPIF.
          SOLUTION - RESTORE THE OFT POINTER. 
          RLM     89/08/10   DB$ERR 
  
 CD2A615  PROBLEM  - THE FOLLOWING FUNCTIONS DO NOT CORRECTLY SET THE 
                     FILE POSITION FIELD IN THE STATUS BLOCK. 
                     READ-INDEX, SKIP, START, START-INDEX.
          SOLUTION - SET THE FPFITFP FIELD. 
          RLM     89/10/02   DB$RDX$, DB$SKF$, DB$STR$, DB$STX$ 
  
 CD2A617  PROBLEM  - ERROR 532 IS RECEIVED ON AN OPEN I-O THAT FOLLOWS
                     AN OPEN OUTPUT THAT GOT A VALID 532 ERROR. 
          SOLUTION - CLEAR THE ES FIELD BEFORE AN OPEN. 
                     EXPLICITLY SPECIFY PROCESSING DIRECTION ON THE 
                     OPENM CALL FOR I-O.
          RLM     89/10/04   DB$OPN$
  
 CD20410  PROBLEM  - ADDRESS OUT OF RANGE OCCURS IN DB$DEL$, IF A 
                     CONSTRAINED RECORD IS DELETED WITHIN A 
                     TRANSACTION OR WITH BEFORE-IMAGE LOGGING.
          SOLUTION - RESET THE UFT POINTER BEFORE CALLING THE 
                     CONSTRAINT PROCESSOR (DB$CPRO).
          NOTE -     THIS PROBLEM IS ONLY PRESENT IF CD20402
                     IS INSTALLED.
          RLM     88/07/19   DB$DEL$
  
 CD20417  PROBLEM  - CRM ERROR 507 MAY OCCUR DURING A SEEK OR GET-NEXT
                     FUNCTION IF THEY OVERLAP ON THE SAME FIT.
          SOLUTION - DO NOT INITIATE A GET-NEXT IF A SKIP OR GET-NEXT 
                     IS ALREADY IN PROGRESS USING THIS FIT. 
          NOTE -     THIS PROBLEM IS ONLY PRESENT IF CD20402
                     IS INSTALLED.
          RLM     88/08/24   DB$GETN
  
 CD20419  PROBLEM  - THE "DOWN CDCS" COMMAND DOES NOT DROP JOBS THAT ARE
                     SWAPPED OUT WITH "SWAP-IN TEMPORARILY PROHIBITED". 
          SOLUTION - AFTER 10 SECONDS DISCONNECT AND FORGET THESE JOBS. 
          RLM     88/09/22   DB$SFCL
  
 CD20425  PROBLEM  - DBRCN DOES NOT RETAIN THE INPUT SEQUENCE AMONG 
                     RECORDS WITH THE SAME TIME STAMP.
          SOLUTION - SPECIFY THE RETAIN OPTION WHEN CALLING SORT. 
          RLM     88/12/12   DB$SORT
  
 CD20426  PROBLEM  - ON READ RELATION REQUESTS, IF RECORD MAPPING 
                     RESULTS IN A RECORD LENGTH WITH A GREATER WORD 
                     LENGTH THAN THE SOURCE RECORD, THE EXTRA WORD IS 
                     NOT DELIVERED TO THE USERS WORKING STORAGE AREA. 
                     A VIRTUAL ITEM CAUSES RECORD MAPPING TO BE DONE. 
          SOLUTION - ADJUST THE RECORD LENGTH AFTER THE DB$RMIF CALL. 
          NOTE -     THIS PROBLEM IS ONLY PRESENT IF CD20402
                     IS INSTALLED.
          RLM     89/01/05   DB$REL$
  
 CD20427  PROBLEM  - ADDRESS OUT OF RANGE OCCURS IN DB$OPN$.
                     MORE OFTEN, WOULD CAUSE A GARBAGE AREA NAME TO BE
                     RECORDED IN THE LOG RECORD FOR AN OPEN.
          SOLUTION - SET THE BASED ARRAY POINTER TO THE AREA NAME.
          NOTE -     THIS PROBLEM IS ONLY PRESENT IF CD20402
                     IS INSTALLED.
          RLM     89/03/01   DB$OPN$
  
 CD20438  PROBLEM  - TWO PROBLEMS WHILE PROCESSING CONSTRAINTS. 
                     BOTH PROBLEMS CAUSED A CDCS ABORT IN DB$FSET.
          SOLUTION - CORRECTIVE CODE IS PROVIDED. 
          NOTE -     THIS PROBLEM IS ONLY PRESENT IF CD20402
                     IS INSTALLED.
          RLM     89/03/29   DB$CPRO
  
 CD20439  PROBLEM  - INTERNAL ACTIVITY COUNTERS ARE ONLY TO 15 BITS.
          SOLUTION - IF THE RSR PARAMETER IS NOT USED,
                     EXPAND THE COUNTERS TO 30 BITS.
                       THAT WILL USE ONE MORE WORD FOR EACH INSTANCE
                       OF OPEN. 
                     IF THE RSR PARAMETER IS USED, ELIMINATE THE COUNTS.
                       THAT WILL USE ONE LESS WORD FOR EACH INSTANCE
                       OF OPEN. 
          NOTE -     THIS CODE IS ONLY VALID IF CD20402 IS INSTALLED. 
  
          RLM     89/04/03   CDCSCOMMN, CUGDFDCLS, RSBFXDCLS, 
                             DB$CLSA, DB$CMT$, DB$DEL$, DB$DPIF,
                             DB$ERRE, DB$FKLA, DB$FKLR, DB$GTI$,
                             DB$INV$, DB$JLH,  DB$RDX$, DB$RD$, 
                             DB$REL$, DB$REW$, DB$WR2$
  
 CD20440  PROBLEM  - CDCS LOOPS WHEN A TRACK LIMIT IS ENCOUNTERED.
          SOLUTION - DOWN THE CURRENT AREA WHEN LOOPING FROM CRM. 
  
          NOTE -     THIS CODE IS ONLY VALID IF CD20402 IS INSTALLED. 
  
          RLM     89/05/11   DB$CLOU, DB$CLSA, DB$CRMR, DB$ERRE,
                             DB$FSET, DB$LOK,  DB$MFO,  DB$MTR, 
                             DB$QRF,  DB$QRFA, DB$RFOR, DB$SCHD,
                             DB$TARE, DB$TQTD, DB$TQTT, DB$UNDO 
  
 CD20442  PROBLEM  - ON TRACK LIMIT, CDCS HANGS TRYING TO ROLL OUT. 
          SOLUTION - AUTOMATICALLY TURN OFF THE CDCS ROLLOUT WHEN AN
                     AREA IS BEING DOWNED DUE TO AN ERROR IN PROCESSING 
                     A REQUEST. 
                     INTRODUCE THE ROLL COMMAND TO PERMIT ROLLOUT TO
                     BE INHIBITED AND REACTIVATED AS DESIRED DURING 
                     NORMAL EXECUTION.
                     ALSO, A DYNAMIC USER COUNT IS KEPT ON THE
                     -B- DISPLAY. 
          RLM     89/04/25   DSMJPDCLS, DB$DDIF, DB$DMGR, 
                             DB$DSL1, DB$DSMF, DB$MTR,
                             DB$TARE, DB$DSTX 
  
 CD20443  PROBLEM  - THE 546 ERROR REPORTS DAMAGE TO A FILE THAT MAY
                     HAVE OCCURED DAYS BEFORE IT IS FOUND.
          SOLUTION - THIS CODE FIXES A PROBLEM THAT COULD DAMAGE A FILE.
          RLM     89/05/03   DB$CLSA
  
 CD20444  PROBLEM  - THE FIT IS NOT RESELECTED FOLLOWING THE
                     CONSTRAINT PROCESSING OF THE WRITE REQUEST.
          SOLUTION - CALL DB$FSET AFTER CALLING DB$CPRO IN DB$WR2$. 
          RLM     89/05/09   DB$CPRO, DB$FKLR, DB$WR2$
  
 CD20445  PROBLEM  - MEMORY IS OVERWRITTEN.  A MONITOR CALL ERROR 
                     RESULTED ON THIS OCCASION. 
                     WHEN A JOB IS DROPPED DURING AN INITIAL SCHEMA 
                     INVOKE, DURING THE PAUSE WHILE THE AUTO-RECOVERY 
                     TABLE IS BEING READ FROM DISK, THE SYSTEM FILE 
                     RETURN ROUTINE RELEASES A CMM TABLE USING THE
                     WRONG ADDRESS. 
          SOLUTION - DURING SYSTEM FILE INITIALIZATION, TAKE THE
                     ADDRESS FROM THE SAL.
          RLM     89/05/13   DB$SFRT
  
 CD20446  PROBLEM  - CRM ERROR 507 IS CAUSED BY A RECURSIVE MEMORY CALL 
                     DURING MEMORY OVERFLOW HANDLING. 
          SOLUTION - SET A FLAG TO PREVENT A RECURSIVE CALL TO DB$LNKG. 
          RLM     89/05/24   DB$CRMR, DB$LNKG 
  
      2ND PROBLEM  - WHEN USING MULTIPLE SCHEMAS, QRF RECOVERY POINT
                     PROCESSING MAY FOLLOW AN INVALID SEQUENCE. 
                     THIS COULD RESULT IN A CRM 507 ERROR FOLLOWING A 
                     RECOVERY.
          SOLUTION - THIS CODE PUTS AN INVALID ADDRESS INTO BASED ARRAY 
                     POINTERS WHEN THEY SHOULD NOT BE USED. 
                     THIS HAS FOUND THREE DIFFERENT PLACES WHERE DB$QRF 
                     HAS NOT CORRECTLY RESTORED ITS POINTER TO THE
                     QFT TABLE. 
                     CONTINUED USE OF THIS CODE MAY CAUSE MODE ERRORS 
                     IN OTHER ROUTINES THAT DO NOT RESTORE POINTERS 
                     CORRECTLY. 
          RLM     89/05/24   DB$FLOP, DB$JFIN, DB$JLCT, DB$JLRS,
                             DB$JRPT, DB$MBA,  DB$MF,   DB$QRF, 
                             DB$SCHD, DB$TFIN, DB$TRFW, DB$TRJL 
  
 CD20447  PROBLEM  - A CDCS TASK MAY BE LEFT AFTER THE NOS TASK HAS 
                     BEEN DROPPED.
          SOLUTION - ON A NOS DROP NOTIFICATION, PURGE AN INVOKE REQUEST
                     IF IT HAS NOT BEEN BEGUN.
          RLM     89/05/25   DB$RCBQ
  
     2ND  PROBLEM  - CDCS MAY ABORT WHILE ATTEMPTING TO 'DOWN' A SCHEMA.
                     IF MEMORY OVERFLOW ACTIVITY OCCURS DURING THE DOWN 
                     CDCS MAY UNLOAD THE DISPLAY DRIVER OVCAP, CAUSING
                     THE ABORT. 
          SOLUTION - LOCK IN THE DISPLAY DRIVER OVCAP.
          RLM     89/05/25   DB$DDIF, DB$DMGR, DB$DSCS, 
                             DB$DSMC, DB$OVCA, SKELETON 
  
 CD20449  PROBLEM  - SOME LOG RECORDS HAVE A TRAILER LENGTH FROM
                     ANOTHER RECORD.
                     ANOTHER SITE REPORTS AK RECORDS BEING LOGGED WITH
                     A ZERO KEY VALUE.
                     BOTH PROBLEMS RESULT FROM DB$QRF OCCASIONALLY
                     RESTORING THE WRONG VALUE TO THE UFT POINTER.
          SOLUTION - REMOVE THE BAD CODE. 
          RLM     89/07/07   DB$QRF 
  
 CD20450  PROBLEM  - CDCS ABORTS DURING RECOVERY. 
                     DB$ACAI EXTRACTS DATA FROM A MEMORY BLOCK THAT IT
                     HAS JUST RELEASED. 
                     WITH CD20446 INSTALLED, THAT CAUSES AN ABORT.
          SOLUTION - EXTRACT MDAIFLAGS BEFORE RELEASING THE INFO BLOCK. 
          RLM     89/06/16   DB$ACAI
  
 CD450P1  PROBLEM  - A BAD RECORD IS LEFT ON THE JOURNAL LOG FILE.
                     IF CDCS ABORTS LEAVING A PARTIALLY WRITTEN RECORD
                     ON THE JOURNAL LOG, THE RECOVERY ROUTINES DO NOT 
                     PURGE THE PARTIAL RECORD CORRECTLY.
          SOLUTION - 1. CORRECT THE ROUTINE THAT PURGES PARTIAL RECORDS.
                     2. FLUSH THE BUFFER DURING THE CDCS REPRIEVE SO
                     THAT IF THERE IS A REPRIEVE, PARTIAL RECORDS WILL
                     NOT BE LEFT. 
          RLM     89/06/28   DB$RDLG, DB$SFRT 
  
 CD450P3  PROBLEM  - DBREC DOES NOT WAIT FOR A BUSY FILE. 
          SOLUTION - COPY LOGIC DB$ATCH TO WAIT FOR TEMPORARY PFM STATES
          RLM     89/06/20   DB$ATWR, SKELETON
  
 CD450P4  PROBLEM  - JOBS REMAIN WITH CDCS AFTER BEING DROPPED BY NOS.
          SOLUTION - DONT TRY TO INTERRUPT A JOB DURING LOGGING.
                     DELAY THE TERMINATION UNTIL LOGGING IS COMPLETE. 
          RLM     89/06/25   CDCSCOMMN, DB$CMT$, DB$IREC, 
                             DB$JLCT, DB$TQTT 
 CD20451  PROBLEM  - A USER WITH TOO MANY LOCKS ABORTS CDCS 
          SOLUTION - IMPLEMENT A TRANSACTION LOCK LIMIT.
          RLM     89/06/23   ARTDCLS, DB$ABT$, DB$AINT, 
                             DB$ERR,  DB$ERRE, DB$ERRM, 
                             DB$LOK 
  
 CD2A614  PROBLEM  - THE FILE POSITION CODE IS NOT RETURNED TO THE USER 
                     AFTER A "WAITING FOR LOCK" MESSAGE IS ISSUED.
          SOLUTION - RESTORE THE REQUEST ERROR STATUS AFTER THE MESSAGE.
          RLM     89/09/26   DB$LOK 
  
          ALSO     - FIX A PROBLEM IN CD20451.
                     THE TLL LIMIT IS NOT CORRECTLY FORMATTED IN THE
                     ERROR MESSAGE. 
          RLM     89/09/26   DB$ERRE
  
  
 CD20452  PROBLEM  - THE DISPLAY DRIVER OVCAP MAY UNLOAD DURING 
                     DISPLAY INITIALIZATION OR COMMAND EXECUTION. 
          SOLUTION - DEFINE ALL OF THE OVCAP ENTRY POINTS AS
                     INTERRUPTIBLE SO ANY ENTRY WILL LOCK IN THE
                     OVCAP. 
                     UNLOCK IT WHEN IT IS NO LONGER IN USE. 
          RLM     89/07/12   DB$MTR, DB$OVCA
  
 CD20452
     2ND  PROBLEM  - A TRAP SET BY CD20446 WENT OFF.
          SOLUTION - RESET THE FET POINTER. 
          RLM     89/07/18   DB$QRF 
  
 CD20452
     3RD  PROBLEM  - CDCS SOMETIMES ABORTS WHEN A USER JOB IS DROPPED.
                     THIS IS A PROBLEM CREATED BY THE CODE FOR CD20450
                     (CD450P4). 
                     THIS MAY HAPPEN IF A USER IS DROPPED WHILE IT HAS
                     NO OUTSTANDING REQUEST.
                     GARBAGE LEFT IN THE RCB CAUSES A WILD JUMP.
          SOLUTION - CLEAR RCIR.
          RLM     89/07/18   DB$RCBC
  
 CD20453  PROBLEM  - JOBS THAT ARE DROPPED BY NOS STILL HANG IN CDCS. 
          SOLUTION - WHEN A JOB IS WAITING FOR AN EXTERENAL EVENT SUCH
                     AS AN I/O REQUEST OR AN SFCALL WHEN IT IS ABORTED, 
                     WAIT TEN SECONDS THEN OVERRIDE THE SETTING OF THE
                     COMPLETE BIT.
          RLM     89/08/14   DB$RCBQ, DB$TQTT 
  
      2ND PROBLEM  - JOB HANGS ON A WRITE TO THE TRF. 
                     WHEN WRITING A BLOCK LARGER THAN 3000B WORDS,
                     DB$QRF WILL SAVE AND RESTORE THE FIRST WORD OF THE 
                     NEXT MEMORY BLOCK. 
                     WHEN THAT MEMORY BLOCK IS A TRF FET WITH AN ACTIVE 
                     REQUEST, THE COMPLETE BIT IS SET AND THEN LOST 
                     WHEN DB$QRF RESTORES THE WORD. 
          SOLUTION - LEAVE AN UNUSED WORD BEFORE THE FET. 
          RLM     89/08/14   DB$BEG$, DB$CMT$, DB$RUTR, DB$UNDO 
  
 *L780*    ************************************************ 
 CD2A619  PROBLEM  - DBRCN FAILS WHEN CD2A588 AND CD2A608 ARE INSTALLED.
          SOLUTION - USE THE NEW SASCMAXLOG FIELD ESTABLISHED BY CD2A588
          RLM     89/12/01   DB$RVRS
  
 CD2A620  PROBLEM  - ERROR 603 IS RETURNED ON A WRITE.
                     THE USER MAY EXPECT A 446, BUT NOT A 603.
                     THIS HAPPENS ONLY IF IMMEDIATE RETURN IS SET.
                     IF IMMEDIATE RETURN IS NOT SET, THE REQUEST
                     IS DELAYED WAITING FOR THE LOCK AND THEN WILL
                     PROBABLY RETURN THE 446 ERROR. 
          SOLUTION - DURING A WRITE, IF THE RECORD IS LOCKED
                     RETURN A 446 TO INDICATE KEY ALREADY IN USE. 
                     DO THIS EVEN WHEN IMMEDIATE RETURN IS NOT SET. 
          RLM     90/01/17   DB$LOK 
  
 CD2A621  PROBLEM  - CRM ERROR 507 OCCURS WHEN THREE SEEKS OVERLAP. 
          SOLUTION - REMOVE THE UFSEEK FLAG THAT WAS INSERTED BY
                     CD2A585 AND CD20417. 
                     CLEAR THE APPROPRIATE FIAT FIELDS IF ANOTHER USER
                     HAS USED THIS FIT BETWEEN SEEK CALLS.
                     THIS WILL CAUSE CRM TO REINITIALIZE THE SEEK.
          RLM     90/03/15   CDCSCOMMN, DB$GETN, DB$SEK 
  
 CD2A622  PROBLEM  - CDCS ABORTS WITH CM OUT OF RANGE 
          SOLUTION - USE THE BUSY FIT POINTER FROM THE OFT INSTEAD
                     THE UFT BECAUSE THE OFT WONT GO AWAY.
          RLM     90/03/12   CDCSCOMMN, DB$GETN, DB$SEK 
  
 CD2A623  PROBLEM  - CDCS THRASHES DURING HEAVY MEMORY CONTENTION.
          SOLUTION - REDUCE THE THRASHING BY REDUCING THE NUMBER OF 
                     SEEKS THAT WILL PERMITTED. 
                     DFSEEKLIMIT IS REDUCED FROM SIX. 
          RLM     90/03/15   CDGDFDCLS
  
 CD2A624  PROBLEM  - CDCS INTERNAL ERROR--DB$FSET 1 
          SOLUTION - SET THE RIGHT OFT LOCATION BEFORE CALLING DB$DPIF
          RLM     90/07/27   DB$ERR 
  
 CD2A625  PROBLEM  - PRIOR RECORD LOCKS MAY NOT BE RELEASED IF A READ 
                     IS ABANDONED BECAUSE THE KEY DOES NOT EXIST. 
          SOLUTION - CALL DB$LOKD FROM DB$FTEX (AAM EXIT ROUTINE).
          RLM     90/10/05   DB$FTEX
  
 CD2A626  PROBLEM  - CDCS SHOULD NOT USE DELINKED MEMORY BLOCKS.
          SOLUTION - POISON THE LINKAGES TO CAUSE AN ADDRESS OUT OF 
                     RANGE IF CDCS DOES ACCESS IT AGAIN.
          RLM     90/11/16   DB$LNKD
  
 CD2A627  PROBLEM  - JOBS MAY HANG WAITING FOR RECOVERY POINT INTERLOCK.
          SOLUTION - SET THE ENDCASE SWITCH, RCRPTI, IN THE RECOVERY
                     POINT INTERNAL TASK. 
          RLM     91/01/31   DB$JRPT
  
 CD20456  PROBLEM  - "CDCS INTERNAL ERROR--DB$MFO9" OCCURS WHILE
                     ALLOCATING AN EXTRA RCB FROM DB$WRP. 
          SOLUTION - ABANDON THE MEMORY REQUEST IF IT IS REJECTED.
          RLM     90/01/03   DB$MFI, DB$WRP 
  
 CD20461  PROBLEM  - CDCS MAY LOOP DURING AN OPENM CALL WHEN THE SBI
                     PARAMETER IS USED. 
                     AAM CHECKS THAT THE MEMORY IS AVAILABLE BEFORE IT
                     OPENS A FILE, THEN IT ASSUMES THAT NO MEMORY 
                     OVERFLOW IS GOING TO OCCUR.
                     THE USE OF THE SBI OR SBL PARAMETER MAY CAUSE
                     MEMORY OVERFLOW ACTION.
                     THIS CAUSES A RECURSIVE CALL TO THE AAM MEMORY 
                     MANAGEMENT ROUTINES WHICH RESULTS IN AAM LOOPING.
          SOLUTION - EXEMPT OPENM FROM THE SMALL BLOCK LIMIT. 
          RLM     89/12/01   DB$OPNM
  
 CD20464  PROBLEM  - CDCS TERMINATES WITH "RANDOM ADDRESS NOT ON FILE"
                     DURING THE INITIALIZATION RECOVERY PHASE.
                     THIS HAPPEN BECAUSE
                     QRF LOGS BLOCKS THAT HAVE NOT BEEN WRITTEN YET 
                     AND THEN TRIES TO REWRITE THEM DURING RECOVERY.
          SOLUTION - DO NOT LOG BLOCKS THAT HAVE NOT BEEN WRITTEN.
          RLM     90/03/21   DB$QRF 
  
 CD20469  PROBLEM  - CDCS LOOPS IF THE OUTPUT FILE IS DUMPED TO THE 
                     PRINT QUEUE WHILE JOBS ARE BEING DROPPED.
          SOLUTION - CALL DB$RCLM INSTEAD OF DB$RCLL WHILE COPYING THE
                     OUTPUT FILE. 
          RLM     90/04/18   DB$PROF
  
 CD20471  PROBLEM  - CDCS ABORTS WHEN A USER TRIES TO INVOKE ON A 
                     SUBSCHEMA AFTER A USER HAS BEEN DROPPED FROM THAT
                     SUBSCHEMA BECAUSE THERE IS NOT ENOUGH MEMORY 
                     FOR THE CONDENSED SUBSCHEMA TABLE (CST). 
                     THIS HAPPENS BECAUSE THE ACTIVE SUBSCHEMA LIST 
                     (ASL) IS LEFT IN MEMORY FOR THAT SUBSCHEMA.
                     THIS LEADS CDCS TO THINK THAT THE CST IS IN MEMORY.
                     CDCS DESTROYS ITSELF BY USING A CST THAT IS NOT
                     IN MEMORY. 
          SOLUTION - IF THE CST IS NOT ALLOCATED, RETURN THE ASL. 
          RLM     90/07/09   DB$ASLC, DB$SWPI 
  
 CD20472  PROBLEM  - CDCS IS LOOPING IN AAM.
                     THIS HAPPENED BECAUSE CDCS RETURNED A FILE WHILE 
                     ONE OF IT USERS STILL HAD THE FILE OPEN. 
          SOLUTION - A SOLUTION HAS NOT BEEN FOUND. 
                     THIS TRAP CODE WILL ABORT CDCS BEFORE THE FILE 
                     HAS BEEN DAMAGED.
                     PLEASE SUBMIT THE RESULTING CDCS DUMP WITH A 
                     NEW CDCS PSR.
          RLM     90/07/27   DB$CPRO, DB$OFTR, DB$OPN$, DB$TQTD 
  
 CD20473  PROBLEM  - CDCS MAY ABORT DURING RECOVERY.
                     THIS WILL HAPPEN IF AN AREA HAS BEEN DOWNED AND
                     RECOVERY IS ATTEMPTING TO BACK OUT AN UNCOMMITTED
                     TRANSACTION. 
          SOLUTION - DO NOT USE THE FIT POINTER FOR A BAD AREA. 
          RLM     90/07/26   DB$UNDO
  
 CD20475  PROBLEM  - CDCS INTERNAL ERROR--DB$OFTR 
                     CDCS COMPUTES THE NEEDED FIT REDUCTION INCORRECTLY 
                     WHEN SEVERAL JOBS ARE ABORTING AND ONE IS PAUSING
                     TO WRITE THE JOURNAL LOG RECORD FOR THE CLOSE. 
          SOLUTION - CORRECT THE PROCEDURE FOR REDUCING THE OPEN COUNT. 
          RLM     90/08/16   RSBARDCLS, DB$CLSA 
  
 CD20476  PROBLEM  - A JOB IS DROPPED BY NOS BUT IS RETAINED BY CDCS. 
          SOLUTION - NONE.
                     ONE DEFICIENCY HAS BEEN FOUND THAT PROBABLY
                     DID NOT CAUSE THIS PROBLEM.
          RLM     90/09/24   DB$RCBQ, DB$TQTT 
  
 TRAP476  PROBLEM  - TRY TO IDENTIFY THE CD20476 PROBLEM
          SOLUTION - SET A TRAP 
          RLM     90/09/24   DB$MTR 
  
 CD20477  PROBLEM  - ERROR 446B MAY BE INCORRECTLY RETURNED ON A WRITE
                     REQUEST WHEN A CONSTRAINT IS INVOLVED. 
          SOLUTION - RETURN THE ERROR WHEN THE KEY OF THE RECORD BEING
                     WRITTEN IS LOCKED, 
                     NOT DURING CONSTRAINT PROCESSING.
          NOTE     - THIS CORRECTION IS DEPENDENT ON CD2A620. 
          RLM     90/09/24   DB$LOK 
  
 CD20480  PROBLEM  - CDCS ABORTED WHEN A "+" WAS ENTERED ON K DISPLAY.
          SOLUTION - RESET THE INTERNAL PAGE BUFFER POINTER WHEN THE
                     PAGE BUFFERS ARE DEALLOCATED.
  
                     THIS MODIFICATION ALSO REMOVES SOME TRAP CODE
                     THAT WAS INSERTED TO DB$MTR BY CD20475.
          RLM     91/02/04   DB$DMGR, DB$MTR
  
 CD20481  PROBLEM  - IT IS POSSIBLE TO APPLY A QRF TO THE WRONG FILE. 
          SOLUTION - CHECK THE QRF FOR VALIDITY ON THE FILE TO WHICH
                     IT IS BEING APPLIED. 
          RLM     91/04/19   DBQRFA, DB$QRFA
  
 CD20482  PROBLEM  - EXTRANEOUS RECOVERY POINTS ARE WRITTEN IF JOBS 
                     HAVE DONE NO UPDATES.
          SOLUTION - DO NOT TAKE A RECOVERY POINT UNLESS THERE HAS BEEN 
                     AN UPDATE SINCE THE LAST RECOVERY POINT. 
          RLM     91/03/19   SALDCLS, DB$DEL$, DB$JRPT, 
                             DB$REW$, DB$TQTD, DB$WR2$
  
 CD20484  PROBLEM  - CDCS INTERNAL ERROR-- DB$FKLA 2
                     CDCS ABORTS WHEN THE SWAP SEGMENT TABLE IS FULL. 
          SOLUTION - ENLARGE THE SWAP SEGMENT TABLE AND DEFINE AN 
                     ALTERNATIVE PROCEDURE FOR ENLARGING THE FKL TABLE
                     WHEN THE SWAP SEGMENT TABLE IS FULL. 
          RLM     91/04/19   DB$FKLA, DB$SWI
  
 CD20485  PROBLEM  - CDCS ABORTS DURING AN "UP SCHEMA". 
                     THIS HAPPENS BECAUSE CDCS TRIES TO LOAD TWO
                     OVERLAYS AT THE SAME TIME. 
          SOLUTION - PREVENT DB$FTEX FROM CALLING DB$ERR OR DB$ERRE 
                     DURING "UP SCHEMA" WHICH PRETENDS TO BE
                     SYSTEM RECOVERY. 
          RLM     91/05/03   DB$FTEX
  
 CD20487  PROBLEM  - IF A DATA FILE IS BUSY DURING AUTO-RECOVERY
                     DB$QRFA WILL DOWN THE AREA BUT NOT THE SCHEMA. 
                     THE QRF BLOCKS ARE NOT APPLIED TO THAT AREA. 
                     THEN THE QRF FILE IS RESET SO THAT THERE IS NO 
                     SECOND CHANCE TO RESTORE THE BUSY FILE.
          SOLUTION - DO NOT RESET THE QRF IF ANY FILE HAS NOT BEEN
                     RESTORED TO ITS RECOVERY POINT.
          RLM     91/06/26   DB$QRFA
  
 CD20488  PROBLEM  - CDCS MAY FAIL TO TAKE A RECOVERY POINT WHEN IT IS
                     TERMINATED OR WHEN A "DOWN,SCHEMA" IS DONE.
                     THIS IS ONLY A PROBLEM WHEN CD20482 IS INSTALLED.
          SOLUTION - SET THE UPDATE FLAG AT SEVERAL POINTS DURING 
                     AN UPDATE. (WHEN WRITING TO ANY LOG) 
          RLM     91/07/10   DB$DEL$, DB$REW$, DB$WR2$
  
 *L797*    ************************************************ 
 CD2*92              COPYRIGHT CODE FOR CONTROL DATA SYSTEMS, INC.
          RLM     92/08/25   COPYRDCLS, DBQRFI, SKELGEN 
  
 CD2A628  PROBLEM  - THE FSTT IS LEFT ON THE QRF AFTER A DOWN SCHEMA. 
          SOLUTION - CLEAR THE QRF EVEN THOUGH THE JLF RECOVERY POINT 
                     IS NOT BEING TAKEN.
          RLM     91/09/16   DB$TQTD
  
 CD20489  PROBLEM  - LOCK REQUEST HANGS EVEN THOUGH THE LOCK HOLDER 
                     HAS BEEN DROPPED.
                     THERE IS A SECOND LOCK HOLDER THAT IS NEVER
                     IDENTIFIED IN A "WAITING FOR LOCK" MESSAGE.
          SOLUTION - ISSUE A NEW "WAITING FOR LOCK" MESSAGE IF THE LOCK 
                     HOLDER CHANGES, BUT AT A MAXIMUM RATE OF EVERY 
                     EIGHT SECONDS. 
          RLM     91/09/04   DB$LOK, DB$SFST
  
 CD20490  PROBLEM  - "UP,SCHEMA" MAY FAIL DURING THE RECOVERY PHASE.
                     CDCS DISCONNECTS THE EXISTING REQUEST QUEUE DURING 
                     A RECOVERY PHASE AND IS NOT PREPARED TO RECEIVE
                     ANY NEW REQUESTS.
                     DB$QRFA AND DB$RDLG HAVE CALLS TO DB$RCLL, WHICH 
                     IN TURN CALLS DB$IREC TO ACCEPT NEW REQUESTS.
          SOLUTION - DURING THE RECOVERY PHASE, THE DB$RCLL CALLS 
                     ARE REDIRECTED TO DB$RCLR. 
          RLM     91/11/21   SKELETON 
  
 CD20493  PROBLEM  - CDCS ABORTS DURING A USER INVOKE IF THE DATABASE 
                     PROCEDURE FILE IS NOT AVAILABLE TO BE ATTACHED.
                     A RELATED PROBLEM WAS FOUND IN THE ATTACH
                     PROCEDURES FOR THE QUICK RECOVERY, RESTART-ID, 
                     AND TRANSACTION RECOVERY FILES.  THOUGH THEY WOULD 
                     HAPPEN VERY RARELY AND BE IMPOSSIBLE TO REPRODUCE. 
          SOLUTION - SAVE THE SHARED VARIABLES WHILE CALLING DB$ATCH
                     AFTER A FILE-BUSY OR EQUIVALENT STATUS HAS 
                     OCCURRED.
          RLM     92/03/23   DB$DFIN, DB$QFIN,
                             DB$RFIN, DB$TFIN,
  
 CD20494  PROBLEM  - DBREC IS UNABLE TO READ PAST A TRASHED RECORD ON 
                     THE JOURNAL LOG IF THAT RECORD IS FOLLOWED BY AN 
                     END-OF-RECORD. 
          SOLUTION - CORRECT DB$RDLG TO RETURN AN EOR STATUS INSTEAD
                     OF A SHORT TRASH RECORD. 
          RLM     92/04/07   DB$RDLG
  
 CD20496  PROBLEM  - "ADDRESS OUT OF RANGE" WHILE LOCKING A RECORD. 
                     A JOB HAS BEEN TERMINATED WITHOUT A COMPLETE 
                     CLEANUP.  A LOCK ENTRY WAS LEFT BEHIND, POINTING 
                     TO WHERE A TASK QUEUE TABLE HAD BEEN.
          SOLUTION - CORRECT A DB$PUSH.  THIS MIGHT AVOID THE PROBLEM.
                     ALSO, CHECK THE POINTER FROM THE ALT TO THE TQT. 
                     IF THE TQT HAS BEEN RELEASED, RELEASE THE ALT. 
          RLM     92/08/04   DB$LOK 
  
 *L803*    ************************************************ 
 *L826*    ************************************************ 
 *L840*    ************************************************ 
 *L847*    ************************************************ 
 *L851*    ************************************************ 
 *L859*    ************************************************ 
 *L871*    ************************************************ 
 CD2A629  PROBLEM  - RECOVERY MAY FAIL IN THE YEAR 2000 
          SOLUTION - PROVIDE A USER DEFINED COLLATING SEQUENCE FOR THE
                     DECADE DIGIT OF THE YEAR.
          RLM/PCS.   99/04/12.  DB$SORT 
  
  
      * * * * * * * *  END OF HISTORY  * * * * * * * *
  
