`
`RMS Structures and
`Utilities on VAX/VMS.
`
`Student Guide
`
`Prepared by Educational Services
`of
`Digital Equipment Corporation ·
`
`001
`
`Facebook Inc. Ex. 1215
`
`
`
`Copyright!&' 1986, Digital Equipment Corporation.
`All Rights Reserved.
`
`The reproduction of this material, In part or whole, is strictly prohibited. For copy
`information, contact the Educational Services Department. Digital Equipment Corpo(cid:173)
`ration, Bedford, Massachusetts 01730.
`
`Book production was done by Educational Services Development and Publishing in
`Bedford, MA.
`
`Printed In U.S.A.
`
`The information in this document is subject to change without notice and should not
`be construed as a commitment by Digital Equipment Corporation. Digital Equipment
`Corporation assumes no responsibility for any errors that may appear in this
`document.
`
`The software described in this document is furnished under a license and may not be
`used or copied except In accordance with the terms of such license.
`
`Digital Equipment Corporation assumes no responsibility for the use or reliability· of
`its software on equipment that is not supplied by Digital.
`
`The folloWing are some of the trademarks of Digital Equipment Corporation.
`
`....
`I
`ALL-IN-1
`CTS-300
`DATATRIEVE
`DEC
`DECdlrect
`DEC mail
`OECmat
`DEC mate
`DEC net
`OECservice
`DECsystem-1 0
`DECSYSTEM·20
`
`DECtalk
`DEC US
`DECwriter
`OIBOL
`OSM-11
`FM$-11
`Kl
`KL10
`MASSBUS
`MicroPower/Pascat
`MicroVAX II
`POP
`P/OS
`
`Professional
`RAINBOW
`RSTS
`RSX
`TOP5-10
`TOP$-20
`UNIBUS
`VAX
`VAXcluster
`VAXstation VMS
`VT
`Work Processor
`
`:l <
`l
`1
`
`'1
`
`' 1
`-,
`1
`
`]
`J
`]
`J
`1
`J
`J
`J
`
`_j
`
`.J
`
`002
`
`Facebook Inc. Ex. 1215
`
`
`
`CONTENTS
`Course Description ..................................... .x
`.............................. .x
`
`Course Organization
`
`Prerequisites ............. -. • •.• -•...• :r-• •;• .-.•.•.•••••••••••• x
`
`Course Goals .•.............. ·-• .•.•.•••.••. -................. ,·xi
`
`Non-Goals .-.••.• _. •••• .: • • ••• _ ••••••••••.•.• -•• -••• ~ •••.•• -•••••.• . x ii
`
`Resources • ....•. • •.•.. • ............ -..••.. ,.-- .: ..... • ....... . xi i
`
`MODULE 1. OVERVIEW OF RMS DATA
`STRUeTURES AND SBRVICBS
`
`Components of the VAX/VMS I/O system . . . . . . . . . . . . . . . .
`VAX RMS user Control Blocks . . . . . . . . . . . . . . . . . . . . . . . . .
`
`••• 1-1
`
`••• 1-2
`
`File Access Block (FAB) ••••••••••••••••••
`. ... . 1-4
`• •• 1-5
`Record. ~~~~Hl~ >l}loqk {RAB} ••••••••••••••••••
`..... 1-6
`Ex ten<tt;t.? · !t~rtQliolt'* J1llocks { x~s J• ••••••••••• • ••
`Name . Block ( N~M) ••••• · ••••• ·~ •• ··,. .... · •••••••••
`• •• 1-8
`
`RMS Naming Conventions .................................. 1-9
`
`......................................... 1-9
`Field Names
`•• 1-10
`Field Values
`
`. . ........... " ................. .
`RMS Services/Procedures .. " ..................... . ••..•. • 1-12
`
`MODULE 2. RMS UTILITIES
`
`Part 1.
`
`Introduction .................................... .2-1
`RMS Utilities . . . . . ..................................... .2-1
`Creating FDL Files . . . . ................................. .2-2
`EDIT/FOL Scripts .................. -............. . • 2-3
`
`Creating Data Files
`
`• • • • • • • • • It . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
`
`iii
`
`---------·-------------------------------~-·-------~-·-~··-.. ------·
`
`003
`
`Facebook Inc. Ex. 1215
`
`
`
`Part 2. Evaluating/Utili~ing •••••••••.••••••••••••••.• 2-12
`
`FDL -- Invoke Script •••••••••••••••••••• "'" ••••.•. 2-12
`FDL Graphics Output .••••••••••••••••••••••.•••..• 2-17
`FDL -- TOUCHUP Script •••••••••••••••••••••••••••·2-19
`
`MODULE 3. OVERVIEW OF FILES-11 ON-LINE
`DISK FILE STRUCTURE
`
`Disk File Str~cture on VAX/VMS ••••••••••••••••••••••••• 3-1
`
`The ODS-2 Reserved Files ••••••••••••••••••••••••• 3-1
`Comparing the ODS-1 and ODS-2 Structures ••••.••.• 3-2
`,ODS-2 Dit'ectories ••••••••••••••••••••••••••••••• ,.,3-2
`Directory File Structure ••••••••••••••••••••••••• 3-3
`
`File Characteristics ••••••••••••••••••••••••••••••••••• 3-5
`
`ODS-2 File Headers •••••••••• ~····~···············3-5
`
`Disk Physi~al Characteristics ••••••••••••••••••••o•••··3-6
`
`Disk Organization .•••••••••••••••••••••••••••••••••••••• 3-7
`
`MODULE 4. OVERVIEW OF RMS FILE ORGANIZATIONS,
`RECORD FORMATS, AND ACCES$ METHODS
`
`RMS File Organization ••••••••••••••
`
`•- ...•• •· .••••. ·• ..... 4-1
`
`$eq~ential Files ~····••••••••••••••••••••••······4-1
`Relat~v~ Files ......•..•........••. $ • • • • • - • • • • • • • • 4-2
`Relative Data Cell and Bucket Format ••••••••••••• 4-5
`
`Record Form~t .•••••••••••••••••• e • • • • • • • • • • • • • • • • • • • • • • 4-6
`
`Record Acce:::~-s l,.. .... ions •••••••••••••••••••••••••••••• b • • • 4-7
`
`Random Access to Indexed Files ••••••••••• ~ ••.•••• 4-8
`Access by Record • s File Address •••••••••••••••••• 4-9
`
`iv
`
`004
`
`Facebook Inc. Ex. 1215
`
`
`
`MCDOLE S.
`
`tND~~t.Q .. ~I~·. OJi~I~~'t.tON
`lN't!!RNAL STltUC'rtlR! . ANO OVP!RHEAD
`
`Part 1.
`
`Internals ••••••••••••••••••••••••••••••••••••• 5-l
`
`overall Tree Structure and Prolog ••••••••••••••••••••.• 5-l
`
`Indexed sequ.ent ial Files •.••• ~ •••••••••••••••••••• 5-3
`Pro log Oeser ipt ion •••••••••••••••••• ~ •••••••••••• 5-6
`Key Oeser i pt-ors .................. , •.••......•..........•. S-1 o
`
`Area Desc-riptors ........................................ 5•21
`
`Data Bucket Structure · •••••••••••• ~···~···········.•···········5-27
`Data Record Format, • , ................................ 5-32
`
`Record Refe;ence vectors (RRVs) and Bqc,k~t Splits •••••• 5-34
`
`Simple B~cket Sgllts ····~·~··············~·······5-35
`Multibucket Splits ................................ 5-37
`Bucket'Splits with Ouplicate RecordS ••• ;u~ ••••.. S-38
`
`Key and Oat' Compression (Pro log 3) ...................... 5-39
`
`Primal='y !<ey Compression • ~ q . . . . . . . . . . . . . . . . . . ~ • • • • • • 5-39
`Data Compression •••• ~ .... ~· •••••••••••••••••••••••• 5-41
`
`Index Bucket ••••••!•••••••· ••••••••••••••••••••••······5-42
`Index Record Forma.t ................ .., ............... 5-43
`
`Index Compr•ssion ...................•...•............. . 5-46
`
`Binary versus Nonbinary Index Search ••••••••••••••••••• 5-48
`
`secondary Index Buckets and Data Recocds {SIDRs) ••••••• 5-49
`
`. •••••••••• 5-49
`Secondary Index Bucket Format • • • • • • • •
`. •••••••••• s-49
`Secondary lnd~:x Oata · ~eco.:a Forni~t ; • •
`Compression -."-.' •••••••••• ~. -~ ••• -~ ., .................... s-53
`
`Part 2. Simulated Data Example •••••••••••••••••••••••• 5-54
`
`MODULE 6. RMS UTILITIES
`
`Part 3.
`
`tntroduction ••••••••••••..••••••••••••••••••••• 6-l
`
`Analyz inQ File Structure ••.•••••••••••.••••••.••• 6-1
`Measuring Run-Time Performance ••••••.••.•.•.••••• 6-2
`
`Part 4• Evaluating/Utilizing ••••••••••.•••..•.•.•••••• 6-8
`
`v
`
`005
`
`Facebook Inc. Ex. 1215
`
`
`
`MODULE 7. FILE SHARU1G ~NO . RECORD/BUCICET LOCKING:
`SEQUENTIAL; :R~~l\T!VE't NfD IND£XED tiLES
`
`File Sharing ••.•••••••••••••••••••••••••••••••••••••••• 7-1
`
`Record Locking •.•.•.•.••.••••••.••••••••.•••••.••••.•... 7-4
`
`Automatic Record Locking (RMS Default) •••••e••••·7-5
`Manual Record Unlocking •••••••••••• ~ ••••••••••••• 7-6
`
`Alternative Record Locking Controlling Options ••••••••• 7-8
`
`MODULE 8. BUFFER MANAGEMENT:
`AND INDEXED FILES
`
`SEQUENTIAL, RELATIVE,
`
`Interaction of RMS Options with Buffers •••••••••••••••• 8-1
`
`Read-Ahead/Write-Behind •••••• · ................. • ••• 8-2.
`Asynchronous Option with
`.
`.
`Read-Ahead/Write-Behind Interaction •••••••••••• 8-2
`oeferted Write ····~ . .,····~~···························8-3
`·Asynchronous I/O •• ~ ••••••••••••••• ~ •••••• • ••••••• '3-5
`
`Local Buffers ~ ...... ~ ............... • .. •. ·· .. •' .•... ·· .• ~. ·~ ... 8-6
`
`··size and Number of Buffers •••••••••••••••••• ~·· ••••••••• 8-11
`
`Sequential ••••••••••••••••••••••••••••••••••••••• 8-11
`Relative ... ~.~ .... ; .......•................ -. ....• 8-11
`Indexed ••••••••••••••••••••••••••••••••••••••••• 8-12
`Choosing Data Bucket Size fo" Indexed Piles •••••• 8-12
`Number of Buffers •••••••••••••••••••••••••••••••• 8-15
`
`Global Buffers and Index Caching ••••••••••••••••••••••• 8-17
`
`Single NoOe ••••••••••••••!••••··~·················.,, .•• 8-18
`
`Reau Or• .. , •••••••••••••••••• _ ....................... 8-18
`~6t Rest ict'd to Read Only •••••••••••••••••••••• 8-19
`Summary -- Global Buffer Performance
`(as of VAX/VMS version 4.4) •••••••••••••••••••• 8-28
`
`VAXclU.sters ............................................. • 8-29
`
`Lock Value Block ••••••••••••••••••••••••••••••••• 8-30
`Performance Recommendations for
`VAXcluster Global Buffers •••••••••••••••••••••• 8-30
`
`Calculating the Number of Buffers
`Needed to Cache Index •••••••••••.•••••••• ~ •••••••••••. 8-3 2
`
`vi
`
`006
`
`Facebook Inc. Ex. 1215
`
`
`
`R.MS uTttl:t:~·ss
`MoooL! • ·~;.
`Part 5. Ob)timizing ~and Redesigning Files •••••••••••••• 9-1
`
`• FDL Optimizing Function ........................... 9-2
`Reorgani,zing Pile$ ··~ ••••• • •••••••••••• • ............ 9• 3
`
`MODULE 10. OP'l'IM·I.Z.INO ·PILE; PSRPORMANCB:
`DBSIGN AMD TUNING SUMMARY
`File Creation Parameters ••••••••••••••••••••• 10-1
`
`Design
`
`TUning
`
`Run-Time Parameters •••••••••••••••••••••••••• 10-2
`
`MODULE 11 • PERMANENT ·!'!~8 An"RlBUTBS UEltSUS
`RUN-TIMS FILECBARACTBJIS'l'ICS
`
`Permanent File Attributes •••••••••••••••••••••••••••••• 11-1
`
`Run-Time File Characteristics •••••••••••••••••••••••••• 11-3
`
`File .OJ.?.Eitn Options .................................. 11-3
`Record C'bnne\ct ®tiona .............................. 11-3
`
`Default ·set,tlhgs\fof: ~RMSControl Blocks
`for Higher-Level Languages ............................ 11-7
`
`FAB Default Settings ••••••••••••••••••••••••••••• 11-7
`·RAS Default Settings ••••••••••••••••••••••••••••• 11-11
`XAS J?•.f:a\llts ••• ~1 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ll-14
`DCL Commands for Implementing RUJ\-Time Features •••••••• 11-15
`
`SET FILE •••••••••••••••••••••••••••••••••••••••••11-15
`SHOW>RMS DEFAULT •*•~··•~'··••••• .•••• : ••••••.••••• 11-16
`SET BMS_OEFAULT ....... • .................. , •••••••••••• 11-17
`
`Specifying Run-Time Options •••••••••••••••••••••••••••• 11-19
`
`RMS Run-Time Options Available Through
`the FDL AJ)t:);' Function • • •••••• ~ ••••••• •· .................. 11-20
`
`vii
`
`007
`
`Facebook Inc. Ex. 1215
`
`
`
`MODULE 12. CALLING RMS SERVICES DJ:R~~?-'Li{ FROllt MAC)tO ..
`AND HIGHER-LEVEL LANGUAGES ... .
`. .... ·
`
`The VAX/VMS Procedure Calling Standard ••••••••••••••••• 12-1
`
`Reporting Success or Failure of a Call ..................... 12-2
`
`Calling as a Function •••••••••••••••••••••••••••• 12-2
`RMS Completion Status Codes •••••••••••••••••••••• 12-2
`Testing Completion Status· ............................. -.12-7
`
`Passing Arguments to Procedures ••••••.••••••••••••••••• 12-15
`
`MODULE 13. ALTERNATE APPROACHES TO ACCESSING RMS CONTROL
`BLOCKS DIRECTLY -- LANGUAGE EXAMPLES
`
`USEROPEN Function. Or Regular I/0 .••• • -. ••• • ~ •••••••••••• ].3-1
`
`Entry Points to Pascal Utilities ••••••••••••••••• 13-25
`
`FDL$PARSE Alternative ••••••••••••••••••••••••••••••••••13-27
`
`FDL$PARSE Routine ••••••••••••••••••••••••••••••••13-28
`,'' ,''
`Fields in RAB Defining User Record Buffers ••••••• 13-32
`
`'
`
`, ' ',
`
`\
`
`VAX Language I/O Operations· aJ'd .RMS S~rv.ic~ts ••••• 13-35
`Current Record Context ············-··············13-41
`
`MODULE 14. ADVANCED USE OF FILE SPECIFICATIONS
`
`Search Lists and Wildcards ••••••••••• ~ •••••••••••••••• ~14-1
`.
`.
`De •. :ults or Logical Namea ............................. 14-1
`Search 1:st •••••••••••••••••••• ~ •••••• ~ •••••••••• 14-1
`Wildcarc...; .•••••••••••••.•..•••...•..•....•..•.•• • 14-1
`
`RMS Default File-Parsing Activities •••••••••••••••••••• 14-3
`
`RMS File-Parsing Activities Not Oone by Default •••••••• 14-4
`
`LIB$FIND FILE
`
`Find File ••••••••••••••••••••••••••••• 14-9
`
`viii
`
`008
`
`Facebook Inc. Ex. 1215
`
`
`
`MODULE 15. PROCESS OUQTAS AND LIMITS
`Process and System Resources for File Appltcat.1i6n$ ••••• 15-1
`
`ttemcHfY ~qyif:~t~ntl,.· ••• ~ ~· ., .••••• ·•·· .. ~ ••••••••.. 15-1
`Proces$ . !•co('~.;tPc:klfl.o Quota- • ;• ~ •••• •! ... ~,, ... "~. ~ .. 15-1
`O~her tl$ltt ~~. ~···········~···········~·······15-2
`
`MODULE 16. RMSQTILIT!ES
`Part 6. ANALYZE/RMS/INTERACTIVE •••••••••••••••••••••••16-1
`
`Sample Interactive Sessions ••••••••••••••••••••••• l6-4
`
`MODULE 17.
`Detecting Problems •• ~ •••••••••••••• ~ .................... 17-1
`
`DUMP Utility ••••••••••••••••••••••• • .............. 17-4
`
`Guidelines for Recoverino nata from
`Corrupted Ind•,xec:t ,.iles •••••••••••••••••••••••••••••• 17-8
`
`Introduction to tile PATCH Utility •••••••••••••••••••••• 17-13
`
`Qualifiers ••••••••••••• , •••••••••••••••• •-• •••. ~·:. •• :.17 .. ··1'·3
`Patch COIDRands ••••••••••••••••••••••••••••••••••• 17-14
`
`Data Recov~ry, Ex~ples ••••••••••••••••••••••••••••••••• 17-16
`
`APPENDIX A •
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`• & •
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`•
`
`.•..•..... ·• .••..••• A-1
`
`ix
`
`009
`
`Facebook Inc. Ex. 1215
`
`
`
`COURSE DEs,QUfl'lON
`
`is designed ... for applicat~c;>Q pl;'ogramme;s who are
`This course
`for
`th• ·p~oc,$sing of.,d~~·~t~~e$ usin~ the Record
`responsibie
`Management· Services··. (RMS).. File optimization strategies are
`approached
`from two perspectives, with emphasis placed on indexed
`file structures.
`
`1. Features that can be implemented at the OCL level
`
`2. Features that Ci~P ~ implemented on.l¥ wi~l)in prog,r;am control.
`
`This course teaches students how to use the RMS utilities and how
`to call RMS
`services directly
`from their programming language
`( specifice~ly in BASIC, COBOJ;., FORTRAN, .PA$CAL. or MACRO).
`
`COURSE ORGANIZAnON
`Length:
`5 days
`
`Format:
`
`Lecture/Lab (2/3 Lecture, 1/3 Lab)
`
`PREREQUISITES
`
`1. Completion of the VAX/VMS Utilities and Commands course'or its
`equivalent.
`
`the
`2. At leas~ tt '"'e months of programming experience in one of
`following 1~ tguages: BASIC, COBOL, FORTRAN, Pl\SC~Lr;•:Or .MACRO.
`This experience should include the use of regular.flle I/O for
`the programming
`language of
`the user's choice to read and
`write records to a file, and to update or delete records.
`
`X
`
`010
`
`Facebook Inc. Ex. 1215
`
`
`
`COURSE GOALS
`
`is designed
`This course
`following task,s.
`
`to prepare students
`
`to perform
`
`the
`
`• Use the RMs utilities (POL, CONVERT, ANAI.'t'2E) and selected OCt
`commands (DUMP, SET FILE, SET RMS_OEFAULT).
`
`•
`
`Interpret 'statistical output from ANALYtE/RMS/STATIS~ICS.
`
`• Tune files. on an on-go i,.ng bas is.
`
`•
`
`that might
`run-time file options
`implement
`Identify and
`optimize file per,f,oz:tnanc:~ for a particular application.
`
`• Perform benchmarks on file performance.
`
`• Calculate and set
`particular file.
`
`the number of buffers needed
`
`for
`
`a
`
`•
`
`Identify when global buffers should be enabled
`file.
`J~
`
`for a
`
`shared
`
`lUJU diie~Uy ft:om
`the
`·dS·• eorut.rol bloelts . tFAB,
`• Access
`programmi~g language Of
`the user•s choice
`(BASIC, COBOL,
`FORTRAN, PASCAL, or . ~CRO) ..
`.-
`
`• <;all IUtS $~r'l/ices di~•ct:,ly from th~ pr~ramming • language of
`the user 1!t chtlie.e. (B'AS!C~ CO&Ot:t FGRTM~~,; l'~CALi or MACRO).
`
`!Uts'c .... alter.nat .. ivlf lobking~ op,tions avaiif.li>le within
`• Enable
`program cdntrol that control record locking and unlocking.
`
`• Recover data from corrupted files.
`
`xi
`
`011
`
`Facebook Inc. Ex. 1215
`
`
`
`NON-GOALS
`
`This course is not designed f.or users who must:
`
`• Write programs in VAX languages in which they have no prior
`expe.,rienqe t;aovered in tll.e NAX generic language cours':s) •
`
`• Write programs that call system services or
`routines
`(covered
`in
`the Utiliz~ng VM$
`courses).
`
`Run-Time Library
`Features from VAX
`
`• Monitor and tune overall syitem file performance
`the Managing Performance on VAX/VMS course).
`
`(covered
`
`in
`
`• Write programs that perform DECnet file operations (covered in
`the DECnet courses).
`
`RESOURCES
`For complete mastery of this course, the follo'!'l.ng resourqes
`the VAX/VMS documentation set should be available to you.
`
`from
`
`Guide !2 VAX/VMS File Applicati~
`
`VAX/VMS Analyze/RMS-File Utility Reference Manual
`
`VAX/VM$ !::~ ~·nrert and convert/Reclaitn Ut.ility Reference Manual
`
`Manual
`
`xii
`
`012
`
`Facebook Inc. Ex. 1215
`
`
`
`MODULE 1
`OVERVIEW OF RMS DATA
`STRUCfURES AND SERVICES
`
`Major Topics
`- Components of VAX/VMS I/0 system
`-VAX RMS user control blocks (FAB, RAB, XAB. NAM)
`- RMS naming coriventions
`- RMS services/prOcedures
`
`Source
`RMS Reference Manual - Sections 1 and 2
`
`013
`
`Facebook Inc. Ex. 1215
`
`
`
`014
`
`Facebook Inc. EX. 1215
`
`014
`
`Facebook Inc. Ex. 1215
`
`
`
`COMPONENTS OF THE VAX/VMS 1/0 SYSTEM
`
`VAX/VMS IMAGE
`
`HIGH LeVEL
`LANGUA«l!<l/0
`
`~L.l/0
`
`'1 "'
`
`A~ORO MANAGE -
`MENT ~RVICES
`
`1/0 DRIVERS
`
`PERIPHERAl DEVICES
`
`Extended OIO Procedures {XQPs) used to perform disk fun~tions.
`
`Ancillary Control Processes (ACPs) used for:
`
`magnetic tape handling fun~tions
`network functions
`
`I/O drivers that perform device-lev'l operations.
`
`1-1
`
`015
`
`Facebook Inc. Ex. 1215
`
`
`
`VAX RMS USER CONTROL BLOCKS
`
`• VAX RMS communicates with control blocks.
`
`• The File Definition Language (FDL) and RMS utilities prov.ide
`access to RMS control blocks to all programmers.
`
`Structure
`
`File Access
`Block
`
`RMS Control Blocks
`
`Function
`
`Describes a fileand contains
`file-related information
`
`Record Access
`Block
`
`Describes a record and contains
`record-related information
`
`Extended·
`Attribute Blocks
`
`Contains file attribute information
`beyond that in the File Access
`Block or record-related information
`beyond that in the Record Access
`'):!lock
`
`Mechanism
`
`$FAB
`
`$RAB
`
`$XABxxx
`
`Name Block
`
`Contains file specification
`information beyond that in the File
`Access Block
`
`$NAM
`
`1-2
`
`016
`
`Facebook Inc. Ex. 1215
`
`
`
`user Program and RMS Data Structures and Buffers
`
`PROCJRAM
`RtGlON .
`(PO)
`
`CONTROL
`REGION
`(Pl)
`
`. SYSTEM
`REGION
`(SO)
`
`PO SPACE
`o USER 0ATAS1'RUCTIJRES
`o .·USER· PROGRAM IM'AG£
`o USER BU.F'FERS - RECORDS
`o USER RMS CON TROt... Bl.OCKS
`{FABs, RA8s, XABs, NAMs)
`
`P1 SPACE*
`o RMS INTERNAL DATA STRUCiURES
`INCLUDING: 1f ASs, 1RA8s
`----
`o RMS BUfftRS - MUL.Tt8LOCKS
`OR BUCKETS
`
`SCkSPACE
`o RMS.EX£
`a RM$ SH~REO F1L.E
`OATA s-muc~~s
`(GLOBAL BUf'F'ERS~ »
`
`'?n?+~~1t"""- ~·-~t;
`""l s1Ya.~ i
`1'
`
`tJ~,e:.t &!d.
`et.ltY.
`
`BU·2413
`
`*
`
`**
`
`Process permanent files have their RMS internal structures in
`Pl. Normal (image} files begin in Pl but can overflow into
`PO, unless the image was linked using the option
`IOSEGMENT•NOPOBUFS. This latter option is rarely used.
`
`Global buffers are page file global sections. They appear
`to a process that is mapped to them to be in PO or Pl, although
`they are maintained in SO.
`
`1-3
`
`017
`
`Facebook Inc. Ex. 1215
`
`
`
`File Access Block (FAB)
`
`and
`The FAB is used for exchanging information with RMS before
`after any RMS
`file operation. The. u-e~prqgram sets fields to
`tell RMS what is needed, and RMS sets fi~Ids to show
`the
`results
`of the operation.
`
`As long as the program is not executing RMS file operations, RMS
`does not access
`the us·er' s
`FAB.
`RMS has its own internal FAB
`which it maintains for its own purposes. This allows you t~ use
`one-user FAB for more than one file, if that is appropriate.
`
`Note that RMS uses certain FAB fields to exchange information with
`the program when pet"~orming file operations. The FA! must be
`available for use when. any file operation
`is
`to be performed.
`Programs using asynchronous operations should allocate a FAB (and
`all the o.ther control blocks) permanently for each file.
`
`File Access Block -- $FAB
`ALO = al!ocation-qty
`GBC = global buffer count
`BKS = bucket-size
`MRN • max-rec-number
`BLS = tape block-size
`MRS = max-rec-size
`CTX = user-value
`NAM • name address block
`ORG = file-organization
`DEQ = extention-qty
`DEV = device characteristics
`RAT • record-attributes
`DNA = default filespec-address
`RFM = record...;format: <value>
`DNS = filespec-size
`RTV = window-size
`FAC = file-access: <value>
`SOC • secondary device characteristics
`SHR = file-sharing: <value>
`FNA = filespec-address
`(~s· = completion status code
`FNS = filespec~s~•e
`"1N = status value
`FOP = file-opti.on: <value>
`FSZ = header-size
`XAB = xab-address
`
`1-4
`
`018
`
`Facebook Inc. Ex. 1215
`
`
`
`Record Access Block (RAB}
`same
`the
`The Record Access Block { RABl is used and main-tained in
`the · FAa,
`except ... th~t the RAB is involved in RMS record
`way
`as
`operations rather than file operations·.
`The RAB is associated wtttra record stream, so there could be
`than one .RAB 'eonctirrer:tt:ly asso<:iated wi:th the same file. For
`reason, the RAB eontain,s .• ·f·~!.eld point:i•ng to. the FAB, . rather
`the other way ~rqund ( ttii·s pbiniter is 'fO'r ycuir ·use,. not RMS) •
`,,<
`RM$ maintains an internal .RAB and does not use the user RAB unless
`a
`record oger;ati\>n ·is ~XeC\ltLng. You wi·l~ find it difficult to
`use one RAB for more than orie ··file. There are usually many record
`operations
`in
`the course of .a J?rog.ram run •.. If there is only one
`RA.8, .. ,·.the . prqgr:• will cdntinuCilly need to ·re:tttore tbe content·s of
`the RAB £ron('copies that lt will have. t.o·matntain.
`
`more
`1lhis
`than
`
`"
`
`A
`
`BKT = bucket-code
`CTX = user-value
`FAB • fa~address
`KBF= J<ey ... buffer-address
`r<:Rr·= key reference ntim&er
`KSZ = key-siZ,e
`MBC = multiblock. count
`MBF • multlbuffer 'count
`PBF • prompt-buffer•address
`J?SZ • pr~~pt-buffe:r;-.size
`RAC = r$66rd ... access•mode
`
`Record Access Block ...;..;.; $RAB
`RBF = record-buffer-address
`RFA • record-f11e""'address
`RliB.* header-buffer-address
`R(:)P = rttteord-opt:tons: <value>
`RS'Z • 'reeortl•size .·.
`STS = cOl\\pletion status code
`·sTV = comp;tetion value
`TMO = seconds
`UBF = user-buffer-address
`usz = user-buffer-size
`XAB • nex:t XAB address
`
`1-5
`
`019
`
`Facebook Inc. Ex. 1215
`
`
`
`Extended Attribute Blocks (XABs)
`
`related
`family of
`.a
`(XABst are
`The Extended Attr•l.bute Bloqks
`blocks
`that are
`linked to the FAB.to coJWt\unicate to VAX RMS any
`file attributes beyond those desc~ibed in the FAB.
`
`An XAB .can both ·Supersede and supplemen.t .the t'il.e characteristics
`spe.cified
`in
`tne FAB. Each type of XAB has a. 6-letter mnemonic
`name con$ist,ing o.f the prefix XAQ followed by three
`letters
`that
`are ass~iate<i witl:l.the function the XAB prqvides •. For instance,
`the XAB that provides the RMS Create service with file allocation
`infotlllation
`that supplements and supersedes the f.ile allocation
`information in the FAB is called an allocation control XAB, or
`XABALL. Multiple XA,Bs can be used f.or the satne file.
`The XABs are described in Chapters 8 through 15 of. the YM. Record
`.Reference Manual.... The XABs .at:"e 9enerally
`Management
`servicef?
`smaller and simpler than the FAB, RAB, and NAM blocks because each
`describes information about a single aspect of the file. They are
`all optional: you•use only the c;mes that you need
`for any given
`call to an RMS service routine.
`·
`
`There are seven types of XABs provided by RMS for file operations.
`
`1. Allocation control XAB ()(ABALL) allows gJ:"eater control . over
`disk file allocation and positionin(J puriJ:t9 file allocation.
`
`2. Date and
`time
`expiration, and
`revision number+
`
`specifies backup,
`(XABDAT)
`·XAB
`revision date-time. values, and
`
`creatlon,
`also
`the
`
`re'~eives
`3. File header characterist i ~s XAB
`the
`tXABFHC)
`information contained
`ir
`the header block ofa file, ·which
`consists of certain file characteristics. This information is
`restricted to user output.
`
`4. Key definition XAB (XABKEY) defines the key characteristics to
`b~ associated with an indexed file.
`
`5. File nrotection XAB
`protection
`file
`defines
`{XABPRO)
`chara• :eristics
`that specify what class of users or list of
`users can have certain specified access rights.
`In
`the case
`of an ANSI magnetic tape file with HDRl labels, XABPRO defines
`the accessibility field character.
`
`6. Revision date and time XAB
`revlslon
`the
`specifies
`(XABRDT)
`date-time value and
`revision number to be associated with a
`file.
`
`7. Summary XAB (XABSUM) receives file characteristics associated
`with an indexed file, which are not returned by XABFHC. This
`information is restricted to user output.
`
`1-6
`
`020
`
`Facebook Inc. Ex. 1215
`
`
`
`The XABs used for any given RMS service call are connected/. to /the
`FAB in a linked list. Tbe h!ad of the list is the . FAB$L XAB field
`in the FAB4 . This fhtl? contains th~ .address of the first XAB
`to
`~•~<-1· · !aeh succe$aiye XAB in .·tf,te .list links to the next 1.1sing
`be
`the XABS:t. f.TXT field. Thts.field cqnt:ains the address of the next
`XAB in thi 1 ist. ·
`·
`
`One XAB type, XABTRM, is associated with the RAB rather than with
`the FAB..
`Its purpose is to allow. ext!nded control. over terminal
`read operat.ion$ via laMS, rather
`than by . usin.ij. tl\e' QIO
`system
`servi.ce:-
`·
`
`1-7
`
`021
`
`Facebook Inc. Ex. 1215
`
`
`
`Name Bloek (NAM)
`the file specification
`aupplemeots
`The .. name Qlock {N~ }?lock)
`informettion available· in a· S'"B. A ~AM blqck ~:; usef)Jl for opening
`if
`and locating f~.}.e$, especially
`the file spectfic~tion was
`if wildcards or a search list
`entered by
`a
`terminal user, or
`logical name may be present in a file specification,
`representing
`multiple files •
`
`f.lAM
`. The;r:e is. onJ.y one type 9f N~~ block, and 1JSual1y only one
`block
`is associated with each file. To provide an extra level of
`defaults for a file specification, RMS will apply defaults using
`additional N~ blocks
`that contain
`the file specifications of
`related files.
`
`1-8
`
`022
`
`Facebook Inc. Ex. 1215
`
`
`
`RMS NAMING CONVENTIONS
`
`F'teW Names
`
`IUIJS uses ~n,em(;l;nic aam~s,. ~o id.e~tify each field. in a .c.o.ntrol block.
`For examp.\.e,. • ~ll:~ m:nel'llQft:iC\ . ,l'latne
`fot":.
`the field in. the FAB that
`contains the •lloca.tiot;: ·q\.i;a,nti·t.y is ALO.
`
`The mne~nic ~-~ (usually ~hrEte c;.b.aract;ers fn .. lengt;hl serves as a
`to a. symt>()llC\ n-~ .. t.~a.t. ~4e,ntifies tPe locatiol'l of each
`suffix
`control blC>ek.fittl,<;l. U.~ Qf tQe·S~ppli~"'syml:)olic .n.ames ensures
`that you will place values in the co.;:r:,,<;t oontrol .. blQek fields.
`RMS defines each symbolic name as a constant value equal
`to
`the
`·offset.,
`in bytes, fr~. the. bec;iJin~~ng. of tb.a,t ,\control block to the
`beginning of the field location. These symbolic names are
`.called
`symbolic offsets. The general format of the symbolic offset is:
`
`CCC$X_fff
`
`The cp•ponents of this format,are t;~ari~ed below ..
`
`Component
`
`Length
`
`CCC
`
`3 letters
`
`Description
`Iden~ifies.thet¥'1f*l Of control block:
`FAB, NAM, XAB (fot.all XASs}, and RAB
`
`$
`
`X
`
`1 character
`
`. Separa.tor character: al.ways a dollar
`sign (')
`·
`
`1 letter
`
`Identifies the length cif the field:
`
`1 character
`
`fff
`
`3 or more
`l$tters
`
`• B for byte
`• w for word
`• L for lohgword
`• 0 for quadwort!
`• T for te;t buffer address
`S£~~rator character; al¥ays an
`under~ "'>re ( _)
`
`Identifies the mnemonic name of the
`field, wh~ch is use~. in t;ne VAX MACRO
`control block ntac~o or higher-level
`lanquage. US$ROPEN functi.ons. ·Some
`mnM!It\<fnicscontain mor~.th.an three
`letteFS; f9r eKptple.1 $ynd)olic. offset
`~B$B_PROLOO (from· XABKEY)".
`
`Example
`
`The FAB field·. whose mnemonic is ALO has a length of one
`and is identified by the symbolic offset FAB$L_ALQ.
`
`longword
`
`1.:..9
`
`023
`
`Facebook Inc. Ex. 1215
`
`
`
`Field Values
`Field values involve four different naming conventions.
`
`1. xxx$C_fff
`
`symbolic
`the first kind of symbolic field values are simple
`These are identiffe%:1 t:sy the pll'esenc:e of a c
`field ... · values.
`immediately following the bloek prefix
`in
`their name•
`For
`example~ the RAB$B RAC
`field has three symbolic values, one
`each
`for sequent ia! ~ .. keyed,
`. and RFA: access modes.
`'l'he
`symbolic names for these values are AAB$C SEQ, RAB$C KEY, and
`RAB$C' RFA~ These symbolic field values are used· in simple
`assignment statements.
`
`The c·sym~ol is 'used for any field
`value (~ constant)•
`
`that can have only one
`
`2. xxx$M_fff
`
`to
`The second kind of symboli,c field value uses mask values
`define bit offsets ra~her thah e•pli~it valUe$~ These are
`identified by the presence of M
`immediately
`following
`the
`block prefix in their name. For example, the FABSL FOP field
`is. a l<mgwor~ f~eld with the individual bits treated-as flags.
`flag has. a mask value for specifying a particular file
`Each
`processing option.
`
`FAB$M CBT
`FAB$M-CTG
`FAB$M:TEF
`
`Contiguou~ 'best try•
`Contiguous
`Truncate at end of file
`
`TheM symbol is used for"Jny fields in which several options
`may be specified simultc..neously. These options are identified
`by bits witnin the field.
`
`The masking ·~alue is an
`appropriate bit(sl~
`
`integer value
`
`that
`
`sets
`
`the
`
`3. XX. 'V fff
`
`bit offset
`
`4. xxxss_fff.
`
`size
`
`The thirdand.fourth k:i.hds of symbolic field values are also
`used to define flag fields within a larger named field. These
`are ldentJfiE7d by the s . andV values
`immediately
`following
`the b.;ock pr~fix in -their -names. The s_ form of the name
`defines,the size of tha~ flag field (usually the value 1
`for
`single bit
`flag
`fields),
`and
`the v
`form defines the bit
`offset from the beginning of the larger -field.
`These
`forms
`can be used with the symbolic bit manipulation functions to
`set or clear the fields without destroying the other flags.
`
`1-10
`
`024
`
`Facebook Inc. Ex. 1215
`
`
`
`The v symbol is an alternative to t;'be ·M'··· syaljol to be. US$<-l
`any fields' containing options identified by bits.
`
`for
`
`The rtMS. Reference ~e.nual 'identifltut f ileld options by
`t.he.
`v
`symbGl
`!However, ·~very ''V
`'has' a corresponding M
`sytnb()L
`·version.
`·
`
`that are not
`For most of the FAS, RAB, NAM,
`and XAB
`f .. ields
`supplied using
`symbolic values, you will need to supply sizes or
`pointers. For the sizes,.you can use ordinary numeric constants
`or other numeric scalar qu~ntiti.es.
`
`----------------------------- ·- -------- ·--·---------------------
`
`025
`
`Facebook Inc. Ex. 1215
`
`
`
`RMS SERVICES/P.ROCEDURES
`
`the VAX
`language using
`RMS services can be called from any VAX
`Procedure
`.and Con<lition Handling. ~t.~nda;d.,
`RMS .·· services are
`system serv:ices aonc;l are identif~ed by the entry point prefix SYSS
`followed by
`three or more characters.
`In the correspQnding VAX
`MACRO macro name, the SYSS prefix is not used. For example,
`the
`Create service has
`an entry point of SYSSCREATE and a VAX MACRO
`macro name.of $CREATE ..
`
`RMS Servit:es
`
`Service Name
`
`Macro Name Description
`
`File Processing and File Naming
`
`SYSSCLOSE
`
`$CLOSE
`
`Terminates file processing and
`disconnects all record streams
`
`SYSSCREATE
`
`$CREATE
`
`SYSSDISPLAY
`
`$DISPLAY
`
`SYSSENTER*
`
`SYSSERASE
`
`SENTER
`
`$ERASE
`
`SYS$EXTEND
`
`$EXTEND
`
`SYSSOPEN
`
`$OPEN
`
`SYSSPARSE
`
`S iS$i ;'~OVE*
`
`SPARSE
`
`$REMOVE
`
`SYS$RENAME
`
`$RENAME
`
`SYS$SEARCH
`
`$SEARCH
`
`Creates and opens a new file of any
`organization
`
`Returns the attributes of an open
`file to the user program
`
`Enters a file name into a directory
`
`Deletes a file and removes its
`directory entry
`
`Extends the allocated space of a
`file
`
`Opens an existing file and
`initiates file processing
`
`Parses a file specification
`
`Removes a file name from a
`directory
`
`Assigns a new name to (renames) a
`file
`
`Searches a directory, or possibly
`multiple directories, for a file
`name
`
`1-12
`
`026
`
`Facebook Inc. Ex. 1215
`
`
`
`Service Name
`
`Record Processing
`
`SYS$CON~ECT
`
`SYS$DELETE
`
`$DELETE
`
`S1S~O.ISCONNECT
`
`$PISCONNECT
`
`SYS$FIND
`
`SYS$FLUSH
`
`SYS$FREE
`
`SYS$GET
`
`$FIND
`
`$FLUSH
`
`$FREE
`
`$GET
`
`SYS$NXTVOL*
`
`$NXTVOL
`
`RMS ·-services (cont.. )
`Macro Name· Description
`
`Establishes a· record stream li>y
`a~sociating a RAB with an open file
`
`Deletes a record from a.relative or
`indexed ffie
`Terminates a record stream by
`disconnectlnq'a RAB from ane>pen
`file
`
`Locates and positions to a record
`and returns its RFA
`
`writes (flushes) modified I/O
`buffers and file attributes
`
`Unlocks all records previously
`locked by the record stream
`
`Retrieves a record from a file
`
`Causes processing of a magnetic
`tape file to continue to the next
`volume of a volume set
`
`SYS$PUT
`
`$PUT
`
`Writes a new record to a file
`
`~
`
`SYS$RELEASE
`
`$RELEASE
`
`SYS$REWIND
`
`$REWIND
`
`Unlocks a record pointed to by the
`contents of the·RAB$W_RFA field
`
`Positions to the first record of a
`file
`
`SYS$TRUNCATE
`
`$TRUNCATE
`
`Tr ncates a sequential file
`
`SYS$UPOATE
`
`$UPDATE
`
`SYS$WAIT
`
`$WAIT
`
`Rewrites (updates} an existing
`record in a fiJe
`
`Await