throbber
EY-3894E-SG-000 l
`
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket