REPORT ON COMPUTER USAGE OF ACCOUNTS UNDER THE IBM/M.I.T. JOINT STUDY AGREEMENT GMIS SOFTWARE DEVELOPMENT NEEMIS Staff Systems Programming Group Energy Laboratory in Association with the Alfred P. Sloan School of Management Working Paper No. MIT-EL-76-018WP July 1976 IBM/M.I.T. JOINT STUDY PROGRESS REPORT - PART I GMIS SOFTWARE DEVELOPMENT July 1976 C()NT '[' ('' NI' '~11TSf3 . ............ 1.Introduction... . 2. Prloqress in Softwire Developmcntt . . . . . . . . . . 1 . SEQ UEL -21e. 2 2.2. TPRANSACT ........ .. .......... ........... . . . . ....... 3 2.3. Multi-UserInterface (UI) ..... .. 2.4. SFQIHELDatabase DEscription and 2.5. PAM Utilization 2.6. Applications 2.7. New GMIS Wcrkspace. Packaqes 2.7.2. 2.7. 3. ... . . . 5 . 5 .... . . 5 Inter-machineCommunicatiorns Mechanism . .. 7 ;MIS GMIS fUsage . . . 3. Computer Tchnoloqies Advantages of (TS Mcnitor . . Configluration . . 7 cn tplementation . of New 8 . . . . . . . . By RxamFle 2.7.5. Query nhaincements .. .. Used in the GMIS Effort . . BM/MTt Jcint S0y . . 8 . 9. 5. uqqestions for Technologic!i Tprovements. . . .. A: Current UJrF . of I4 . Appendix B: Project 1975. 8 Env:ironmentin GMIS Develorpment ............ Development 4 5 cf Nw 2.7.14. Current Prrcgrss Appenilix . 4. 4 ackup Utilities . ... esin....... 2.7.1. Explnaticn 4. 1 Accounts . GMIS Progryosq for . - of iscusicn Jose, August,19759 ............ . . .11 August 22, ..................... Appendix C: o)vrview 1 Systems ... Report . 13 Topics at I:BMSan . . .. . 18 Reloase 3. .. Appendix D: Log of SF(t JFT Appendix : ApFendix : MIT-SEQUI . : XTRAM Fxtel . sions . . . . . . . .. Appe-nlix H: TPANSACT Appendix I: Appendi J: TRANSACT PrJ, Command Appendix K: (oima.ns (Sv . . . . . . . . . . . . . . . . tax) -* 31 33 . .37 Fxplanation of I'RANSACT ommands . . . . .. licro Processor Proposa . 42 1. 46 Proposal for TANSACT' Transaction Fditor . . pT)FDESC Conmand... Appendix M: Bulkloading of a Dnatahsc (L3) Appendix N: Creating Appendix 0: Saving and Tcstcrii) the . . . . .67 . . . . . Bfi.-ackupDumpsF of S FJ FL, Da+abases a SFOIEL . . . . . at.ahas i . . . . . Appendix Q: Using SELPP Appendix R: Datahase Utili2ation Analysis. . .73 atabase . Appendix P: Savinq and Pestorivq 64 ......... SEQPFST). . . 21 . . . . . . . . . .39 Using DBSCAN) * . Append ix L: (SEQBACK, *. .. Limitations cf .SFQ!TT.:?'le.~S:' 3 . . . . . Transaction n1trfcc +Y)>,scription- T Appendix i'c "od i (n' . . . . . . . .75 .74 (ESAVE, . .. . . ............... .80 . . . . . . 1 G1S Progre;s Programming Group Syst-nr 1. Po.port: Introduction This report will detail our progress to date systoms programming and development effort relating on the to the This systems effort has primarily IB8/MIT Joint Study. Management focused on the develorment of the Generalized Information facilities. (GMIS) and System many component software its Appendix A provides a list of each V/370 used in the GMIS systems development effort, how is being used. ach account GMIS Progress Our last development this Report detailing Appendix E. with work our software dated August 22, 1975, is included efforts, report as report account being and describes W? will subsequent done begin this to the with progress August 22, 1975 report. Thore 1) will be five majcr sections A discussion to this report: made of ptogress in each area of GIS software development. 2) A description cf the computer technologies used in this software development effort. 3) A discussion cf the advantages of developing this administrative the sot:tware, hardware and system in environment provid4edby the IRI/MIT Joint Study. 1 improvments 4) Some suggost icns for fechnological that would improve the development process for GMIS, and would improve 5) A the use of the system. statement of have what we learned during our system development efforts that would assist future design and implementation efforts of ;asystem like GMIS. 2. ProqrEess in Software Dve1loment This section descrites oftware development efforts August 22, 1975 GMIS that have taken place since thWe will assume that the Progress Report (Appendix A) . with the motivation for GMIS, the uses of reader is familiar GMI a this the GIS architecture. information Manaqemnt nd is nne document which provides "GIMIS:An Fxv'primental System for Data Analysis", by John J. Donovan and Henry . -2-- Jacoby (MIT .Lahoratory Working Paper MIT-EL-75-011WP, nergy Septemhber, 1q75). 2.1.sUL Last summer, elease 2 of SEQUEL from San Jose was Our tested extensively for performance characteristics. which are outlined in findings were relayed to San Jse, sections 3 and 5 of the discussion overview used there last summer (Appendix C). we learned about the System but R, Their overall response use of SEUETL in the they were not was to use what development of about enthusiastic making changes to SEQUEL elease 2 to improve performance. Several changes have been made multi-segment RAM code over the 1) data type include: The £EC (FIXFr SEQUEL to supplement the 2) These changes to DECIMAL) was added existing NUM and CHAR data types. SEQUEL Farser The to the SEQUEL, XRAM and past year. and execution transaction were modified to accept the unary + and - operators routines as prefixes to numeric literals. 3) activated, A was added LOG facility sends the fellcwing to SEQUEL which, data items to the if STATPRI file: - the SEQUEL statement - the time when the transaction was entered -the transaction type (ANTYP) - a list of all columns and tables referenced in the statement. 4) Software declaration installed 5) "hooks" installed at the Multi User Interface An EXTERNAL rray SFQ[]EL Transaction of the were macros tc allow security number of adde9 SEQUEL outptut rows for formatting the (MUII)level. called1 LPAD was nterface (TRANs) blanks in features to inform SEQUEL to be added to the UFI programs to the left of columns in purposes. 6) Several SEQUFL and XRAM routines were modified to handle a problem that developed when inversions were made on When a column certain columns containing numeric data. contained a numeric value that was either nonpositive or greater than the inversion would would respond greatest ID (2**21-1), the successfully when used. created, but The most value of a RAM apparently be errorecusly 3- straightforward tchnique to p.vent this from occurring was to install a checking mechanismthat would permit inversions to be creatpd and manintained only on columns with data in the range of 1 to 2**21-1. Extonsions to XRAM were made by Ray Fessel to implement this mechanism, and SEQUEL was modified to activate this inversion suppression when necessary. The result of these modifications is that the performance benefits of SFQUEL/XPAM inversions of columns cannot be used in columns with data that is out of a relatively narrow numeric rang. The SEQUL error messiages were revised 7) easier to understand 8) Various to make them by users. SF, TQUFL, XPA RAM bugs ad were identified and fixed. More included detailed dccuuentition in the following 1) Log of SQUTJT 2) Limitaticns of SEQUL 3) Transaction Release 3 4) (Appendix Mcdifications Interfaco 3 (Appendix Pescripticn (AFpendix is - ) MIT/SFQUEL r,). TPANSACT last A version of TANSACT similar GMIS Progress Rcecrt was detail changes (Appendix D) Roase 2.2. since these F) XRAM Fxtpnsions operational on document.S: September, the TRANSACT syntax to that described in the debugged and has been 1)75. The following documents -n1 explain the use of each command: 1) TRANSACT Commands 2) Explanation of TRANSACT Commands (Appendix I). A numbor of extensions (AppeiOix _n to ) TRANSACT have een proposed, inclu d ing: 1) The implementation 2) The TRANSACT FUN f a SET LOG command, activate the new SEQUElT IOG -acility previous sction cf this reFort. facility, similar implemented last "TRANSACT RN J). coiman:. macro processor. to CMS FXFC, summer. Tt is Command Macro described was designed doscribed in to in the This and partially the document Proc-esor User Guide" (Appendix -4i on i mp lemntat The, 3) of Ono proposal fcr this editor. report as Appendix K. 2.3. Multi-User other UserInterface SEQUEL data the base machine is the routine that to communicate with programs. machines containing applications virtual The MUT is transaction (MUI) Interface The GMTS Multi permits TIRANSACT a rlitor is included with this actually (UFI) Interface a SEQUEL 1iser Friendly residing on the GMIS account as the SEQ3 MODULE. Access control features were added to the original UI, SEQ2, which can be invoked by specifying the option SECURE with the (TVM) Machine . This replaced facility of thP GMIS under the new GMIS int?r-machine part design. section 2.7. 2.4. Virtual the Transaction when activating STARTexec is system The new GTS design SEQUEL Database Description hbein currently is communication-, in described and Backup Utilities additional SEQUEL utility programs have been Several which permit users to retrieve a description of a written of SEQUEL database and to create everal different types backup copies of all or part of a database. These utility routines include: SETOrTP'L tbles 1) T)BDESCR - describes cn the +erminal catalog information (Appendix L) . 2) I, TB 3) SFQDUMP - the standard GIS - the bulk prints line loader (!JUFL first and or SFQUEL printer M). (Appendix backup utility. An entire SEQUEL database is dumF?d to CMS files in bulk loader (LTDB) format (Appendix N). SEQBACK and SECREST 3) to create and relcad a taie database. These routincs - uilize the copy of the disks CMS DDF command containing the but arp are faster than SEOClUMP, less flexible in their use (Appendix). 4) create DBSAVE and DESCAN - uiso multiple backup copies .SEQBACK and SEQRFST of SEQUEL databases to on a single tape, and creates an idlntifying label for each saved database 5) creates user on the tape (Appendix P). SELDUMP- ulk a selective loader CMS files (Appendix Q). backup facility, which for tablesspecifiedby the 2.5. RAM Utilizaticn Ray vessel Wctrksace has frcught lp an API workspace contains functions which masure the utilization a AM(used by SQI'TI,) database. are in Appendix R. that of pages in Instructions for its use 2.6. Applications Packagfes Several under VM/370 applicaticns packaq-s have been brought up this past year for use in GMIS. Each one of these systems can communicate with the GMISdatabase through the use of punched CMS files and the VM spooling facility. Specialized communicaticns interfaces for each package will be built under the new MIS design (Section 2.7). The following applications packages been made operational: 1) TRPOLL 2) TSP 3) BMD 4) TPIAN 5) DYNAMO 6) STATPAC 7) MPSX and systems have II The packages in thoe forthcoming will bE briefly described and referenced GMTSU.Tc.r Gid. 2.7. New GMIS Design the Beginning in June, we launcbd an effort GMIS new system to communications software, trom the GMIS prototype this section, presented. descriptions a utilize and some VM to redesign inter-machine to apply what we have learned system to an improved rief dEscription of design. the new GMIS will In be More detailed sys+m level and user level o the system are currently being written. 2.7.1. explanation of NewGMISConfiguration Figure 1 presents an cvervilw of the now GMIS. There are five types of virtual machines defined for this configuration, which allcws any available user application packages to communicate with any available database systoms. Note that the new GIS allows for more than one database machine. -(GF I ir. I IS IMPLE ENTATION VERVIEW NEw MANAGER (ACTIVATES AND MONITORS COMMUNICA- VIRTUAL TION VIRTUAL MACH NE MACHINES) m m ~IImm USER TRANSACT VIRTUAL APLEPLM (PUll) MACHINES r.. $1: ·i, ! I , CoMmuNICATION PiL/I VIRTUAL APLTO TO IIl MACHINES SEQUEL INTERFACE ' -"- ---- INTERFACE IA' III .' r 'N~ -'s, / / . / '< . I I I/', / ITw DATA RASE SEQUEUGMIS VIRTUAL vC-.HINE [VSAM/Gl _WES/GMIS [_.J - - MCHINES, USAGE GATHERS USAGE STATISTICS MbNITOR = VM . I _ AND COMMENTS FROM USER AND DATA BASE VIRTUAL MACHINES -7- fnier to snd scheme, a user vi rtiil this a query to a partictlldl machine (UVM)wishing ;atabase virtual machine (DtVM)must first signal the Manajrr Virtual Machine (MGR). by signals The MGR is always logged in, and is activated it looks in from UVM's. After the MGPhas bpen signalled, its MIS directory Virtual Machinetat ID, the to log AUTOLOGfacility Assuming that with the signalling UVM. is asscciited finds the When it for the ID of Communications file) (a CS there MrP ses Releas 3 n differenttypesof UVM(e.g. a and m ifferent TRANSACT, TROLL, APL), the VM/370 in the appropriateCVM. types DBVM (e.g. of ways a (n x m) possible SEQUEL, QBX, IMS), then there arc a TROLL For example, UVM's can communicate with a DPVM. user may want to query an ITMS dat tbase, or an APL user may of these Each a SFQUEI da'tabase. want to query communications a r-j uires combinations user/database interface, which will fcrmat user queries for the particular format the reply from the database system, signal the DVM, DBVM for the UVM, and signal processed. These functions JVM that the query has been wrc previously handled by the (MUI). nterface GMIS Multi-User the Now, a separate interface FJVM/DPVMcombination will be written that each have DBVM's will The UVM's and resides in the CVM. standard interfaces, and all query and reply formatting and intermachine communications will be handled by the CVM. program for each as (n x m) interface e as many there could (Although iinder consideration will be programs, many of the iterfaces nly activate its CVM through the MGR A UVM need the same). with the appropriate irterfac- program, and any to send, has a query the rest of the wcrk. it simply signals 2.7.2. its time a UVM CVM, which does Inter-machine coinunications Mechanism Much of the spooled virtual card read/punch mechanism facility that was used for the inter-machine communications will be replaced with the new SPY of the GMIS prototype memory-to-memory inter-machine IBM Yorktown). The SPY routines than the spooling mechanism. 2.7.3. GMIS Usaqe communications send soft ware (from messages much faster Monitcr A Usage Monitor VP (UMVM) will be installed that collects data from DBVM's (e.g. quories processed, execution statistics) and TJVM's (e.g. descriptions of applications done cn the CVM). work being later that can be rtrieved analysis. It will generate for performance a log file and usage 2.7.4. Current Progress on Implementation of New GIS been partially simulated VM system has At this time, the new GIS tested in a implemented and is heing VM/37C runs under the production environment, which The Cambridqe Scientific Center. operatinq system at the Machine can AU'?OLO(a communications Virtual hy a User Virtual Machine, and eing sigral]ed Manger Virtual Machine after interface the TRANSACT/SEQUFL Some of the for testing. for the near future tor the additional CVMis almost ready CVMinterfaces include TROLL/SEQUJEL, planned APL/SEQUJEL, and APL/GIS. xample Enhancements 2.7.5. Quer! By front We are investigating the possibility of rebuilding the nd of the Query By Example (QBX) database system to generate a less cryptic rEL/DML that can take advantage of the efficient relational operators that have been built into QBX. This front end could make use of a TANSACT-like user interface. 3. Computer Technologies Ued in the GMIS Effort GMIS, we have In developing made extensive use of many made available through the software and hardware facilities The software facilities IBMCambridgeScientific Center. used include: 1) Language proce~scrs - Assembly Language - P/I Optimizing Compiler - FORTRAN . . - APLS.V ~~~~~~~~~~~~~~~~~~~~~~~~~~~ · - SCRIPT 2) for documentation). VM/370 system software Modification of V ASCII adaptation of ASCII terminals to VM translate tables routines - Us; of many I/C and communications call the CMS modules directly through BAL interfaces. - Ulse of simulated VM1/370under to test new GMIS 3) and SPY code. IBM experimental code for that production VM/370 - :;}OTIFI. - - /XpA , / r _ AM BX - SPY The facilitics hardware- addition disks, to the tapes) 1) in use I in GMI.S development, CPU, printers, stan.lard dvic('- 'iuod (.g. ncludle: Termin als IBM 2741 - - IBM 3270 - Telctype - TY - co~rratiY1c :i:-:-lay devices (using light pens). 2) Telocommlnicationsfcl ities or 2741 lines, - IBM 370a4 pregrammel 116 and 300 band TTY lines - MIT extensio ns conn.-ctielto VM/370 of IBM/M1 Joint 4. Advantages t.Fdy ports. Environment in GMIS Develo2pment The technicl I GMIS and c eritio?- l environment provided IBM/MITJoint Stuly h: made it possible for the through t prototype to be wade opnrationa1, to pro rse, development of the new MTIS the reasons for this raid and for the Some of o rapidly. the type of regress are due to technical nvironment used; tfh- VM/370 operating syst.em is evelopment, combining the an excellent facility fcr syst{m advantages systems, a ability very flexible (CMS) and many other Beside through ime qhrinrg, of interactive language processors, crc t crttinnq of many system commandlanguage .cubtl- features. hese- ad v anta (jes, many availability S_,pportdifferent operatin hich comrnmercially available opportunities unitie tc cur rlationship could be accessed systerms, were s overal to IBM: 1) The opportunity to us' and modify IBM experimental software, including AM, XAM, STEL, F'1 LkN (be-fore it was announced 2) y IBM) and SPY. The ability to us V i unconventional running VM under VM, accs ?i qrl CMS ru tines modifying VM for T) L nd for ways (e.g. directl y, 2:>Y) , with the help) of CSC' -1 0- personnel. Outsiel( vndors mijht not permit us to try some of these experiments, or cur -iccers to the vendor'ssystems people might be limited. 3) Our close rapport with CSC solution of both technical (-.g. design) and administrative (e.g. obtaining manuals) problems. 4) The fact that we personnel for the fixing bugs, systems setting up accounts, ha-i direct access to the Machine Room, so we cculd pick up our output make minor program changes immediately at terminals. CSC uickly and the local 5. Suggestions for Technological tIMrovements After using the facilities at IBM for over two years, could e We will list three of those there are some technical area- where improvements made, point of view. from our areas which cone tc mind ere: 1) Interactive Ia atase m nagement systems After investigating the availability of interactive database management systems within IBM, w were disappointed to find no acceptable offerings beyond SFOUEL and IMS. SEQUEL is still very experimental, as we have pointed out many times. IMS is restricted to a hierarchial currently compatitle work needs 2) with CMS. view of data Much more to be done in this arila. Better VM irter-machino improve Hlowver, communications these facilities and should and shared virtual are initial ;ignalling The efforts between VM's. be refined and incorporated into the VM/370product, and ventually siqnalling - communications SIGNAL&SHAREand SPY softwarefacilities to and is not product oriented these intermachine mmory segment facilities should be built into the TEM hrdware. 3) fotlnd a Pemote need for printing and display terminals faster and more sophisticated - We have terminals that can be connected rcmotclv to the computer through ordinary telephone lines. Specific suggestions for improvements in terminals that are possible today would be to bild an asynchronous be used as a remote controller, and a an IBM 2741. 30 tc IBM 3270 display terminal so it can stand-alone terminal without a C character per second version of - 11- A AFFendix Current iUses of IBM Accounts ~or Systems Development July 16, 176 The following is a list ID, and the nature 1) of the ID: Account of each ID being used name of the principal systems development, the cworkbing for user of the done on the account: NFfEMIS6 Principal users: Bryan Mau, Ray FPesel Purpose of account: All of the MIS source code resides on the NEEMIS6194 disk. Tho account is used to store the code, and to make minor changes and enhancements to the code. 2) Account ID: NEFMIS7 Principal users: Clerical help, Louis Gutentag Purpose of account: All systems related documentation is entered on this account in SCRIPT. This account is also of the experimental applications used for relational database software, for possible uses in the 3) old and new GMIS. Account ID: NEEMISP Principal users: Bot Selirg:r Purpose of account: Systems rcgrcimminq account. Bob is writing several arts of the new GMIS, and does much of his work n this acccunt. 4) Account ID: GMIS Principal users: - 12 - Nolln, (I,oii. (; t. lt jI r )po I.si ble) PUtpoe of a(cccunt: This acccunt c )n+;iins all of the executable GMTSmodules and EYFC ril s for users to access It also contains all of he TXTLIB's and MACLIB's necessary to create? i; nodules and tc compile GMIS programs, but do.s riot contain the GMIS source code. this Finished SCRIPT Fil£s are account to users. (1 /O) =-7) to All GIS efore tey Account I: also placed on ake ,T'S documentation available u,rTs run ay link to the GMIS account r;MIS programs. MT'I, GMIS2, GMIS3 Principal users: Chat Lam, Pob Slinger, Tony Smith Purpose of accounts: The nw GFIS i being developed and tested under these acccunts. GMI32 runs the simulated VM under VM for testing of he Manager Virtual Machine and the SPY ccde. The other accounts are used to develop the GMIS communications handlers, interface routines, tc. -13- Arpendlix B Project GMIS Progress Report August 22, 1975 This document will suwmarize the soft.ware develcpment progress made on GIS to date. After receiving t code for SEQUEL, Release 1 from San Jose, we brought up the system using their 3270 ser Friendly Interface (UF170). SiInce then, we have written a number of our own UI's as described later in this paper. We refrained from making chanjes to the actual SEQUEL code until we received and rcught up Release 2 chanqes to SEQUEL are detailed in NEEMIS6, categories: but they 1) Added DTYPE fall Added into the following return to pass replies back to the UFI. COrE of Our general array to Transaction Interface data types of transaction 2) of SEQUEL. the SEQLOG SEQUEL file on 1 for DISPLAY ASSERTION command. 3) Modified SEQUIEI/XFAM to handle problem of creating inversions on columns with numeric values greater than 2**21. These inversions will now be suppressed. 4) Fixed assorted XA? and 5) implementation Extended SEQUEL maximumdegree of a table, RAMbugs. restrictions maximumlength of an identifier, and maximumsize of a character string constant. formatting of rows in TRANS and QUERY were generality (for any "magic numbers"), rewritten on output for Currently, we are odifying SEQUEL to accept the unary - operators as prefixes to numeric literals, and to handle unscaled FXFD rICIMAL constants. After unscaled FIXED DECIMAL is operational, we will extend this feature to include scaled decimal numbers. + and The current documertation on these changes is included in these documents: Log of SEQUELModifications Limitations of SEQUEL Release 3 Transaction Interface Description - MIT/SEQUEL Rel. 3 TRANSA''LC TRANSACT is a UFI esigne'i to give users a facility to enter transactions and receive replies from any terminal device supported by VM/370. A d:-scription of the current features of TRANSACT arc incluid in the documents: TRANSACT Commands Explanation cf TANSACT Cmmands We version features: the arp currently almost of TRANSACT that will 1) A DISPILAYopticn transaction displaying the 2) which, which transaction. A PUN command macro rc)orqor variable substitution, version TNSCT will b ?foro has Leen written be which containing Tmplement-edfeatures Include looping, a A draft 3) If a POFI it display The DISPLAY is conlitional o a loc.lment this facility is availatlc (UNCOmmand Guile) A-disk, will ~' EC-like files write JUI commands. commandlines. ON, processing new npw OUTPU'I devic. will allow a iuer to TFANSACT and S when st IRANSAC(' was reply to that sent to the current finishe d debugging a support the following ~:iA i execution of describin, on the TT'ANSACTisoir's PUN bcf£or,' cuxecutionof the first TRANSACT command. We have also pr~ Farp'd a proposal for a TRANSACT interactive transaction (editor,which will allow TRANSACT users tc modify transactions ;tfter they have: been -ntered (e.(. to correct errors). A ;elective dumping facility is also planned for THANSPCT. This fAcility will permit users to put th' result cf any *3u rv into a CMS file i bulk1 loader format. tUsingthis facility, any ;electedportion f ~ a database may be savcd, deleted from tth current databas, and rstored to the database at ?rny future'time. Multi-User Interface (UI) A UFI named SFQ? has he'n implemen-ntf1 which p-,rmits external virtual machines to 'eT(i tratisaction?to a comman Transaction Virtual Machine (Vr) with SiOJUEL dat.aasp. Communications facilit is are provided through the ulse ot shared multi-writeCM, interprocessor signall ig transaction and reply by means of virtual and punches. This facility is described iles, and card raders fully in Iouis - -1 Gutentag's Master's Thesis, Section 4.2. this There is some room for improvempnt in performance using However, UI implementatior. mod.ified version of slow system. San Jose's we plan up a to bring SIGNAL&SHARE to replace our TransRarent TRANSInterface for the MUI A procedure called IRIFUFI has been written to simulate the SQUELtTransaction Interface for the MUI. This means, using TIFUFIinstead ot for example, that a call tc SEQ{IPL into a transaction file, TRANS will actually write STRING signal the TVM to process the transaction, and wait for the TVMto signalthatit has written the reply file. This procedure permits u our existing to use tFI's multi-user env ironment without (e.g. IRA NSACT) in a modifying their scurce code. An EXEC called EMGEN on GMIS 191 performs the same function as CRTMOD, but uses TPIFUFI, so resulting modules running on a machine will run only with the with its own database. MUI instead of APL Interface A series of assembly code been writteOn to allow TVM through passed to the Mlti-User the SEQUFL machine following APLstatement: Z <- rout.ines SQUIT QFPY and PL functions to transactions Interface. have e passed Transactions (TYVM) through the use to a are of the '<SEQUET translction>' The results f the from EQUEL. where Z is the return code or matrices in API, transaction are stored as vectors variables, represent. which are named afer t he column:, that they APL / TRANSACT of TANVSAC has-henT imilemented A subset in the APL environment function to allow user th rsults of queries i Complete leave APL. on APL TRANSACT must as an API. to display a tabular format without having to cocumnntation on still t'e written. the A Interface and -16- Bulk loader.-, The original has gone asses several San Jose received from cader LSDB bulk through First, thE of revisions. loader was enhanced to permit rows that spanned more than one 80 byte record to be loaded. This bulk loader was LTDB. called series The next LTDBwere designed to changes to of that of SEQUEL For generality, version with our new f up to 16 characters. make it compatible permits identifiers LTUB was extended in the fcllcwing ways: 1) Free format control cards. 2) Multiple primary ky card card was added to control Previously, the $PRIKEYcard only columns seven SEQUE. :FNDKFY extension. permit this supported primary keys of or less. Release includes 2 on tables asserticns integrity A descriptions. in a facility making LTDB calls facility, and bypasses this integrity directly, XRAM for the database. which Therefore, we generated is implemented at the SQUFI level. LTDBA is the same as LTDB. two new bulk loaders tc replace LTDrRB is functionally directly. XPAM and calls LTDB UPI which bulk but is really a SEQUEL equivalent to LTDBA, tradeoff fast and slow by means into tables loads rows between ignores and checks using the integrity each assertions. integrity Databas,,e"describes the qreater detail. of NSFRT two loaders assertions, inserted and row against The commands. LTDBA is is this: LTDBB is the very stored The document "Bulkloadinq of a use of the current bulk loaders in SEQUEL atabase BackuL, Utilities Th(re are currently two mthods to create backup copies stand-alone utility of SEQUELdatabases: sing th SQDUT)MP program or the CMSuti lity Dn. SEQDT)UM i a SEQTET. FI which dumps a complete copy of This hulk loader format. at any to their database to add that data permits users dumps a The DDR program tho hulk lcader. time, using "snapshot" of the disks; containing the database, ad can he used only to rstore the database to its state of integrity at the time it was dumped. The tradeoff here is that the database +o CMS files in a ,nore f exible backup, but is slow when creates SEQDJUMP to dumping because it as to issue many S'OUELtransactions perform the dump. DPR, on the other hand, dumps the -17any exi-;inql ,atiah.se is but. .atahase quickly, SEQUEL be Wcrks a c_ Ray Fessel APT, workspace has written an (used fcr that plots the util.izd by a multi-segment RAM amounts of disk space being database at Bryan Mau. obtained from Ray Fessel c RAM Utilization use of DDR can on the and information atabases", reRlaced dumped by DD:. Backup Dumps of restoration time by the version that was SEQDUMP is described i the piper "Creating SF ClEt) at ny given time. See Ray Fessel for further information. TSP A version package Smith cf is crrently and Kai Wong. at. the the Time Series teing broqht. This MIT Tnformation Processor up under that is being used tho vrsion is statistics CMSby Tony rrocessing (Center. After our we will explore methods an interface and to add version of TSP is debugged, it an interactive system, CMS to make to our GMIS Multi-User In+erface. TROLL of bringing up a ccpy of thp Weare also in the p'LOCo'S' TROLL econometric modeling system under the VM/370 system at the Cambridqe Scirntitic Cent.gr. There are several problems which are causing delays in cur progress on this project. First, VM the versicn of 'rOl L from NBER requires modifications to the VM/370 op.rating system to support their shared memory sgment and inter-processor signalling functions. other (e.g. under These modifications existing versions San ose, cf must be made compatible with shared Yorktewn, CSC). VM/370 as a namf-d system (like memoryand signalling Also, TROLLis CMS), and uses invoked its own This makes the process of building an unique fil{e system. efficient interface between TROLL and the GMISMulti-User Towever, as always, we can Interface a formidable task. provide intorim solutions VM, and we can lise tiybinging virtual communicate with GMIS. u TROLL on a VM under card readers and puncles to Arpfentix Visit to I C San Jose P(etarch Laoratory 27-2 ° , 1975 AucuFt I ouis M. iutpntag Overview of Topics for Di,!cus ;ion ;tand]resentation 1. Proqress developm update cn TBi /MTT Joint Study softwar4 nt 2. Presentation of Prcjcct NFMIS 3. Performance analysis of SFQUE, Release 2. Identification of areas where performance is especially weak, and could be improved in current release: I. 1 (cbectivc applications. SFQUFL level in most cases is to rduc 3.1.1. Abse-nce cf GOUIP Y operator. 3.1.2. Ilnetficient calls to XRAM). handling of joins through nested queries. 3.1.3. Inefficient predicates 3.1.4. Creaticr inversions rsolution on NM and facility. projecticns in compl¢ex CHARdtiomains in SQUEL predicates dloes not fully 3. 1.5. Technique of (too manycalls to TSTNODE) ((x non-creatioln) of temporary used to utilize inversion generate SEQUL cau-es excessive time to b spent ?YRAM (really an XRAM design problem). 3.2. XPA.M level 3.2.1. 3.2.2. 4. ptimization page etches vs. Cptimization of code in specific mu1+i-sQoEnt RM routines. Discussion of Data Base Grcip. 4.. of resident page searches. short and long term Applications orie nta t ion. crientation memory XRAM and goals of San Josh vs. research -19 - 4. 2 l've lopent 4. Time frame for roll 4. 4 Exploration f jcs r intrfae:. cf t i.o: ot p+,rformance i:x;ues. altornate approachies 4 .5. Plan for Performance 5.1.2. ystem r analysis 5.1.1. Apply P. from SEQUEL. larned hat we hve Handling cf jirn.r. of transactions 5.1.3. Reduction and ortimiza.ion to to v,';teelm t.o meet future needs Analysis of System 1,as of IBM/MIT Jcint Study. 5.1 IBM for testing and feedback:. wider user adience 5. system System R) systems (e.gf. of release to existing of cr inc rloration developient products (.q. IMS). f'rm some ncrral non-proced r al) . (i..:. at- h:,3 techniques. accessinI Ijarh a,,7 collect ion, and 5.1. . Data clusterin] make D)ML truly other space utili7ation is:s. Automatic (us,'r-trnspar-nt) 5.1 of strulctures database 5.2 virtual Feature 5.2. 1 stcrtage i V. analysis Transact ion IFFT's FEO.)U'L v.S. of for TnterF'aces aO rplaci.mont will RSI (how much dehl'iling 5.2.2. u:;c of of i;yv+cm . Compatibility o xistin of minri;li,;ltion anri p+imiation 5.1.6. to dmtabase over ti me. apllie, transactions reorganization ase d on types of user Data yFes supportod BINARY, FLCAT TN.'-Y, Sy:eom t Laiis tr ot t of XRAIqwith RSI need?) (7TXPn DElCIMAL, IX:D fIi:I~CT). for -specially o)f NI I,.vailues;, Handling returned values of 1-atistical functions. 5.2.3. 5.2.4. Eixtensibility oF addition cf DMI., statistic l possibl macro extensior of especially for fuInctions and d ef initions. con n "_ ystemi capabilities to rduce dependence UFI's f r numeric +ransformations. Gneriral utational on APL and -2 - restrictions 5.2.5. Possihb. impl-mntation nutbers" "magic prrchle (.g. SFOU1L, maximum i of rows in tab'.l,, miximum of pages/segment, running cut of ID's) 5.2.6. User views ani acc¢ssing of system tables. 5.2.7. DependEncies on to SIGNAT&SHARF modifications V. 5.2.7.1. Exrlcre oft acceptance to relating probloms oditications by I or at customer instal1lations. modifications to M for 5.2.7.2. Discuss NR TROII - compitibility and efficicncy issues. Ne l to agree onr st.anda rd interface for 'lifferent implementations of SIGNAL9SHAPf-. 6. Discussion of docu}entaticn roblems. 6.1. SEQUEL Languace Referenc? Manual. 6.2.. Improvedt used. documentation of code and algorithu;s - 2 1- Ar-[.n!iix Loan of SFCIfFt ?, odifications 4/30/75 L. Gutentag Modified UFIDCL to include arr.lycalled DPYPE which contains t.he data (MAXDEGREF) types of BIN FIXED DTYPE output X. columns, declared E'lYPE to the datai types of 5/1/75 L. Gutentag Modified columns. QUEPY tc s-t output 5/13/75 . Fessel (loggqed y . (l1tntag) Modified TRANS so hat all will return through FILFSW=' 1'B and COnf=C, be read without calls return EQUEl with FTLESW='1'B to SF(T1 .T by the a new call 5/14/75 P.. t Fessel (logq(d y . 5l. / 5 ' q d] Modified to the in+nrface. Previously, if the next statem(:ntin the file would DDASERT so that a tUFI. tnntag) r. DISPT.AY AS.iRTiON command will with COPE=1instead of COr?=1). 5/29/75 R. Fessel (logged y . u(31:tenta:) Modified XPARSE so that CHAR (QSTRING_ IENGTH+l) the size of BJFFERis declared as VAP. 6/24/75, R. Fessel ModifiedXRAM routine when an attempt the domains contains 2**21. relation In RINV so t- is made to nurhber outsile this case, the it ,returns 9 creat* an inversion inversion must be testedt tc see but in FCOrP one of th,? range between 1 and tuple for the v- ich domains failed cntrol to have inversions created becausse~for to'sc . domains where inversion creation is possible, such i nv,,rnins are actually created. 6/25/75 P. Fessel Modified CRTINVso that it detect-; . return code of 9 from XRTINV.In this case an rror nossage is composed with a return code of 99 and the na.m: of th. failed column(s) is -22 - appended to the message. Additionally th-; type 9 relafions originally created for these inv,-rsion, - are dropped. Any roce,-di normally. inversions which succeed . Fessel 6/30/75 Modified GENINV so that when called to creat if a it jet3 an CODE of 9 from XINV temporarv ivrsion, it returns a special value in CODEt PASS3,na;jily 999. 7/1/75, RP.Fessel Modified XPAPSE routin. sc thit i:' the STATIST bit is on, and the FILFSWbit is on, evory +ime a record is read from the query file, it is also writ+;:-n out to the statis+ics + the statistics file. Thus ouplti will. always query, even if it is injut from a `:ile. contain the 7/8/75., P. Fessel ASSFMFIF fil retiirred in ,odified IXFCLCK times are now microseconds. package. s:) that virtuai and total mil.liseconds rather than overflows This prevents fix-o= in stat istics essel 7/9/75 R. Modified PASS3 routinIe in accordT nce with suggestion from Mort Astrahan so that it rop-rlv handles a node which it tries a temporary invrf-sion for to create GENINV returns a code contained invalid ct numeric ati. question has to dc multirle 7/9/75 indicating 999, In this tut for which that the column case the scnc- of the relation. node in FE. Fessel Modified IXECLCKroutine aain so ta timesc are returned in units of 10 micrcseconds. This will still prevent fixed overflows in statistics packar.q while still retaininq adequat e resoluticn. 7/14/75. Fessel Modified XPAn routi ne (RINV so t hat ZGDEL internal subroutine does nct modify vira.hlei; used elsewhere. This relations are now modification means that the type 9 XRAM correctly dropped when either XRnRTIV is invoked or when an inversion relation is droped i nt,,rnally because it contains -2 3numeric data outside the range btwt?,n 1 and 2*21. 7/15/75 R. Fessel XRFTCHT so that the pare Modified XRAM routines XRFETCr a pointed to by pointer 2 is now unlocked. This page contains the XRAM relation used( in th, arguments to these 2 ent.ry points. 7/15/75 R. Fessel so that it Modified DPINV associated type 9 relation oes not call XRDROP to drop the - inversion with th: this relaticn autcmatically. drops 7/15/75 since XPAMnow . Fessel does an explicit call so that it no loner Modified CTINV an with the typ 9 r-lati.cn associated for to XRDROP t cr -4t inversion that failed to -'1. 7/15/75 Modified to . Fessel NINV so the XRDROP for call it nc lcnfvYr does an explicit w i.h an associated 1.ition ty[:c9 ri- that inversion that failed tc l.:ccr:eat,1. 7/17/75 R. Fssel (in assembly ZGFTID)so that Fixed ug in RAMroutine 7ZPHFELIrD block is not c.lchbbere, wLhenthe last ID on a control in the cell ha-., d thh-third [page relation page is free: ane not. been allocated. Additionally, lthe ;age which had its last ID deleted was not eing markd as; empty and rlation pages were not being reused. 7/23/75 R.Fessel Modified RAM routinsr,~ changps to correct VFLnW been put in about 18 months ago Jose version. a nd bugs fcr vrv large % ?IN GF. but had got lost 7/24/75 L. Gutentag Modifiel Reinstalled relations which had FIDCLto include new "magic numbers": in the San -24 (was- 15) MAXDEGREE=32 (was H) MAX NAMELENGTH=16 LENGTH =128 (was 6) MAXSTRING QSTRINGjE.NGTH=42, (was 2G0) Added new magic numbers for us,.in QCATand UFI's: SKIPNAME=MAXNAM" LFNGTH+1; NAME_SPACE=MAX_NAME_LF4GIYH-2; DOMAIN FOIREAT=MAX NAMlF IFNGTH+17; TABLE LENGTH=MAX NAE SPACE=MAX DOMAN NAME LFNG'IH +2; I.FNGTH-4; ..ENG'IH+21; NAM E TABLEFORMAT=2*MAX . cutontag 7/24/75 Modified TANDCI "ic n to i]lud numltrs": COLUMN_SIZE=40 (wis t) DOMAIN_SIZE=40 (was 3)) NUMBERSST2E=256 (wa 3) STRINGS_SIZE=256 (was 3C) 7/24/75 . Gutentag Modified all appeare. as SFQTIJT,routiln whic i 'Ie ; :ortr-rt c6rinstants. "magic numbers" th variable r?procossor was substituted for each consti n+. Th, greatfvst occurrences of these constants were.in rout ines utilizing the shadow catalogs and in QCAT. 7/24/75 L. Gutentag Modified TRANS starting n lin- 14601 to revise the technirqu rowr; in Q3TRING(.Now, all to format cutpit used in GETROWS output columns will be cnterc<d tinder thefir column titles. This new code wil 1 MAX NAME LENGTH a not was t a fected be [revic'li by a chanrge in codi. 7/24/75 L. Gutentag Modified, QUERY start ing at. i in 750 to format column ', !'pr:vious code was written headings in a general way. Now, r--gariless of the value of assuming MAXNAMELEN(;'rT=E. _LFNGTH, all column tit MAXNAME column will be centered over the ,; ata formatted by GFT{O.S in TA1S. 7/24/75 L Gutentag -25Deleted the declarationl for EPAR.F[ NTRY in TRANS; lTIInCI. that declaration in included 7/30/75 R. Fessel Fixed RAM routine ZTRIAE in accordance with insructions from Raymond Lorie. ScIved Frcblem with retrieval from relationt C-rings on C on an A paqe and several with a single B-ring when NEXT was invoked until end of Symptom was that paqes. relation was returned, every entry was retrieved twice. 7/31/75 R. Fessel Made 2 significant charges to SEQUEL routine XPARSF. All declarations generated by the parser generator are now brought in with a %INCIODE statement from a library member he semantic routines in called PARSDC1. Similarly, all are now brought in (part o XARSE) subroultine SYNTHESIZE The file SEMANTIC. parser generator PARSDCI COPY was member called generated from the the grammar deck received using as inpt. Mehl which is the from Jim library a front INCLUDE statement an with grammar for SEQUJEL, Release COPYwas crett.el The file SEMANTIC old copy of XPARSE. by editing 2. it out of the 7/31/75 . Fessel The SEQUELgrammar was modified to include unary + and This modified grammar operators prefixing numeric liter-il;. was then run through th, parse table generating procedure to produce a new versicr COPY. Also cf PR~nCL the file for include semantic routines SEMANTIC COPYwas modified to the new productions. 8/5/75 R. Fessel GENC(AT was modified class relation. SEQUELT roulltines type. to put the string DEC' in the SYSCHAR this ccnstant is necessary sc that various data decimal will t.e ;bhl.? to recognize 8/6/75 R. Fessel catalog declarations The variable CDECTIDwas ade, to te in the fil to the relation. TI) varinle XRMDCT.COPY. This of the string ' FC' in will be initialized the SYSC HiA? class - 26- . Fessvl 8/6/75 domain This (GRAMMAR. The new grammir is in the filie DECIMAL, type. file: to make DEC a valid was modified The SEQUELgrammar used was to PARSDCI.COPY. of version a new gencrate Also the file SEMANTICCCPY wvt modified to include a semantic routine for the new P:roduction. These modified were then used to qenora te a nw objectdeck for files XPARSE. 8/6/75 R. Fessel INITCAT, QCAT, DFDOl, DL)ELDOM,and DFTAP SEQUEL routines were all modified to hardle dcmain- with a data type of DEC. yp? was assigned as 3. datt The internal code for tis . Fessel 8/7/75 NIJMDCL Modified fi l COPY for DECTMALTYEF declaration a i ncl,]d tc preprocessor which is set to 3. 8/7/75 R. Fessel t COPYfil Modified TRANDCT. DNUMBER array in numbers a SEQULFT for a include a declaration of decimal representation hcleds the which stateunt. 8/7/75 R. Fessel Modified SEMANTIC COPY file so tha+ all numeric literals in NUMBER array as ell as ut intc the a SEQUEL statement ar, the NUMBERS array. The same index, This modifiod arrays. of XPARSF TFXT. NUMX, is used to generate file wa';-used for both a new copy 8/7/75 R. Fessel Modified ASSERT routi ne so that no spcial done for a predicate such predicateswill predicates 9/3/75, a BETWF,'1J!... with handle] by processing is ND clause. Instead, SELECT, as are all other crrently. . Fessel Modified XRAM routine XTTNV in accordance with directions from Raymond Lorie, adding loop to lock buffers containing tuple id lists at top of for the inversions. main loon creating RAM relations -27- RP. Fessel 10/8/7 odified UFIDCL CCPY, TFANS an: UJFIDCLa Added to static that if external called now, sinqle iodiified LCG. in bit var.iahl TRANS and XPARSF so SEQUEL statement is always sent to LOGis on, t Also st ti mstamp. the STATPRI file, along with a STATPRI file is LOif Y¥nARSFto i)-lewflt t( facility. the trarsaction typ? all columns and tables reference to the lis (TRANTYP) and i the statement. of P. Fesscl 1/20/75 Modified PAm routin, ZPHAStI o that it X'7F or rlation R. Fessel 10/21/7 c Modified routine TSTNOFEin from Mort no ages whose last 2 pawes which nd in X'FF'. hash value of 0 for dta Astrahan longer rt.irnls a hrx ligit;- arc-- accor-iarice with itruc ti)ns +,]plnrelicates with inulti lo5! so that columns are handled properly. P. Fssel 11/18/75 Corrrctod XRAM routir.n DO l)op for lti .- so 7(FTF finding ovrrflow coll.! t , u[ppr 'ith nmpty limit o t- pag(-s is nw correct. 11/q19/75 . Fessel QTJFL routin Corrected output formatting whenr characte rs. 11/28/75 TNS the nam:: -r:rors fnr l,:uths introduced in the( woeL, increased o 1f . Fessel (GENCATso Modified that LL,, ot an i ECMNA1, in FLNAME,CNAMECOLNAMI, both entries SYSTAB and for DOMCAT TNGTrH). This was done to 1( (MAX_NAME_, t are initialized when domains, of udqitinq tfci ;elations obviate ncessity columns,assertions, SFQUEL or the 12/1/75 R. and tabl-is ar: created either using ulk loalder. essel Modified PAM routine Z t'I to correct error introduced while fix note' makin: ;-.i;t:ve. Upper limit 1/12/7({ B. 0 loop for scan of o-f was off ty 1. overflew cis Mau Installed scurity features for SEOEL database. Modified UFIDCL to include xterral bit (1) variable S. CURTY-indicates to SEQUEL whether or not to perform access rights checking. Modified routine TABINIT--insert~d a check just before final return to test SECUPTY and call the access checking routine (SECCHK) if indicated. Modified routine WTAPL to signal condiation 'PLXXX' if crrcr linking 340 or error accessing it; signal should to prevent he picked up by the UFI error on part (SE(3); this is of calling machine the FT. Modified rcutinp TRANS5ACT to '0'B--default is no scurity for -inqle-uspr routine SEQ2 renamed SFQ3. SECSIZE condition and to implement security SEQ3 to call SFCCHK. SEQIF: 1/15/76 th:b' ecurity version FILECHK, Allowed for 2 new parameters ' NODI1SC' suppr cs;-s 'SECURE' invokes new ON-block into SEQ3 for .sim)ply . ignore present ' PLXXX '--ca u.ies request and return to XAPI. to design; new routines: hrce Insert.dA TIFU from stopping set SECURTY to mode. Updated th disconnect command; iuec!-nism. . Fessel Modified 7CF1TP anm 7(;,FTB to XRAMroutin.r~ change algorithm used to find whether ra[agcr b1ock which is requested is already in a buffer. Newalgri+hm is that, it it is not the most rec,nttlv requeted page or block, the page or block number is hasled and tho corresponding hash table entry is tested. If the ihigh ordrT it i off, the uffer pointed to by th h s. table it is found. the right Otherwisp the scanned to them. This overflow cne, te find if paow reqilest-d pao chain f or the problem which was emptied a this occurs, the hig}, crder bit or block }uffLr +the right pa-Je solves the page or block in (,ntry is tested. control block occurred it. bhif-or turnTed on. If a sbsefcuent rquost high order bit o t l 1/20/76 Mau is was itshsh If has beenii blocks is in of one when an freed. When table entry is was made for a page or block whos!eha:h value conflicts with the released page, it would apper tha+ that age was not in a huffter because the its hsh that: page might rally Modified contain of extra B. IJFIDCt to include for each coluirn blanks QSTRING. 4odified ],:' Pntry was on e in a bl!ffor. (cr added .+ te TA 4 SEQDUJP to use LPADto g array ret1rn left I, PAD even though (MAX DEGRPFE) -- to rom (FTrROWS)the number )o: the' column's field in to set+ TnAD in (,ElTRCWS.Modified the proper part of QST}PItG into -2 9it,- ,vltplut tile 2/10/7, au lontr in thcs¢ cas?s wher" +the column name thaln 8 chardcters or tho u . for the column. B. Modified routine XPARSF. Alphabet Pxtended several hretofore ivalid special characters Also error messages revised. is to include? (eg ?, g, *). 2/10/76 B. Mau Modified routine GETROWS; replacd with new algorithm for stuffing CSTRING. Also modified routine SEQUEL to set TRANTYP t PARSNOTR7C if response from routine PARSE indicates that it lid not complete the parse (preciously, TRANTYP remained unchanged through a call to SEQUEL if the parser failed). Also modified macro NUMDCL to include ew transaction tyre PR.SN3TREC (999). 2/10/76 B. Mau Modified routine QU F Y to Previously, TRANS did this. sq-t LPAD external array. 2/12/76 P. Fessel Modified AM routine 7RIAT so tt: a binary relation to mdake sur? tat Previously, entries were were zero or negative. 2/12/76 Modified P. it checks each ntry in it is loss than 2**21. checked and rejected only if they essel RAP routine RAMLECMP o that it prints the code at the terminal whenever it is invoked. AMB1OMB 2/18/76 P. Fessel XAM routine XINV so %% tt when it is scanning a Modifiod page for tuples in a articular relation, if it finds an entity that is not a tup1e in threlation, it unlock that entity if it is the master control that relation. does not tuple for 3/11/76 P. Fessel when the first bit map Modified RAM routine ZFIBIK so t.it is filld, i... to? first 20348 physical pages for free pages are all in correctly. use, swit ching to t second it map is handled 4/2/76 R . Fessel Modififl XRAM routine XFIuFrTso t Ji+ being updated, no entry i when a control ad,' in any inversions tuple is which may exist on the domains eing upla+d. This is true for all control tuples except fcr the invrsicn cntrol tuple which cannot be updated by XUFET. 4/6/76 R. essc1 Modified XPAM file XROPEN,XPCLOSF, etc. NBCLEN which with sever-l modulo up to date with respect to contains entry points modifications to bring modifications ade i San Jose. 4/9/76 R. Fssel Modified XPAM file YPRAM which co:tiains entry points ROPEN, XPDEF, XPRMAKE, etc. with -;everd, modifications to bring module up to date wit rs}Tect +o modifications made in San Jose. 4/29/76 . Fessel Modified XAM decks XRAM, NOPFN, and XINV so that when a call is made to either YXMAEF or XRUPDT and the new or modified tuple would caus! an invalid value to be put into any existing inversior, than an RCODE of 9 is returned and the inversions(s) only way in qicsetien is auitomilatically dropped. to find out which examine the inversion cntrcl or XRUPDT. inve:sion(s) tple are dropped The is to after the call to XMAKE -31- Appendix s cf Limitati F SQULT Release 3 1. Maximum degree of relaticn = 32 (was 15 in SEQUEL Release 2) 2. relation or column or domain = Maximum length of name of (was 16 characters 3. Maximumlength 64). 4. Data types el. 8 ir of character suFported 2). string data item tfor database: integers = 128 (was (NUM) and varying length character strinqs (CHAR) ~. . 5. Constraints on Numeric rata: A) nly numbers in the following range can be entered intc numeric columns: -2,147, B) Inversions 483, 4 P8 to 3,6 4 7 on numc-ric columns can when all data in t.he restrictive 2,147, 4 range: columrns is in only be the created following more 1 ! n ! 2,397,151 6. Additional constraints on table, column and domain names: A) The followinq domain names: AND are AET 13BETWEEN CHAF DELETE DFSCRIBE DPOP EMPTY INTT ANVESSI(NS LI ST AX invalid S !L C TOT UN CU column . S ET T A35SERTION AVG CO'- PHTE ;3[ST1.AY PR(CM COUNT DOMAINq IN CRPEATF DOMAINS INSERT KEYS rSFY NrlM ON ET T B TABLES 7PP IT WHERE MIN OR as table, and -32 included may not b n) The follcwing characters table, column or dcmain nDme: in a (period) (comma) ; (seaicolon) : (colon) < > (less-than) (greater-tban) = (equals) ((left-parer) ) (right-parr) + (plus) - (minus) (asterisk) (logical nct) J (logical or) ! (exclamation) / (left slash) 7. 8. An input SEtQUELquery cannot Maximum (outer amount of resting than he longer a SEQUFL query: in 4200 (was 2000 bytes characters unless it is input via a file in Rel. 2). 3 levels block plus 2 lvels of nlestiuig). 9. The maximum number of query is 100. 10. The following featutrs not impl¢mented: odes in thc parse tree of th- T3NPsyntax <SET-COMP> (production * / may nDot b (production 3 ) + <UNICIJE-PPFPD> (rciuctirn of a SEQUEL of SEQUELare f(9) IIlsf+] 71) in a <SFT-CLAIS E> - 33- A r-:e ,-ndi i x Transacti on Inter arce escription ITT-SEQUEL Rl~.se The UPI (User Friendly Interface) of the SEQ(JELT system by callinq 3 interfaces with the rest the procedure TRANS. The UFI shares the following external variables with TRANS: CHAR(420C) QSTRIN(; VAR, DTYPF.(32),CCILEN(32), LPAD(.2), DWIDTH(32) BIN FIXED, (TRANTYP,CODF,,DrEGRFF,CARDIN, NUJMROWS,DISPPROW) BIN FIXED, BIT (1) (FtLESW,REPPO'T,STATIST) TRANS has five entry cints: TRANSIN, S F QUEL, GETROW S, The valid SEQSTOP, and WINDUP, which are descrihed below. return codes for each entry point are listed. If CODE. contains any other nutrher after return fron TRANS, the number is a cod. for some us.r r system error, and a message describinq the rrcr ay h found in QSTRING. TRANSIN: Must b called at initialize the SEQUEL: If beginning of system. IIESW='0'F, user session .4ormal return cod a SEQUET statement to = 0. to be processed is in QSTPING. If FLFSW='1'B, one or more SEQUEL statements are in the CS file SEQSTAT SEQUEL. (In this 'latter process case, succ.ssive t'hestatements return codes: COD=0: T e SFQUEt stitement executed. The ird icated by ~ - '9 CODE1: one at to SEQUEL a time.) was type-: of.the Normal successfully statemelnt is 'Ar NTYP: 102 Insert 103 Update .~: 104 Delete 106 Create Domain 107 Drop Domain 1R Create- Table 10) Drop Table 110 C r a t- Invo rsion 111 112 113 114 Drop nYversion Assert Drop A.qsertion Display .ssertion The $QU ET A$SFETION ;tatem ent cI)mMarlnd. statement i; "ound i.-n oril.inally calls -n red. was a DISPLAY The assertion STRING as it was ,C - q'}. " $ ('r p'?, 2: t- '171' T. - rI t"in Vai 1 -f r,1, i n fcr +-() r +! c '?PANTY PT, FF i -. >- I of - N?!'i, aI!d ;n wit ch (i - ',,' width (in cd ractcrs) ) Crrtr '."; ] ' QS i. n1 1 n -namef;:s o f lT k It c entered 'i) 1- t hO (o o C r.p COT1;, t ie ie lds ot -l)T, l1 (T) chiaract<rs. (T o r i- rFT U rw:; o i, eh t. wo query a h t : ()' 1 cai111 in width y PAT ) arrays; he he a n: hl,- afterthe call to the'y are not useful are S3F () 1FPI, !)l f i f the b, <.l l iiv :!';~TR.OWS. addliir In C()a : u I aIct i1E (] f P,NG th at ion( to column i :l(ds I ,"c 'N j II(ery .lq, i-' yr: ¥.t^llt,where 1 I of the , ' ,t ,1 type of co lumn 'TYF (T) = r ( uer ,' th of r('9 I:l+ . CC I T F N ( wii L(.'tI to()11 owinr' <tue ry. 11r ( r .iniiality = .. IUry '1I Th *!b -de:Irqe ' UI" Wi z -ivailahlp: lr"1 ;!,'lnote's = = CA ' r 1 N T) f-Ilt I h to (s;) G.E;RpoWS. ,;') FI, wa, called with FI.SW' 1' B to ' uc.,~>t-t.;-tat.mnt in the file th &roce~-,;< btitlasthe SF,I FT AT-3'1 'FIT. t1;a" ; rc 1~, ''i',,;?n .. ,~~~~~~~~~~~~~~~~~ c-. O(e1 pro (ent tatement of fi l1 i. 1f.. rf'({,ac d) . tie COW=4: S11CtIT . t't oVl1utcf Iu wis 'nnt .'-i ni 1 tc a u ry which rTIIe constant. y1erl1-y rc:-;elIf, in 'tchtracte.r string form, i; in (~)S% I !S, PTYrE(1) cotairs P.. t.h1 3.ata type f +i-? *- Lrv result. . '(. !T = ,: ' l= c -+tem - |l '*hP3C(UFL Trl,, list D'O M I N S . QSrTING, c,)n +.i,.Tninq for '.1s(jC counlt, lnam., type, longest A (L) of erstr', ill ( ), X (?) type was of "LIST tdoains is of . in each domain its and format lenqth (16), of X(2) , X(2) , F () . Thle number lo ai 11-; i- S Er r S:temi'?t in NTJMR)WS. TRANTYP = 10 5. CO=, T) =7 The TA UI F; * . nfml f r'(r of: t o 10- L (T "!A7YP -a:l, t ahle 1yt ! i '-ld ! '', .) WaS Of = 15. type WIl'iPOWS rQSTRING contain-: all tn" ?;, left- jus-tiie d ;1 . "ITST = the in -35- CODE=8: Tb was SFQTJTL statement " FnSCRIS P TAfLE." of type = IRANTYP 105. NUMFCS= the number of columns of the table describe<. QSTRING contains the name (A(16)) followed by a cf the2 table description domain, (yFs/NC), A(16), column: X(2), exists A(16), A(q), name, part of X(2) , A(4), X(2), key (YES/NO): Y(2), A(3). Other return code; in icate an error condition. TRANTYP c99, +h<on the parser did not rpcognize the indicate GETROWS: each encoding, i ,:version X(2), F(1), Tf of type, command;otherwise, IRANTYP should what tyFe of commandwas attempted. Called repeatedly to obtain the actual rows of a query result af ter call1ing S'QUEEL with CODE = 2. Caller must st ISFROW = the number of the first row he wishes returned. ETROWS will place as many full ows as possible in QS'LING, cncatenating them. The format of each row is identical for each row that is pult into QSTBING, and is determined by the arrays COLLEN, LPAD and DTWIDTH. Within each row, there (DEGREF) fields are concatenated together--one for each column of the row. The total width of each column field givenby CLLPN--that is, column I has a field is of width rCOLITN (I). Within that field, there are LPAD () spaces on tlhe left, added for centering purposes, characters +hen the wide, T!PAD (I) - DWIDf (t}) . data item itself, DWIDTH(I) an]l thi (possibly) some riqht-paddin g spaces (that is, the number of right-padding spaces is given by COLLEN(T)TPAD(I) and rows placed in Normal return SEOSTOP: either CSTRING is ccde = 0. returned or The in both of number of NUMROWS. SQTTEI has FTIESW='1' B. file. previously been called with Sce statements may remain in the SPQSTOP cause; +the system to ignore the r(eturn code r-malining WINDUJP: (Note: rwIEfH(I) my hbe 0). s+atefents an the file. close Normal = 0. Miust be called to clean up the system at the end of a user session. ormal return code = 0. Whrenever a call is made tc any of he entry points of TPANS, the following two bitsgovern the behavior of the system: REPORT: If PEPCT=' 1 'E, the system types out on the -3 6 - terminal entered. STATIST: a diagnostic trace of all routines If STATTST='1'B, th, system keeps statistics on time spent in variou aspects of processing; before returning, it prints the statistics together with the current SEQUF1 statement on the STATPRI LISTING file. -37- Appendix XRAM Extensions F. Fessel May 13, 1976 This document describes XRAM since the extensions which have been publication of the made to original XPAM documentation. The following XRAM routines have been functionally modified: XRINV A code of 9 is now returned it a least one of the domains upon which an inversion is being created contains data which is not in the inclusive 1 to 2**21-1. range of The only way to tell which domain r domains contain such data is to examine the inversion control tpie upon return from XINV. When a code of 9 is corresponding to the automatically dropped. returned, the type offending domain 9 or relation(s) domains is XRMAKE When a new tuple is added to a type or 5 relation and the addition of that tuple wculd cause at least one domain of the relation which has an inversion defined on it to contain invalid data (not in the inclu~-ive range between 1 and 2**21-1) , then the inversion (s) in question are automatically dropped, the corresponding type 9 relation(s) are dropped, and a code of 9 is returned to the caller. Again, the only way to determine tahe offending domains is to examine the inversion ccntrcl tuFlI. XRUPDT When a domain in a regular relation is updated and that domain has an inversion defined on it, and the updated value for the domain is invalid, then the corresponding inversion is dropped, the associated type 9 relation is dropped, and a code of 9 is returned to the calling program. -38 - A new entry point has been added to XRAM.Its purpose is to in a domain of a regular count the number of unique entries The format relation which has an inversion defined on it. of this call is: XRUCNT (rid,m,k) rid is id of the relation the relation the domain number for which desired. The count of unique third argument. in question. m is ccimnt of unique entries is ntries is returned in k, the Return codes: 0: Action performed3: Invalid relation nc error. id. 4: Not a regular relaticn or invalid domain number. 6: Specified domain does ot have an inversion defined on it. 100: System error. -39 - Appenlix TRANSACT Commands 1. -1 --I r- RU1Ifn I RUN r--1 II Ifml II; Ifn Ift I I I TRANSACT I L I I A 11 1 1 11H _ L--j -- J I 2. -I OUTput [TO] I r- -, I TER~inal ILINE TZ7F nnnI I I 80 I_ 1 [CRT] I _J I I i I I r- I DISK 1iINESIZE nnni Ifn I ft I I 80 IREPOMT I I 1 ---I1 II I -- ,L I -J 1 I LI L-- I I r- I I f - A L- -J I I II I 11 I I I -J I II I i I PRinter -1 IIINES'TZE nnn I I 1 I I L-- Ioptions ICP 301 I -- r- _J SPOOL I command L- I I froml I J I I I I r -I 1 ION I I FI L ] I I RF PO PT I STATISTICS r I IoCN I I L I I I F I J SET I CASF r 1 I UPPE RI I LOW ~PlI I I J L I I r ROWNUM JON I I I I I L L JI I I -I r T IT L E I 'I I CN FF I I ' <tifle1'/' titl e2>'/ I L I I I I I I J -J 4. r- I I I I Quer ?yI OUTput I I REPORT I I STATistics I CASF I ROWNUM I I I 1 I I I I I TITL E I --J 5. CP I <command> ; ; -4 6. at f < (o mm tf >; 7. Any SEQUELtrinsacticn. 8. QuIr; 1- -4 2 Pppenii commands of 1TRANSACT Explanaticn 1. RUN (not T implemented) Fexecutes the transacticns in tho file specified fn ft by ages labelled frm. Only the transactions described on the SEQUEL SYNTAX should be included in a run file. Transactions will be processed seguentially and the system will respond with the message TRANSACTION COMPLETED after the last transaction has been processed. Errors may or may not cause processing to terminate, dependiig on the nature of files must consist particular error involved. Run type RECFM V) variable length records (in CMS EDIT.T the of 2. OUTPUT Directs all specified. output except for messages to the device OPT-O9_S LINESIZE The user may indicate a linesiJe for terminal, disk, or of the printer as long as it conforms to the limitations output device. Unless therwise set the following L1NFSIZF values will be in effect: for terminal - LINESIZ 80 for disk - LINESIZE80 for printer - LINESIZE 130 TERMINAL All output will be displayed a the terminal. If the CRT outputtahles will be folded. option is notspecified CRT This option will enable the resultant command and the catalog tables from the SELECT queries LTST DOMAINS, DESCRIBF TABI.E to be displayed in "window"format. Commands which may be used with the window are: -43- Up n 1 r_ I _~, own Next In] I I L_ Left [n Eiqht (n] Continue UP n, DOWN n, LEFT n, RIGHT n will cause a displacement of n CONTINUE rows or columns in the ccrresponding direction. command. will allow the system t accept the next TRANSACT DISK Output will be directed tc the file indicated by fn ft f. PRINTER Output will be directed to the printer. Any arguments from the CP SPOOL PRT command ay be used to modify the spooling control options. Standard CP SPOOL defaults will be used. 3. SET R EPORT If REPORT is ON, the system types out diagnostic trace of all rutines on the terminal a entered. STATI STICS If STATISTICS is ON, the system keeps statistics on time spent in processing. The statistics are printed, together with the current SEQUEL statement on the STATPRI LISTING file. CASE If case is set to LOWEF, all quoted strings will be passed directly to SEQUEL withcut conversion to upper case. Thus, SET CASE LOWER will enable all literal character strings entered at the terminal tc remain as they are typed in. SET CASE UPPER will cause character strings to be converted to upper case. 'POWNUM If ROWNUM is ON, be numbered format. for the rows generated both folded and by a SELECT command "window" output will table -l 4 T1I T L.E This option provides an optional titling faculty for reports. When a title is specif id it will be centered at the top of all output tables (Pxcept those output to a CPRT). SET TITLE OFF stops the printing of the current title SET but allows the title to be retained in the system. TITLE ON causes the current title to be printed with the output tables as described above. Lines of a title may be a specified by using SET 'IILP, '<titlel>'/'<title2>'/... maximum of 6 lines is allowed. Fach line must be enclosed byv slashes. A single quote in single quotes and salatel may be used in the text cf a title by entering it as two single quotes. 4. QUERY Displays the options which are currently in OUTPUT and SET commands. 5. CP Allows CP environment. 6. effect for the commands to be Pcxecuted in the TRANSACT CMS subset of CMc;commands to be executed Allows the following in the TRANSACT environment: ACCESS LISIFII.E RENAME CP PRINT RETI rN DISK ERASE EXEC PUNCH SET QU E Y STATE REArCARD TYPE tan If CMS commands other message will be typed ad 7. See SEQUEL 8. thos;e listed are issued, an error the command will be rejected. BNF for valid querins. QUIT Fnds the session. NOTES: 1) All commands must e followc:l by a semicolon (nested -459- quories require more than one ;omicolon) 2) Transactions may require moT' than one input line. A transaction may be deleted by tvning (%). If you wish to use () as a percent sign, enter (%). 3) TRANSACT senses the end of a transaction character entered on a line is a avoid premature termination by input, make sure that a smicolci COMPUTE clause) is line. 4) When TERMINAL not the last LINESIZE TERMINALLINESIZE is alsc 5) To enter is chanqed. the single-user if the last semicolon. Therefore, to TRANSACT of transaction within a command (e.g. a character changed in entered on a TRANSACT, TRANSACT environment CP from CMS type: transact and wait for the RFAY; m ss-.ge. 6) If you want disconnected to for example, type: transact use Transacticr TRANSACT to communicate Virtual Machine with tyvm and wait for the RfAY; messa]e. with a an id of TVM, -4 6- Appndix J TPRANSACTPlN Comonand Macro Processor Proposal EFAFT CPY This publication is i rtended for those GIS users who want to use the TANSACTRN facilities. It includes information on writing facilities procedures. a RUN procedure, using the TRANSACT BRUN and RUN contrcl statements, and building The reader should have an understanding RUN of elementary programming techniques such as branches, loops aad loop control as wll as an understanding of TANSACT operating procedures, ccmmands, anl the CMS editor. -47- INTRODUCT TON are combinvfOiors commands that TRANSAC'T commands. S FQU.I and a sequence invoked, it represents i new TRANSACT RUN called u:ing the CS Fditor. procedures, are usuall y create Whena RUNprocedur of existing commands, nw The to define user T. perm(t, TRANSACT IIN f cilities The to the logic control of commandsthat are executed according user The TRANSACT statements defined in te PUN procedure. several execute that can create simple FUN i roced,]rs can or h queries, used frequently complex devise RUN logical conditions before procedures that etst sveral The logical deciding whether or nt to execute a query. with are controlled PUN processor in the capailities DO and GOTO, IF/THEN, the simil r to statements sers. language level statements familiar to ,igh LOOP sequence A run procrdure is created by lacing a selected C S valid any have can file RUIN file. A ot commands in a UtlN that recommended is it ut and filemode, filetype( PUN he TAANSACso as to avoid confusion. filetypthe 130 to up records h 1enjt are flad up of aryin files TRANSACT/SEQUEI, one consists Qf lonj F(Ich record characters filename, UN control statement. command or using th CS AlthoughTtNfiles are usually created by a card file from Editor, the can they PCCEDUP A RN b%~ user simply UNprccedure, a To invok or by a user program. rader sers virtual INVOKING be created by reading also by th, filename, TRANSACT command 9'UN, followed filemode 'Al' These respectively. the PUNfile. IN fil< is Whena the execution variables are tho for the execution requlircd, taken for ccntr.ols UN 7zllstittitingvalues for pa sing anl T nPNSACT of default values invokedi, thlr? UN interpreter cf the prccedure, wh¢ere just by entering and filemode are 'TRANSACT'and filctye the filename if t be invoked can A UN procedure arguments. the and a list o "TIN file wanted, and optionally, the of enters filetype to T\NSAC" ontrol cmmInds. manirulate paramneterlists, thus PUN procedure to the [ass ar jument: The RUN interpreter car allowing the when it is executed, corresponq specified user to a command in the UN file is replaced by the e in it is ti-orarily invoked. 9cfcre argument from each variah when the the RTM rocedurr, 9,arameter list 1as invoked. tha- Use of was hese variable arguments thus permits execution within reat flexibility in cmmand the FPUN Proce.lure. The contents introduced in thp preceding paragraphs are discussed in greater detail later in this document. At this point, however, the user can see that the RUIN facilities that he cant use to develop provide him with a powerful tool his own command languaqge or set of operating procedures. -49USING THE TANSACT RUN FACItITTES This section describes the three ma jor parts of the TANSACT FUN facility: .1. The RUN command which initiates TRANSACT execution of a RUN file. 2. The RUN files, which contain sequences of TRANSACT commands and RUN ccrtXcl 3. The RUN interpreter, stateaments. which analyses each statement in a RUN file before T NSACT executes the procedure. Each of these items is described in greater detail under a separate heading. -5 0- RUN FLES that can A RUN file is a CMS data file commandsand RUNcontrol statement;. TIANSACT contain RUN files can be created with he CMSeditor, by punching cards or by a user progran. 'rho file should be of varying record length with a maximum record length not greater than 130. and two typos of statements: RUN files consist of nonexecutable. Fach tyre is discussed below. executable NONEXECUTABLE STATEMENTS PUN file is one that begins in A nonexecutable statement with an asterisk (*) and may or ay not contain text. These statements are for use as comment statements and are ignored during RUN interpretaticn and processing. EXECUTABLE STATEMENTS An executable statement UN in a file is any statement that does not begin with an asterisk. hese statements consist of contiguous nonblank which are strings of data items characters separated by blanks. Three classes o executable statements 1. 2. 3. by the are recognized UN interpreter: Null statements. TRANSACT commands. Control statements. Each of these statement classeis is discussed under a separate heading. n addition, a section on labels and comments is also given. Null Statements A null statement is an number of data items execuatable statement in is zero. blank line which the is a null statement. TRANSACT Commands The RUN interpreter considers an executable statement as a TRANSACT command if the first data item does not start with item an asterisk or a hyphen. Data an ampersand, replacements are made cn the statement and then TRANSACT executes the command immediately. Any valid TANSPhCTccnzand may - incluled PUNprocedure Another may be invoke in a RN f i. by simply another RN commandand setting the rcursion to be described later. entering nesting option Control Statements An executable statement i data item is a RUN control are: a control statement if the first word. Examples of control words $GOTO &EXIT &IF Control usually satements begin with a control word, which is followed by a list of data items and, in some cases, by additional lines of data. Control statements provide the of hi RN means by which the user can con--ol thn oxortion procedure. The IF control word, for exampie cn estubisi a conditional test arnd a branch ( &GOTO ) can be taken if the condition is met. Labels and Comments A label in a RUN procedure begins with a hyphen (dash), and contains up to fifteen additional alphanumeric characters. A label can be placed in front of a TRANSACT command or RUN the object of a A label is often control statement. branching control statement, uch as GOTO or &LOOP. When searching for a label, first word on a line. A comment in a RUN the RUN interpreter procedure begins with an star ). the remainder of the combination of valid characters included in the count examines of the number only the asterisk ( line may contain any desired. A comment is of lines read in from a file for execution ( for use in references to line numbers or references to the sccpe of an FLOOP ), but the text is ignored. See the section describing the &** control statement for alternate methods; of ntering comments. -52- THE RUN COMMAND The RN commanld gives one the ability to execute one or more TRANSACT commands c FUN control commands contained in a specified file, by issuing a single command. The format of the RUN command ] is: I RUN FN PT FM [ NEST/NONEST] (args...) where: FN is the filename of a file containing one TRANSACT commands to be executed. or more FT is the filetype cf that file. It can be any valid CMSfiletype butif it is left out, it is assumedto be "TRANSACT". FM is the Again, it filemode cf the file. valid CMSfilewode but. if it can is left assumed to be "Al". be any out, it is NE ST/NONEST indicates how titles and other features handled for recursive commands. That is, files which invcke cther RN files. are to be those RUN arqs are the in arguments to reFlace the the RUN file specified. thirty symbolic indicated variables by an ampersand () numeric variables Within a RUN file, may be up used (each to one followed by an integer rangingfrcmone to thirty) to indicate The arguments are assignerd to symbolic variables in values which are to be replaced when the RUNfile the order is executed. in which they appear in the argument For example, each time an Fl1 appears list. in a RIJNline, the first argument specified with the RUN command temporarily replaces the $.1, the second argument specified within the RN command replaces 2, and so on, to argument N of the RUN command. If the percent sign is ued in place of an argument, the corresponding variable (N) is ignored the commands which refer to that variable. specified RUNfile contiins more variables in all f the than -53 - arguments given in numbered variables the RIJNcommand, the ark aslmed higher to be missing, and are ignored when the commandsare executed. -5 4 - RUN CONTROL STATEMENTS An executable statement is a control statement if the first data item is a RUN control word (the only exception are those statements control statements preceeded begin with a control by word labels). Control which is usually followed by a list of data items. Control statements provide the means by which the user can control RUN procedure. Fach FUN control the execution statement below. (Note that all can be truncated length of 2 characters. Truncations rightmost character in the control verb.) of his is described down to starts a minimum from the -595- &ARGS CONTROL STATFMENT r1 I ( [argl [arg2 ... &ARGS ]] ) _L-_-___-_-_-__-__-_-_-__-_-__-----J--J-J----J-J----J--J-J----J--J--J--J-J Redefines the arguments 1, &2, ... with the -J value of 'argl', 'arg2' ... NOTES: List of arguments enclcsed in parentheses, separated by blanks Strings with embedded blanks can be enclosed with single quotes. Quctes within a quoted string are represented by two adjacent single quotes. In a normal string however, they are represeated by themselves. A per cent sign () is used to inlicMe a null value for given argument SBETYPE in a list. CONTROL STATEMENT r~~~~~~~~~~~~~~~~~~~~~j~~~~~~~~- &BEGT YPE linel1 line2 line3 I I * . I . linen I &END L Displays IT) . 'line1' 'line2', .. at the terminal. No argument replacement is perormed. NOTFS &BEGTYPE must have a matchinj &,END control statement for delimiting lines to te rinted. -C6 (- &CCNTINUE CONTFOL STATEMEN' r -... I &CONTINUE L ------- Provides a branch addrEss fcr the &GOTO control statement and conditional braching statements. &BETURN CONTROL SATEMENT r£~~~ ----__ __ -- ----~-------- r~~~~~ I r I &RETURN i 1 I returncode{ I L C I J L-- Exits from RUN file with the given return code. NOTES Return code must bE between and 9. If larger code is given, only the first digit of that number is used. If an invalid code is giver , or one is missing, 0 is assumed. -57- &ERROR CONTROL STATEM1FNT I r I executable FRR I &F RROR I I blank statenlment I I I I line j L I 1 I J-_-_-_-_-_-J -- L a given action Specifies to b taken when an error occurs Entering PPEROR followed by a blank during execution. to the normal system response. The the action resets line out the string being is tc print normal response processed the time at of the error and then request a replacement line from the console. SGOTO CONTROJ STATEMENT r…-- --- -"- r II I GOTO & GOTO I I I 1 I I TOP I line_ I L label number I I I I J I the RUN file, to the tc the top of Transfers control given line number or t the line starting with '-label'. NOTES The label 1 specified shoult not have a leading hyphen, need have one to in the text only the statement label label. If a transfer it is a statement indicate that point is not found, a message is displayed and execution continues with the statement directly after the &GOTO just processed. I -58- &IF CONTROL STATEMENT r~~ ~ ~~~ I I I r I EQ I I I I NE GT I LT I I I GE LE I I I NG I I I t I I I I &IF [ TOKEN 1 ] I I L 6.…____ __ __ __ __ __ Executes the satisfied. 'I I I I I I I I [ TOKEN2 ] executable statement I J __ __ -- __ _---_----- 'executable statement' if the ------------ I I condition is NOTES To compare for a null string, enter %% (double per cent sign) as the token tc be used for the comparison. Nesting of &IF statements is allowed so long as the entire statement is contained on one 130 character line. _LOOPCONTIOL STATENT r… I I r LOOP I I I 1 n label I [ ] I I L~~~ Loops through the fcllcwing n lines, or down to but not including the line indicated by '-label', for times. NOTES The 'label' specified hould not start with a hyphen as only the actual statement label needs one. Nested loop statements are not allowed. The statements passed over by the execution of an SKIP control statement are not included in the ccunt for the number of statements executed in the loop. *WARNING* Be careful tat the scope of the statements inside a loop does not extend beyond the limits of the loo itself. (i.e. an 8BEGTYPE control statement inside a loop with its associated END -59control staterment ')ut!side the end of the loop.) ERFAD CONTROL STAIEMENT I &R1~D I.…~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Read the nxt line fromn the it had been contained _2UIT terminal and treats it as if in the RUN file. CONTROL STATEMENT r1 I &QtIT Exits from the RUN file with Same as the statement J a return code of 0. (i.e. ) &RTTIRN &SRIP CONTROL STAfEENT r~~~ I I I I &SKIP ~~~~~ r I L ~~~~~ra-'ra----m-m----- -- - - -- - - -- m -- --m -- -- ________ I ' n I I I j Skips over the next r lines in is given, 1 is assumed for n. I 1 I the RUNJ file. If no value -60- &SPACE CONTFOL STATEMFNT I I SPACF $,SP AC F I I ln TyeL r I I In I I I I L 11 J ie tte emnl eal au o I Types n blank lines at the'terminal. Default value for n is 1. &TYPE CONTBOL STAIEMENT I r TYP &TYPE I 1I1 L I I L-J Prints I I n the terminal. I I1 1 J next Default n lines fromn the RUN file at the value for n is 1. NOTES Unlike the BFGTYPE cntrol statement, the TYPE control argument substitution before statement does perform printing out a giver line. It can therefore be used to check for correct redefinition control statement is executed. of arguments when an ARGS -61&** CONTPOL r STATEMENT - [ text.]1 j 5** L- Indicates that the text a comment. n this line is to be ignored as NOTES Comments are also indicated by a '*' in column 1. SPECIAL STATHEMENT SYNTAX '*' (in column 1) Indicates that the present line is a '-' (in column 1) Indicates that this line conatins a statement label and the first token comment and is to be ignored. is therefore rest of the processing. to be truncatedfrom the line before -62WRITING A RUN PROCEDURE Once a RUN procedure is designed, it can be entered into the VM/370 system in two primary ways. 1. By punching cards, which are then read via the real system card reader and the sers virtual reader. 2. By using the CMS Editor to enter input lines into a CS file. The Editor ormally truncates all input lines at 8e characters. This truncation can be avoided by specifying the RFCL option of the EDIT command with a record length of up to 130 characters. The Editor also normally assumes a file to have fixed length records. This can also be changed by specifying the RECFM option of the EDIT command to be varying. For example: EDIT filename RANSACT (LRECL 130, RECFM v) BUN files can also be created by a user program. Regradless of which method is used, the format of the entered statements is basically the same. nly one TRANSACT command or RUN control statement may be entered per card or card image. TRANSACT commands must be in the same format as they would be if entered from a terminal. To use the CMS Editor to create a RUN file, simply enter the command: EDIT filename TRANSACT (LTRECL130, RECFM V) where the filename is any valid CMS filename, and the filetype of TANSACT can be different. If the RUN file specified in the FDIT cmmand is a new file, the message: NEW FILE: EDIT: types out The user at the terminal. can then type INPUT subcommand and start entering input lines the Editor replies as follows: in the as soon as input INPUT: ( Beginentering irFut lines. ) Each input line is ended by pressing the return key. When input is complete, return to the EDITmode by pressing the Returnkey again. If the file needs no corrections, simply type in the FIIE subcommand. The data is stored and control is returned to the CMS nvironment. A RUN file created this way can be executed by typing in "RUN filename." Its contents can be examined either by typing it at the terminal using the CMS TYPE command, or by printing it on the system printer using the CMSPINT command. -63- The prcedinq descril'tion only a creating few of the and discussion qu ide. maintainirg of the of the CMS Editor identifies Editcr functions UN fills. CMSEditor, that may be For refer to useful in a more complete the VM/370: EDIT -64Appendix K Proposal for IPANSACT Transaction Editor permit a user of TRANSACT to edit This facility will any transaction that is typed in before actually executing allow that transaction to be executed and it, and ill edited any number of times without.need for reentry. Conventions Each command entered in TRANSACT will be saved just as it was entered, in multiple line format. The TRANSACT EDIT command will allow that command to be modified in a manner that parallels the CMS Editor (e.g. use of current line Until the TRANSACT editor subcommand QUIT is pointer). entered, TRANSACT will remain in EDIT mode, and the EDIT subcosmmand GO must be used to execute a transaction. When the TRANSACT user is not in EDIT mode, each transaction entered is executed in the normal manner, and if the first line entered after a FArY; message is not EDIT;, then the buffer for the current transaction is cleared to accept a new transaction. New TRANSACT Command EDIT; TRANSACTuser Puts the (TRANSACT) EDIT subcommand input the into TRANSACTEDIT mode. Any to modify or may now he used current transaction. If the current transaction is empty, then the editor automatically enters INPUTmode. TRANSACT EDIT Subcommands Input Puts the editor into INPUT mole. Successive lines are added or inserted into the current transaction in a manner a nullline returns the similar to the CMS ditcr.Entering editor to EDIT mode. GO Executes the current transaction. After the -65- transaction has een xEcuted, TrANSACT returns to EDIT mode with the current line the transaction. The trarsaction is not erased. [n Type ointer (CLP) pointing to the top of 1] Types n lines of the the line indicated cur-nt transaction, starting with If * is used, all lines from by the CLP. the CLP to the end of the transaction are typed. Next [nl!] Moves the CLP down n lines. lip [nil] Moves the CLP up n lines. DELete (n[*l1] .. Deletes n lines of the current transaction, starting with the line indicated by theCLP. If * is used, then all lines from the CLP tc the end of the transaction are deleted. DROP The entire current transaction is equivalent to a TOP subcommand deleted. followed by a This is DELETE subcommand. Top Sets the transaction. CLP tc the top line to the last line of the current Bottom Sets the transaction. CIP of the current -66- Chanqe tha /strinq1/string2/ first occuremlc Chanqes the line indicated by the CLP. of string1 to string2 on Quit Leaves TREANSACT EIl processing continues. NOTE: The EDIT; command macro processor. i mode. Normal TRANSACT not recognized command by the RUN command -67- Appenlix Using the The DBDESCRcommand is DBD:;SC?Command used to get a general description The user selects one of two of each table in a database. options for the amount cf information s/he wants printed: (a) a as well column description ("TESCRIBE TABLE...") as a row count for each table, or (b) only a row count for each table. USE DBDESCP fcllowed The user types three things: of the by one following TERM PRI NTER (nothing) This directs terminal, printed the the program DBDESCR terminal. output jrinter; if the or to assumes that For example, either nothing to user's the is typed the output after goes to the to the the user might type DBDESCR PRINTER which invokes printer. the program and sends the output The program will respond with DO YOU WANT THE CLUN DESCRIPTION FOR EACH TABLE? REPLY Y/N wishes the column enters ' Y' if s/he The user now (along with the row descriptions printed for each table count), or 'N' if s/he wishes only to have the row count for each table. description. The program now prints out the database AFpendix Bulkloading of a Da+abase (LTDB) The program LTDBB loads a database from a CMS file, using free-format loader commands and user-specified format for the data records. The CMS file may have an arbitrary filename, filetype, and filemodo. The program is in the form of a stand-alone module; that is, it cannot be invoked while using TRANSACT. The loader can be used to: (a) Add data to an existing table (b) Create a new table (C) Create a new domain. CS file may contain One a mix of all three loader commands. When loading a SEQUIF table, the loader checks the data being entered against any assertions that were in effect at the time the loader was invoked (assertions cannot be set using the loader, but ay be set using TRANSACT). When loading a table, the loader only adds data to the table, and does not affect data already present in the table. The loader knows the input file as COMFILE in the program. Hence, the person using the loader to load from his or her input file called, for example, "INPUTDATA INPUTTYPE", on the A-disk, must link "COMFILE" to "INPUTDATA" by means of a FILEDEY: FILEDEF COMFILE DISK INPUTDATA INPUTTYPE A (It is not necessary (PERK) that the input file be on the A-disk.) An easy way to invoke the loader without entering the FILEDEF is to use the EEC command LOADDBB as follows: LOADDBB fn ft fm This EXEC will issue the FILEDEF for the arbitrary file "fn ft f", and will then invoke LTDPB automatically. There is a default assumption that data that is to be added to a table all character string should be trimmed of any leading blanks; this is usually desireable. If the user does not want the leading blanks removed, eg. to be able to line up columns in the utput of a SELECT command, he or she must use the NOLTRIM' option when invoking the loader; the user enters, instead of tel above command, a command of the form: LOADDBB NOLTRIM fn ft fi -69- The INPTITDATA file records is The F). (RECFM a reqular CMS fike of 80-character consist commands lcader of one or ach command control more records in the INFUTDATA file. card is read in a free format - each argument must be separated by one or more of the data specified in Note that this is not true lanks. records themselves - these mustbe in a format major There are five card. $T.OADTAB the commands: 1. Domain Command Define Format: <domain name> <domain type> $DEFDOM <domain type) character). Each command creates 2. numeric) or can be NUM (for CHAR(for one domain. Define Table Command This each cclumn in the name, and for both a table; command creates it defines table, the table it identifies the column name and domain name. Format: $DEFTAB <table name> <column name> The order of domain name> ... the columns (left to right) in the table is the same as the order of he <column name>fields in the format description. immediately be fcllcwed The Define Table commandmust by a Define Key Primary command. 3. Define Pkimary ey Cgomand This commandmust immediately follow a Define Table command. The format is: SPRIKEY <column name> ... $ENDKEY Note that though it is not necessary for a table to have a primary key, it is necessary to include a Define Primary Key command immediately after a Define Table commandin INPUTDATA.If there is no 1 space primary key, there must be at least between 4. $PRIKEY and ENDKEY. Load Table Command the system what table is being This commandtells loaded, and in what format the data to be loaded is -70- data--in that foind; the Note that the table been previously created command or a SEQUE CATF twc The cmmand has format--follow the indicate? arts: the data cards (records) in the command command. must have loader (either by a $DEFTAB ABLE command). and description the format FORMAT DESCPIPTION name> <column name> <1st $I.OADTAB table Each column tokens be t associated description: loaded card <last position> <last cards> <1st position> $ENDCOL a has in with it group of the > .. five format column name 1st card # -- the index (relative to the next data card the loader will process) of the first card with data to be loaded into this column (this is normally 1--that is, the loader starts reading data off the first data card it finds--ie the next one). 1st position -- the leftmost card column (in the <1st card >th card) where to be inserted found. last card -- into this column the data is to be the index, relative to the next data card (that is, the same data card to which <1st card #> is relative) of the last cardwhere data for this column is located -- the rightmost card column lastposition on this last card where data for this column is located. The effect of each set of 5 tokens is that the loader inserts into the column <column name> all the data between <1st position> on <1st card> and <last position> on <last card>. the order of the columns need not be the same as the left-to-right order that the table maintains; any order is acceptable, as long as the data are in the same crder. If some columns in the table being appear in the format description assumes a default value of zero for loaded do not the system that column. This is a potential problem since some columns have underlying domains of type CHAR. So, it is advised that all columns in the table have an -7 1 - entry in the format escription. The records are processed one by one in the order as they appear in TNT'JTDATA. If a column name appears more than once in the format description, an error conditicn will result and the program will terminate. DATA FCCRDS are PC0 byte Data records format a data record is of completely Since one row record of the loader allows each input row over n data records more than a of a table may require 80-byte data records. The determined table (one tuple). for one row of a has the data which description. description. A set of by the format single card image records respective format follow their input file, the of a table to extend These data records are The 2, ...,n. assigned relative numbers 1, relative numbers are used in the <1st card#> and <last card > fields of the format description to indicate the starting and ending points of a given column. It is therefore possible to have the data for a single column extend over more than one record. If the data data for a column, card(s), contains after being nothing read from but blanks, the 0 for columns of data loader assumes a default of type for columns of data type NUM, and UNKNOWN CHAR. End-Load arker: The last data card must be followed by $FNDLOAD 5. End-Of-Input Command The last record of INPUTnAT.A card whose frmat $ FNDINP is: must be an end-of-input -72- EXAMPlE: $DEFDOM MODELDOM CAR $DEFDOM VOLDUM NUM $DEFDOM MPGDOM NUM $DEFDOM DATEDOM N UM $DEFTAB CARSALES MODEL MODELDOM DATE DATEDOM VCLUME VCLDOM MPG MPGDOM $PRIKEY MODEL DATE $FNrEKFY $LOADTAB CARSALES MODEL 1 1 1 15 DATE 1 20 1 23 VOLUME 1 28 1 34 1 MPG $ENMDCOL 17 1 19 CHEVROLET 12474C1 33108 CORVETTE CHEVELLE 1547401 17974C1 2078 21175 CHEVY 1877401 21464 NOVA SPORTVAN 1 274C1 1370 MONTE CARLO CAMARO VEGA PONTIAC GRAND PRIX FIREBIRD VENTURA OLDSMOBILE 1497401 17974C1 3027401 1387401 1 037401 17974C1 1217401 1107401 15668 8787 38455 10170 4042 3666 4890 10 533 $ENDLO AD $ENDINP -7 3- Appenfdix N Creating Backur Dumps of SEQUEL Databases A need exists for creating backup dumps of SEQUEL data bases. A UFI has been written which fills this requirement. It is invoked SEQDUMP y entering filename This will create at least cne, anl sometimes two files. The file which will always be created has the file name filename and filetype SEQDUMP. This file will be in bulk loader format,and may be used to reload a reinitialized database. Using the distributed EXEC file for execution of the dump function, this file must be unpacked before it can be used by the bulk loader. This is accomplished by issuing the following command: COPY filename SEQDUMP (UNPACK Because each character domain is output into this file with a width equal to the maximum width for the domain, tuples which originally were contained in 80 characters will no longer be so contained. Hence to reload the database, the mnalitplecard version cf reload the database. the bulk loader must be used to The second file which. may be created, depending on the contents of the database, will have a file name of filename type of SEQUEl. It is in a format and a file use as a SEQUEL query file using a UFI which suitable for allows query input from files. It will contain SEQUEL queries which will were present in the reestablish any inversicns which original database. This file is necessary because inversions cannot be entered through the bulk loader. If there are no inversions in the database, this file will not be created. If the disk space occupied by the file with filetype SEQDUMP becomes oppressive, by editing the file SEQDUMP EXEC, this file ay be put on taFe. This is done by modifying the FILEDEF for ddname DUME to tape. If this is done, the COPY command which packs the SEQDUMP file should be removed from SEQDU9P EXEC and the FIIEDEF for ddname COMFILE in the bulk loader EXEC file should be modified for tape input to it. -74- Appen'lix Saving and Restcrin.ja SQUEL Database The SEQBACK and SQFESI functions are used to save and They are very restore a SEQUEL datalase, resnectively. fast, taking only about DDP command to copy each 1 sec they per cylinder; use the cylinder of the database (including the non-335 disks) ontc tape (bit-by-bit), them from the tape in like manner. or to restore USE: SEQBACr nn -- saves SEQREST nn -- reloads a core image of the datdbase the core image where nn is the number cf cylinders on the 335 disk (eg 20, 10). ENVIRONMENT: It is assumed that for either operation virtual address 181 and attached; a tape is mounted at for SEQBACK the tape is it can be properly written assumed to be positioned so that is tape that the assumed it is for SEQREST and onto, image. positioned at the beginning of the dump of the core -75 P Appendix a Database Saving and Restorin Database can be managed with a using SQBAC, "saves", single tape, using the twc (EXVC') roitines: DBSAVF and DBSCAN the help with 181 address of a private the tape assume that (though not necessarily save is been mounted at virtual rewound). of the? tape is as basic organizaticu The database Log. The routines Database has alradyv witi stored a follows: "stamp-file" id.ntifies directly in front of it, which the "save", the number of cylinders of involved, and the tables that were saved. each inserted te time and date in the 335 area The files on the stamp-file,save . tape alternate: stamp-file,save ---etc. A new stamp-file/save pair is stamp-file,save ---always put on the tape immediately after the most recent one (because it is assumed Saviq that they nver get erased). a Database If the tape is a clean tape (ie does not have any previous database saves on it), the user should rewind the tape, and invoke DSAYF (see below) are already If there savers on the strategy is to find the last in conjuntion with save the Database on the tape, the tape, Tog, then to using simply overall DSCAN use DBSAVF to store the database. To start, the user invokes DPSCAN will respond with (no arguments), which COMMAND? The user should ncw type FIrST and DBSAVE will find the stamp-file for the first save on the tape, and print its name, eg. This DB 11/8 NEMTSA A1 indicates to the user that the database save that -76- as follows from NEEMISA account, and was saved on Nov*mh'r - 8. (The routine will for input.) If the now F:rint ollt "COMMAND?" again, anit wait user wishes follows, he enters to know more about the save that CONTENTS The contents of A-disk, the stamp-file T fn ft where 'fn be loaded onto the ft f' user can further down by entering fm designates the stamp-file. If this is not the last the will and the user may ncw examine them verify by database save on the tape, which consulting the list tfy entering two commands (in reponse to his log, either of he may skip the following COMMAND?'): NEXT SKIP n NEXT moves on to the next save on the tape, and prints out the name of its stamp-file (as above); SKIP moves over n saves (default is 1), and prints the file name of each corresponding stamp-file (so that the last stamp-file listed is the last one read, and the save corresponding to it is ready to be read i). When the user has determined that he has found the last save on the tape, he should skip over the save itself by entering the command LAST which returns to CMS, and invoking the DESAVE exec. The DBSAVE exec (preceded by the will now sav a copy of the database proper stamp-file). It takes two arquments: the first is the name of the account that the user is on, and the second is the number of cylinders in the 335-area that is to be saved (the same argument as SEQBACK exec). For example, the user might enter: to the DBSAVF NEEMIS3 10 When the database has teen saved, the user should note in his log the name of the stamp-file (to preserve the fact that it is now the last one on the tape) and may rewind it. -77a Database Restorin strategy The overall the it by enterinq is to the using rstore, to you wish SFQICAt' M (no arguments), DBSCAN D? user Now the in types name of the first DB_ 12/22 "FIPST" stamp-file NEEMIS3 and T)}SCAN will print out the on the tape, user that database save that the on December 22. was from NEEMIS3, and was saved user wishes more detailed If the such as A1 to the This indicates follows loading and thenre command. the user shculd invoke To start, which will rspond with CO save that find the particular DPSCAN exac, particular save, he should enter the information about this command CONTENTS (in response to another 'COMMAND?'). into the A-disk; the the stamp-file The routine will load user may now examine it by entering T fn ft fm where 'fn ft fim' designates the stamp-file. stamp-file would look like this: A typical 20 CYLINDER DATABASe SAVED: TIME: 22:13.05 DATE: 12/22/75 5 TABLES: INT EGik T Y DOMCAT CATALOG DOOBY DOO BLOOPBIOOP this particular save, If the user does not wish tc rload by using find the right save he may scan down the tape to the two commands: NEXT SKIP n NEXT moves on to the name of its the next save on the tape, stamp-file (s above); and prints out SKIP moves over n -78(default is 1) saves, and corresponding .tam--fil is the last one read, ready to be read in). t he f ile prints name of each (so that the last stamp-file listed and the save corresponding to it is Note: to simply list all the saves on a particular tape, the user may enter the 'FIRST' command followed by a 'SKIP 300' command (which will run off the end of the tape and flag an error, but a CMS BEW command will fix that up) When the user has found the save to be restored (ie. has just had the name of its stamp-file printed, or just looked at the contents of its stamp-file using the 'CONTENTS' command), he should enter the command SEQLOAD nn where na is the number of cylinders on the 335-area to be restored (this is the same as the number of cylinders listed in the stamp-file itself). The database will be restored, and the user may rewind the tape. Summar of DBSCAN In response to the questicn 'COMMAND?', the any of the following seven commands: FIRST -- rewinds tape, finds user may enter first stamp-file on tape, and prints out its name NEXT --. skips over one save", and prints name stamp-file ccrrespcnding to next save (if any) of SKIP n -- skips over the next n "saves" and prints the name of the stamp-file corresponding to the n-th save (if any) CONTENTS--loads most recently found stamp-file onto A-disk, and responds by printing 'ENTER TYPE COMMAND (OR NULL LINE)' SEQLOAD n --restcres database pointed to by most recently found stamr-file; argument is number of cylinders on 335-disk LAST -- skips over the next "save" (presumed to be the last one on the tape) and returns QUIT--returns In response to CMS to C S to 'ENTER TYPE COMMAND (OR NULL LINE)', the user should: --enter a type command (to type out a stamp-file that -7 q has hbenri loaded -- enter h y thr. C TF PIS comnmand), or i carriaqe return, to indicate no typeout. Appe ndiY ) Usirg SELn TMP 3/1 0/7 E SELDUtP is a selective dumpfacility, that oerates throuqh the MultiUser Interface. It allow. a user to dump selected table(s) from the DB Machine into an arbitrary file, in includes bulk loadable PDEFDCM and/or fcrm (eq. LOADD ). It optionally $CEFFTA records for the table (s). USE: SELDIJMP d-accnt fn ft fn db-accnt---the name of the atabase machine table(s) to be dubfed are located fn ft f---specify in which the the file tn receive the dump Example: SELDUMP NEEMIS ADIEAI LOAPFILE A1 Routine will respon4 with: 'WHAT TAPL?'. Enter the name of the first table ycu wish to have (lumped. Routine will then ask 'DO YOU WANT rEFTABS, $DEFDOMS, BOTH OR NEITHER (T/D)/B/N)?'. Enter cne of the four letters 't', d', 'b' or 'n' remain to indicate in effect your choice--this option will only for this table. The routine will now ump te tble as directed. It will then ask you for the rame of the next table, and for your $DEFTAB-etc. option, as abov . You may dump as many tables as you want; when you ae through, simply enter a carriage return (y itself) in response to the 'WHAT TABILE?' query. Note: recall that ycu ay not b able to dump extremely larqe tables with this routine, due to the limited size of the 340 area. If you need to, contact John aglio or Bryan M an. - 31 - Appeadix Procedure for Analyzinq rDatabasce 1. VMA 2. )LOAD Utilization FI, 201 SEQUTII (note,: this is a LOAD, not a COPY) 3. PAGFSUSEE (this calculates is the API function that utilization totals) The terminal will print the form: CON FILE nnnn several TO xxxxxxxx CONFILE"messages, of COPY 01 NOHCLn Then the program will output 5 numbers: (a) total number of relation ages used (b) total number of overflow pages used (c) total number o data pages sed (d) total number of pages in use--the (c) (e) the highest cylinder sum of (a), (b) and number in use ROUGH ESTIMATE OF USAGF: Type: EXTENT(0;0)--using brackets. instead of parantheses Response will list total rumber of pages that are available Compare this number with the total given to the database. in (d) above--(d) will e some fraction of this number, representing percentage f total pages presently used up. MORE DETAILED ANALYSIS: The total number of cells allocated to each of the three types of pages (that is, relational, data and overflow) was determined when FORMSGT(eg SEQINIT) was last done on the database. Each cell can accoumodate allocating 20 cells for data up to 48 pages, so that pages, for example, means that there cannot be more than 2C X Comparing this figure (that is, 48 given in (c) above will tell 48 =960 data pages. X *_of_cells) to that you how running out of storage for data pages out of storage for control blocks close (actually, for you are to to running data pages). -82- the rigurns used with FOPMSGT for the nulmber of in used, canrl be and overflow cells relation cells conjunction with (a) and (b) above, to see how close you are Likewise, to running out of those types of pages.