SC34 0404 0_ed_Access_Method_Ver_2_Jul81 0 Ed Access Method Ver 2 Jul81
SC34-0404-0_ed_Access_Method_Ver_2_Jul81 SC34-0404-0_ed_Access_Method_Ver_2_Jul81
User Manual: SC34-0404-0_ed_Access_Method_Ver_2_Jul81
Open the PDF directly: View PDF .
Page Count: 346
Download | |
Open PDF In Browser | View PDF |
------- ---------- --------_.- Series/1 LICENSED PROGRAM SC34-0404-0 File No. 51-32 IBM Series/1 Event Driven Executive Indexed Access Method Version 2 Guide Program Numbers: 5719-AM4 5719-UT5 ----------------------_.-~-~-- Se,ies/1 -. " .' "I LICENSED PROGRAM SC34-0404-0 File No. S1-32 IBM Series/1 Event Driven Executive Indexed Access Method Version 2 Guide Program Numbers: 5719-AM4 5719-UT5 o First Ed;tion (July 1981) This edition applies to the Event Driven Executive Indexed Access Method Version 2 Modification level 0: Program Number 5719-AM4, until otherwise indicated by new editions or technical newsletters. Use this publication only for the purpose stated in the Preface. Changes are periodically made to the information herein; any such changes will be reported i~ subsequ~nt revisions or Technical Newsletters. It is possible that this material may contain reference to, or information about, IBM products (machines and programs), programming, or services that are not announced in your country. Such references or information must not be construed to mean that IBM intends to announce such IBM products, programming, or services in your country. Publications are not stocked at the address given below. Requests for copies of IBM publications should be made to your IBM representative or the IBM branch office serving your locality. This publication could contain technical inaccuracies or typographical errors. A form for readers' comments is provided at the back of this publication. If the form has been removed, address your comments to IBM Corporation, Information Development~ Department 27T, P. o. Box 1328, Boca Raton, Florida 33432. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation whatever. You may, of course, continue to use the information you supply. (el Copyright International Business Machines Corporation 1981 c PREFACE HOW TO USE THIS BOOK The material in this section is a guide to using this book. It defines the purpose, audience, and content of the book as well as listing aids for using the book and background materials. PURPOSE The purpose of this publication is to describe how to use the Indexed Access Method Version 2 to set up indexed files and to develop application programs using indexed files. AUDIENCE This manual is intended for use by: • Application designers to design applications which use the Indexed Access Method Versi on 2. • Application programmers to develop applications which use the Indexed Access Method Version 2. Appl i cat ions for the Ser i es/ 1 can be developed in several languages. Unless otherwise noted in this section, material in this book is intended for use in the development of applications in any of the following languages: • COBOL • EDL • PL/I HOW THIS BOOK IS ORGANIZED This book describes the Indexed Access Method in the following order: • Chapter 1, "Introduction" provides an overview of the Indexed Access Method. • Chapter 2, "Usi ng the Indexed Access Method," prov; des a bri ef description of what indexed files are, how to set" up an indexed file, and application program request statements. Preface iii • Chapter 3, "Defining Primary Index Files," describes the format of the primary index file and how to use the $IAMUT1 utility to set up your indexed files. • Chapter 4, "Loading the Primary Index File," describes loading data records into a primary index file using an application program. • Chapter 5, "Bui Iding a Secondary Index," provides information on using secondary keys, what a secondary index is and does, and how to set up and load a secondary index. • Chapter 6, "Processing the Indexed File," describes how to process the indexed file with an application program. • Chapter 7, "Codi ng The Indexed Access Method Requests," provi'des i nformat i on needed to code EDL appl i cat ions whi ch use the Indexed Access Method. Thi s chapter is intended only for EDL appl i cat ion . developers. • Chapter 8, "The $IAMUT1 Utility," provides information needed to use $IAMUT1, including the completion codes it generates. • Chapter 9, "The $VERIFY Utility," provides information needed to use $VERIFY. • Chapter 10, "Storage and Performance Considerations" describes the storage and performance characteristics of the Indexed Access Method and how to tailor the Indexed Access Method to the processing requirements of your installation. • Chapter 11, "Error Recovery" describe some of the error recovery procedures available for use with Indexed Access Method applications. • Chapter 12, "Installing the Indexed Access Method," provides an overview of the installation process. • Appendix A, "Summary of Calculations," provides a summary of calculations for calculating the various blocks which make up indexed files. • Appendix B, "Preparing Indexed Access Method Programs," provides an overview of preparing an Indexed Access Method application and a sample $JOBUTIL procedure for an EDL application. • Appendix C, '~Coding Examples," provides comprehensive examples of Indexed Access Method programs. Thi s append; xis for appl i cat ion developers using EDL, COBOL, or PL/I as their application programming language. AIDS IN USING THIS PUBLICATION Illustrations in this book are enclosed in boxes. Many illustrations display screens generated while using the Event Driven Executive system. In iv SC34-0404 ,/ / those cases where the actual data exceeds the size of the box, the information may be 'illustrated in a modified format. In display screens appearing in this manual, operator input is shown in bold type. This highlighting is for illustrative purposes only, to distinguish data entered by the operator from that generated by the system. Several other aids are provided to assist you in using this book: • A bibliography Lists the books in the Event Driven Executive a brief description of each book library along with Lists related pUblications and materials • A glossary defines terms and abbreviations • A common index includes entries from each book in the Event Driven Executive library RELATED PUBLICATIONS Related pUblications are listed in the Bibliography. SUBMITTING AN APAR If you have a problem with the Series/l Event Driven Executive services, you are encouraged to fi 11 out an authori zed program analysi s report (APAR) form as described in the IBM Series/1 Authorized Program Analysis Report (APAR) User's Guide, GC34-0099. • C'·"~· · 1 '. , Preface v vi SC34-0404 C\ . CONTENTS ,'I' o o Chapter 1. Introduction IG-l What The Indexed Access Method Does Indexed Access Method Features Devices Supported ..•....•. languages Compatible With Indexed Access Method Components of Indexed Access Method IG-1 IG-l IG-3 IG-4 IG-4 Chapter 2. Using the Indexed Access Method IG-S Your Data Record ............ . Setting Up An Indexed File Using $IAMUTl Processing The Indexed File ..... Summary IG-5 IG-6 IG-13 IG-14 Chapter 3. Defining primary Index Files IG-17 P rima ry Index F i I es ..... . Data Record Primary Key ... . Random and Clustered Record Inserts ... . Defining The File Structure With $IAMUTl Designing Indexed Files Using $IAMUTl - Option 1 Opt ion 1 ................... . Designing Indexed Files Using $IAMUTl - Option 2 Opt ion 2 •.•..••.•• • . • • • Indexed Access Method Blocks . . . . . Data Blocks Free Space Index Blocks Primary Index Blocks (PIXB) Second-level Index Blocks (SIXB) Higher-level Index Block (HIXB) Free Pool ..... File Control Block File Structure Types opt ion 2 Examples .... .... . Example 1:, Allocating Free Records .... Example 2: Allocating Free Records and Free Blocks Example 3: Allocating Reserved Data Blo~ks Example 4: Allocating Reserved Index Entries Example 5 - Defining a Totally Dynamic File Designing Indexed Files Using'$IAMUT1 - Option 3 $IAMUT1 - Option 3 ......•...•..•• Defining, Creating, and loading a File - Summary IG-17 IG-17 IG-18 IG-19 IG-21 IG-21 IG-24 IG-24 IG-24 IG-26 IG-27 IG-30 IG-30 IG-35 IG-37 IG-39 IG-40 IG-40 IG-42 IG-43 IG-45 IG-48 IG-51 IG-54 IG-57 IG-58 IG-59 ... Chapter 4. Loading The Primary Index File IG-61 loading the Primary Index File ..•• loadi ng Base Records usi ng $IAMUT1 ••.. loading Base Records From An Application Program . . . . • • • . loading Base Records From a Sequential File in Random Order IG-61 IG-62 IG-65 IG-65 Contents vii .. Chapter S. Building a Secondary Index IG-67 loading a Secondary File With an Application Program IG-67 IG-67 IG-69 IG-74 IG-75 IG-77 IG-77 IG-79 IG-82 IG-84 Chapter 6. processing The Indexed File IG-87 Secondary Keys ••••••••••••. The Directory • • • . • • • • . • . • • Allocating and Inserting Entries in a Directory Secondary Index •.....••....•.•..••.. Defi n i ng and Loadi ng A Secondary Index ..••• Example 1: Defining A Secondary Index Using $IAMUTI Option 1 ••••.•••• Opt ion 2 Option 3 ••...••.•.••••...•..•. ..................... . •••• IG-87 IG-87 IG-88 IG-89 IG-89 IG-90 1G-90 IG-91 IG-93 IG-93 IG-93 IG-94 IG-94 IG-95 IG-95 1G-96 IG-96 IG-96 Connecting and Disconnecting the Indexed Fila Connecting Di sconnect i ng •..•• Accessing the Indexed File Direct Reading Direct Updating Sequential Reading Sequential Updating Inserting Records Deleting Records Extracting Indexed File Information Maintaining the Indexed File .•.••. File 'Backup and Recovery Recovery Without Backup Reorganizing an Indexed File Dumping an Indexed File Deleting an Indexed File Verifying an Indexed File Chapter 7. coding the Indexed Access Method Requests Request Functions Overview .•.•..• Coding Indexed Access Method Requests CALL Function Descriptions DELETE - Delete Record DISCONN - Close File ENDSEQ - End Sequential Processin~. EXTRACT - Get File Information GET - Get Reco rd •......... GETSEQ - Get Record (Sequential Mode) LOAD - Open File for Record Loading .••. PROCESS - Open File ...•.••.• PUT - Put Record into Fi Ie ....••.••. PUTDE - Delete Previously Read Record PUTUP - Update Record ..•. REL EASE - ReI ea sa Reco rd . • . • • • . EDL CALL Functions Syntax Summary Indexed Access Method Return Codes Summary . . ,. . ... IG-97 IG-97 IG-99 IG-I01 IG-I0l IG-I04 IG-I06 IG-I08 IG-ll1 IG-114 IG-118 IG-122 IG-127 IG-130 IG-133 IG-136 IG-138 IG-139 Chapter 8. The $IAHUTl utility IG-l4l $IAMUTI •.••• $IAMUTI Commands IG-142 IG-142 viii SC34-0404 ',-_;c/' BF - Tailor the Indexed Access Method Buffers DF - Define Indexed File .••••..••..•..•.. DI - Display Parameter Values ..... DR - Invoke Secondary Index Directory Functions AL - Allocate Directory •••. DE -'Delete Directory Entry .•.•. • ••. EN - End Di rectory Functi on ..•..••• IE - Insert Entry .•.•••••. LE - List Entries ...• UE - Update Directory Entry EC - Control Echo Mode . . • . EF - Display Existing Indexed File Characteristics LO - Load Indexed Fi Ie .•••...••. NP - Deactivate Paging PG - Select Paging PP - Define Paging Partitions PS - Get Paging Statistics RE - Reset Parameters RO - Reorganize Indexed File SE - Set Parameters UN - Unload Indexed File $IAMUTl Completion Codes IG-144 IG-146 IG-149 IG-150 IG-151 IG-153 IG-154 IG-155 IG-156 IG-158 IG-160 IG-161 IG-162 IG-166 IG-167 IG-168 IG-169 IG-170 IG-171 IG-173 IG-184 IG-186 Chapter 9. The $VERIFY utility IG-189 IG-189 IG-190 IG-190 IG-191 IG-191 IG-192 IG-193 IG-196 IG-197 IG-200 IG-200 IG-200 IG-201 IG-201 IG-201 IG-201 IG-202 $VERIFY Functions ......•• Invoking $VERIFY .•..•... $VERIFY Input ........••• Invoking $VERIFY From a Terminal Invoking $VERIFY From a Program $VERIFY Example FeB Report FCB Extension Report Free Space Report $VERIFY Messages File Error Messages Error recovery procedure Other Messages ..•.. $VERIFY Storage Requirements Using Default Working Storage Requirements Modifying Working Storage Requirements Summary . . . . . . . . . . . . . . . . . '. Chapter 10. storage and Performance Considerations Determi ni ng Storage Requi rements ...•.. The Indexed Access Method Packages .•.. Indexed Access Method Storage Environment Performance Data Paging Other Performance Considerations o . .. Chapter 11. Error Recovery IG-203 IG-203 IG-203 IG-204 IG-205 IG-206 IG-209 IG-213 IG-213 IG-213 IG-215 Handling Errors Error Exit Facilities System Function Return Codes Contents ix The Data-Set-Shut-Down Condition ••.••. $IlOG - Error logging Facility •.... Deadlocks and the long-lock-Time Condition Ver i fyi ng Requests and Fi les IG·215 IG-216 IG-218 IG-219 Chapter 12. Install;ng the Indexed Access Method IG-221 Installation Procedures .......•.•.. Install i ng The Indexed Access Method ......••• Assembling And Executing The Installation Verification Program IG-221 IG-221 IG-222 Append;x A. Summary of Calculat;ons IG-223 Append;x B. prepar;ng Indexed Access Method Programs ••• IG-229 A Sample $JOBUTIl Procedure and link-Edit Control Data Set IG-230 Appendix C. coding Examples ••••••• IG-233 EDl Indexed Access Method Coding Example EDl Indexed Access Method Coding Example COBOL Indexed Access Method Coding Example Pl/I Indexed Access Method Coding Example IG-233 IG-234 1G-238 IG-24.5 Bibl;ography IG-2SS Event Driven Executive library .•••.•••...••. Summary of library ..... . •.•.•.. Other Event Driven Executive Programming Publications Other Programming Publications Series/l System library Publications IG-255 IG-257 IG-260 IG-261 IG-261 Glossary of Terms and Abbrev;at;ons Common Index x SC34-0404 ...... IG-263 IG-277 / .. "\ \1~_/ FIGURES 1. 2. 3. 4. 5. 6. 7. S. 9. 10. 11. 12. 13. 14. ( Indexed Fila Logical Structure Data Block Format Example Cluster Example •..•••••••• High-level Index Structure Indexed File with Free Records Indexed File with Free Records/Blocks Indexed Fila with Reserved Data Blocks Indexed File with Reserved Index Entries Totally Dynamic Indexed File •••. Loading and Inserting Records ••••.• Protocol for Sequential Updating •••• Indexed Access Method Storage Environment Plot of Data Paging Area Sizes ••••• Volume Space Requi remants •••••••• •••• IG-25 IG-27 IG-31 IG-38 IG-44 IG-47 IG-50 IG-53 IG-56 IG-62 IG-92 IG-205 IG-208 IG-221 """ " Figures xi xi i SC34-0404 C ~· .j! CHAPTER 1. INTRODUCTION The Indexed Access Method licensed program that executes on an IBM Series/1 processor tive Supervisor and Emulator, Version 3.1 Method provides keyed access to each of your is a data management facility under the Event Driven Execuor later. The Indexed Access individual data records. WHAT THE INDEXED ACCESS METHOD DOES Thi s 1 i censed program bu i Ids, ma i ntai ns, and accesses a data structure called an indexed file Your data records can be loaded by the Indexed Access Method ut iIi ty, $IAMUT1, or they can be loaded using an application program. Data records can then be added, deleted, modified, or accessed quickly and efficiently for processing by your application program. When reorganization of an indexed file is required the utility can be used to unload and reorganize the fi Ie. When this licensed program is used, each of your records is identified by the contents of a predefined field called a key. The Indexed Access Method builds and ~aintains an index for those keys and through this index fast access to each record is provided. Your data records can be accessed either by key, or sequentially in ascending key sequence, using Indexed Access Method requests. INDEXED ACCESS METHOD FEATURES The Indexed Access Method offers the following features: C"'·: " • Record access by a primary key or secondary keys - You can access records in an index~d file by one or more keys. Secondary keys use a separate index and Indexed Access Method provi des the connecti on between the primary index files and seconary indexes. Duplication of secondary key fields is permitted. • Support for high insert and delete activity - Free space can be distributed throughout the file and in a free-pool at the end of the file so that new records can be inserted. The space occupied by a deleted record is immediately available for inserting a new record. • Direct and sequential access - You can access records either randomly by key, or sequentially in ascending key sequence. • Data paging - You can improve Indexed Access Method performance by using data paging. With this feature active, the Indexed Access Method retains recently-used blocks of data records resident in main storage. Chapter 1. Introduction IG-1 • Dynamic file structure - A dynamic file structure adjusts itself as needed to handle record additions and deletions. This provides a quick and easy method of designing an indexed file. • Concurrent access to a si ngle fi Ie by several requests - These requests can be from one or more programs. Data integrity is maintained by a file-, block-, and record-level locking system that prevents other programs from accessi ng the porti on of the fi Ie bei ng modified. • Implementati on as a separate task - A si ngle copy of the Indexed Access Method executes and coordinates all requests. A buffer pool supports all requests and optimizes the space required for physical I/O; the only buffer required in an application program is the one for the record being processed. • Input records accepted. • $IAMUTI - A utility program that allows you to maintain a secondary index directory, create, format, load, unload, and reorganize an indexed file. The load and unload functions accept either blocked or unblocked records. • $VERIFY - A utility program that allows you to check the integrity of the index structure, pri nt control blocks, and pri nt a free space report for an indexed file. • Error logging - If multiple error return codes occur, errors are logged in the system error log. • $IlOG - The error log entries can be printed by using the $IlOG utili- Either blocked or unblocked input records are fy. • File compatibility - Files created by the Event Driven Executive Indexed Access Method are compatible with those created by the IBM Series/l Realtime Programming System Indexed Access Method licensed program, 5719-AMI and 5719-AM2 provided that the block size is a multi pIe of 256. • Data protection - All input/output operations are performed by system functions. Therefore, all data protection facilities offered by the system also apply to indexed files. The following additional data protection is provided: The exclusive option specifies that the file is for the exclusive use of a requester. File-level, block-level, and record-level locking automatically prevents two requests from accessi ng the same fi Ie, the same block, or the same data record simultaneously. IG-2· SC34-0404 o The immediate write back option causes all file modifications (delete, insert, update) to be written back to the file immediately. Accidental key modification for primary keys is prevented to help ensure that your index matches the corresponding data. • Di stri but; on packagi ng - The Indexed Access Method is di stri buted with the following variations available: A full function package that is intended to be totallY resident. A full function package which uses an overlay structure. A totally resident package without data paging. A package without data paging which uses an overlay structure. DEVICES SUPPORTED The Indexed Access Method supports indexed files on the following direct access dev ices: C'\'; .,.v/ • 4962 Disk Storage Unit • 4963 Di sk Subsystem • 4964 Diskette Unit • 4965 Diskette Unit • 4966 Diskette Magazine Unit In addition, the Indexed Access Method supports IBM 4969 Magnetic Tape Unit for loading and unloading indexed files with the $IAMUTl utility. Input control and output display devices supported for the $IAMUT1, $IlOG, and $VERIFY utilities are: • IBM 3101 Display Station • IBM 4978 Display Station • IBM 4979 Display Station • IBM 4973, 4974, and 4975 Printers • Teletypewriter Model 33/35 or ASCII equivalent o Chapter 1. Introduction IG-3 LANGUAGES COMPATIBLE WITH INDEXED ACCESS METHOD The following programming languages can be used to code Indexed Access Method programs. • COBOL • EDl • Pl/I COMPONENTS OF INDEXED ACCESS METHOD The Indexed Access Method consists of the following components: • Four load modules from which you can select to support your application program Indexed Access Method requests. These load modules are named: $IAM (full function with overlay) $IAMRS (full function resident) . $IAMNP (overlay without data paging) $IAMRSNP (resident without paging) /_ ..... \~_~;/' The module you select will be named $IAM after installation. • A load module ,$IAMSTGM, which is used to obtain the data paging area, if the data paging feature is requested. • A set of object modules that you may use to generate a customized load modUle. If you use one of the four supplied load modules, you do not need the object modules. • The object module, lAM, is called a link module. You include lAM with your application program using the linkage editor to provide the interface to the Indexed Access Method. • Two copy code modules for i nclusi on in EDl programs, IAMEQU and FCBEQU. IAMEQU provides symbolic parameter values for constructing CAll parameter lists. FCBEQU provi des a map of the fi Ie control blocks. • load modules for each of the Indexed Access Method utilities $IAMUT1, $VERIFY, and $IlOG. c IG-4 SC34-0404 c CHAPTER 2, USING THE INDEXED ACCESS HETHOD ,/ The purpose of this chapter is to familiarize you with some fundamentals of the Indexed Access Method. Some of the features mentioned in the previous chapter will be described only in part here so that a basic example can be constructed. The purpose of this example is to demonstrate the ease with which you can establish an indexed file and to help you select which parts of the book apply directly to your application requirements. YOUR DATA RECORD The data records you wish to process with the Indexed Access Method have the following specific requirements: c • the records must contain a common field that can be used as a primary key • each record must have a unique primary key • the initial records to be loaded must be in ascending order by the primary key • all records that make up an i~dexed file must be of the same length The primary key is any field you designate within your data records. The key field must' begin at the same location in each record. Each key field must have the same length. The key in each record must be unique within the file (data set). The data records that you will initially load must be in ascending order, based upon the fi eld you use as the ,key. I f your data records are not ready to be loaded when you define your primary indexed file, the records can be loaded later by an application program or with the LO (load) command of $IAMUT 1. Your application might use an employee number as the primary key in an indexed file for some applications. You might want to define secondary keys, such as employee name, for the same file for other ap~lications. Using secondary keys requires a secondary index to be defined. Defining a secondary index and us i ng secondary keys i s descr i bed in "Chapter 5. Building a Secondary Index." Whether you use the $IAMUT1 utility to load your data records into an indexed file from a sequential file, or load them with an application program, you must know the format of your input data record. Following is a sample record layout. Although the primary key is shown starting in position 1, it could have been anywhere in the record. Chapter 2. Using the Indexed Access Method IG-5 <-------------------------Empl. Number 80 byte data record Employee Name Address -------------------//----> //--Zip Code //---" <----> 6-Byte Primary Key <~.--------------------> 24-Byte Secondary Key <----------------------> <---> <-//----24-Byte 5-Byte 21-Byte Address Data Field The records used for our example have the following attributes: • block size 256 bytes • record size 80 bytes • primary key length 6 bytes • key position 1 SETTING UP AN INDEXED FILE USING $IAMUT 1 Use the Indexed Access Method uti Ii ty program, $IAMUTl, to set up an lndexed file. After this utility is loaded into the system for execution, the utility displays a sequence of prompts. The prompts are questions displayed on a terminal one at a time to which you can reply using the terminal keyboard. Responding to the questions causes the utility to perform the required steps to: 1. set up the structure of the file (space for records to be loaded, free space for inserts, and an index) 2. allocate a data set (the utility prompts you for a data set and volume name and calls $DISKUT3 to allocate space for the indexed file) 3. define and format the indexed file 4. load the data records into the indexed file loading and using the SE (set parameter) command of the $IAMUT1 utility is described here for the purpose of our example, however, for a complete description of $IAMUTI see "Chapter 8. The $IAMUT1 Utility." The responses for our example are shown in bold face type inside the box. The bold bracketed numbers at the left, outside the box, identify explanatory remarks that we have written below the box using the same bracketed numbers. Of course these brackets and explanations do not appear on the screen when $IAMUTI is being used. IG-6 SC34-0404 0 '1 ~,I The $IAMUT1 Indexed Access Method utility can be loaded with the Event Driven Executive operator command $L $IAHUTI. When $IAMUTl is loaded the first prompt is displayed as follows: [llIEHTER COMMAHD (!): SE , [1] Entering the letters SE (set parameters), follcwed by pressing the ENTER key, causes four options to be displayed: SET FILE DEFINITION PARAMETERS o = EXIT [2] 1 = SIGNIFICANT PARAMETERS 2 = All PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: 1 ~ C [2] The response digit '1', causes prompts to follow which allows you to define an indexed file with a'minimum of information. This response cause a one line prompt to be displayed. / c Chapter 2. Using the Indexed Access Method IG-7 Note: Although the following prompts are displayed one line at a time when using the utility, the prompts and responses are listed here in logical groups for simplicity in describing them. [31 141 [5] [6] [7] [8] 191 [101 [Ill [12] [13l [14] SECONDARY INDEX (Y/N):? N DEFAULT NEW VALUE RECORD SIZE 0 :80 KEY SIZE 0:6 KEY POSITION 1: 1 BLOCKING FACTOR (RECORDS PER BLOCK) 1:3 NUMBER OF BASE RECORDS 0:5 ESTIMATED TOTAL RECORDS 6:20 TYPE OF INSERT ACTIVITYCC=CLUSTERED,R=RANDOM) C:R DATA SET SIZE IN EDX RECORDS: 15 INDEXED ACCESS METHOD RETURN CODE: -1 SYSTEM RETURN CODE: -1 CREATE/DEFINE FILE (Y/N)!: Y [3] The first prompt, "SECONDARY INDEX (Y/H)!:" asks ~f you are spec~fy ing a secondary index. The response was N tor no, because we are defining the parameters for a primary indexed file. [41 The second prompt, "RECORD SIZE" requests the length that the records are to be in the indexed file which you are defining. Note that there are two columns near the right-hand edge of the d~sp1ay. The column on the left ~s headed by the word "DEFAULT". In the default column the values are listed that will be used in setting up the file if no value is supplied in the response (only the ENTER key is pressed). The column on the right, headed "NEW VALUE" is where the decimal value is placed from your keyboard response, followed by pressing the ENTER key. In this example we are using a record length of 80. [Sl The "KEY SIZE" prompt is for the length of the primary key in the data record. In this example we are using a key which is 6 bytes long. [6] Our key field begins in position 1 of the data record. [7] We are requesting that our indexed file be blocked with 3 records in each 256-byte block. [81 The number of base record slots to be defined is S. This number is based on the number of data records we plan to load. You cannot load more records than this value, however, it does not restrict you from ;nsert;ng new data records in the free (empty) slots later. [91 The total number of records that we anticipate that this resultant indexed file will ever contain is 20. IG-8 SC34-0404 c c 110] The type of record insert activity ;s to be R (random). The records added to this file will be inserted by an application program when those records are available. The choice of random or clustered is based on the type of record additions that are anticipated. Random is chosen when the records to be added are expected to be evenly distributed throughout the file. Clustered is chosen when the records to be added ara expected to be in groups, relative to their range in key value. [11] Following the previous response the system will display the number of· records required to contain an indexed file using the paramgters you have supplied. [12J The Indexed Access Method return code (-1) indicates that the parameters you supplied are acceptable; no Indexed Access Method rules have been violated. [131 The system return code (-1) should always be -1 if the Indexed Access Method return code is -1. If any errors are encountered, the ~eturn code may provide additional information. [1~] If you have verified that the parameters you entered are correct, the data set (file) size in EDX records is acceptable, and the return codes are both -1, you can reply Y and the file will be defined and created. If you wish to change any of the parameter values that you previously suprespond N to this prompt and you will be prompted for the next command. To re-enter your responses, reply SE and the prompt sequence will be repeated. pli~d, A Y in response to this prompt causes the next prompt sequence to begin. Chapter 2. Using the Indexed Access Method 10-9 ENTER DATA SET CNAME,VOLUME): IAHFILE,EDXOOl NEW DATA SET IS ALLOCATED DO YOU WANT IMMEDIATE WRITE-BACK? Y. INVOKE LOAD/REORGANIZE AFTER CURRENT FUNCTION (Y/N)? Y DEFINE IN PROGRESS DATA SET SIZE IN EDX RECORDS: 15 INDEXED ACCESS METHOD RETURN CODE: -1 SYSTEM RETURN CODE: -1 INVOKE LOAD (L), REORGANIZE (R) OR END (E) ?L LOAD ACTIVE tlSJ [16J [17J [lal [lSJ The data set and volume name you reply to thi s prompt is what $DISKUT3 uses to allocate a data set for your file. A successful allocation results in the information message "NEW DATA SET IS ALLOCATED". [16J The immediate write back option is recommended for most applications. It means that we want any record in the indexed file that we process with our application program to be written back to the indexed file immediately. Otherwise, the rec~rd will be held in a buffer until that buffer is needed by the Indexed Access Method. [171 If you have data records in a sequential data set which you want $IAMUT1 to load for you at this time, reply Y to this prompt. If you are going to load the data records with your application program, . reply N. For our example we responded Y which causes the following information messages to b@ displayed: "DEFINE IN PROGRESS". The information messages then inform you with the data set (file) size in EDX records. The system return code and Indexed Access Method return code values at the completion of the file allocation and formatting are displayed for your information. [lal Because of the Y response to the previous prompt, this prompt is generated to allow you to: • load base records (as shown in this example) • reorganize an existing indexed file for loading into the fila being defined • end the current SE command sessi on We are going to load records during this session 50 the response is Y. Following the 'LOAD ACTIVE' information message, the prompts continue. IG;"10 SC34-0404 c [191 [20] [21] [22] [23] [24] [25] $FSEDIT FILE RECSIZE = 128 INPUT RECORD ASSUMED TO BE 80 BYTES. OK?: N ENTER RECORD SIZE: 128 ENTER INPUT BLOCKSIZE (NULL = UNBLOCKED): 256 ENTER INPUT DATA SET (NAME,VOLUME): SEQOl,EDX003 INPUT REC GT OUTPUT REC. TRUNCATION WILL OCCUR , OK TO PROCEED:? Y LOAD IN PROCESS END OF INPUT DATA SET ANY MORE DATA TO BE LOADED?: N 5 RECORDS LOADED LOAD SUCCESSFUL The next sequence of prompts refers to the input data set containing the data records that are going to be loaded into the indexed file. [19] The utility accepts input records which have been prepared by the Event Driven Executive utility $FSEDIT. The $FSEDIT record size is speci fi ed as 128. [20] Because the output data set (indexed file) records are 80 bytes, this prompt determines whether the input sequential data set is also an 80 byte record data set. If you use the Event Driven Executive edit utilities to prepare your data records for input to the Indexed Access Method, remember that these utilities place one 80-byte line from $FSEDIT in a 128-byte record. The first" record begins at location 1, and the second record begins at location 129. Two of these 128-byte records make one 256-byte EDX record. Because we used $FSEDIT, we responded N. [21] This prompt requests the input data record attributes. Because our input data records were created by $FSEDIT, our 80-byte records were converted to 128-byte records. Therefore, our response is 128. [22] The Indexed Access Method utility, $IAMUT1 accepts your records as either unblocked (one record per block) or blocked (more than one record per block) input. The utility prompts you for the block size of the input data set being loaded. If the input data set is unblocked, reply to the block size prompt by pressing the Enter Key. See "Blocked and Unblocked Sequent i al Data Sets" on page IG-164 for a descri pti on of blocked and unblocked sequential data sets. If your input data records are unblocked sequential, reply by pressing the Enter Key. If your input is blocked sequential, reply with the actual blocksize that was used to prepare your input data records. Chapter 2. Using the Indexed Access Method IG-11 Our example USQS blockQd sQquQntial rQcords, crQatQd on QVQry line by $FSEDIT, with a blocksize of 256. [23] RQPly to this prompt with your input data rQcord data SQt and volumQ namQ. Our response was SEQ01,EDX003. [24] This prompt verifies whQther truncation of the input rQcords is acceptable. Because our record size specified is actually 80 bytes long, but we responded i28 because $FSEDIT converts the records to 128 bytes, the following warning message is displayed. "INPUT REC GT OUTPUT REC. TRUNCATION WILL OCCUR" Thi s means that the extra bytes attached by $FSEDIT to our 80-byte data rQcords will now be removed. The response is Y. The information message "LOAD IN PROCESS" tells us that $IAMUTI is rQadin~ the input data set and loading the input data rQcords into the base record slots. The information message "END OF INPUT DATA SET" indicates that the end-of-file condition, on the input data set, has been encountered. [25] This prompt allows you to specify another input data set, if more data records are to bQ loaded from another data set. In this example, only 1 data set is being used and the response of N caused the records loaded statistics to be displayed, followed by the "LOAD SUCCESSFUL" message. The design of an indexed file varies according to your application. A comprehensivQ approach to designing your indexed files begins with "DQfining The File Structure With $IAMUTl" on page IG-19. C-.,' IG-12 SC34-0404 , c PROCESSING THE INDEXED FILE Now that the indexed file has been defined, formatted, and loaded with data records, the file is ready for an application program to access any of the records in the indexed file for processing. An application program might use the following EDL coded requests to open the indexed file and retrieve a record. M M OPEN THE INDEXED FILE FOR PROCESSING M CALL [1] IAM,(PROCESS),IACB,(OSl),(OPENTAB),(SHARE) M M M PERFORM A DIRECT RETRIEVAL OF THE RECORD WHOSE KEY IS JONES PW [2] KEYI OPENTAB c IACB CALL IAM,CGET),IACB,(BUFF),(KEY1) TEXT DATA DATA DATA DATA 'JONES PW' F'O' ACIAMERR) F'O' F'O' [1] This Indexed Access Method request opens the primary index file in process mode so that other requests can be issued fqr processing records in the indexed file. £2] This Indexed Access Method request retrieves a record from the indexed file. The primary key of this record contains the name 'JONES PW'. Functions of the Requests Following is a list of functions that you' can perform using the Indexed Access Method requests in your application program: Initiate general purpose access to an indexed file with a PROCESS request. After the PROCESS request has been issued, any of the following functions can be requested: o • Direct reading - Retrieving a single record independently of any previous request. • Direct updating - Retrieving a single record for update; complete the update by either replacing or deleting the record. Chapter 2. Using the Indexed Access Method IG-13 • Sequential reading - Retrieving the next logical record relative to the previous sequential request. {,-.~ ~ II \ I ' The first sequential request can access the first record in the file or any other record in the file. • Sequential updating - Retrievi~g the next logical record for update; complete the update by either replacing or deleting the record. • Inserting - Placing a single record, in its logical key sequence, into the indexed file. • Deleting - Removing a single record from the indexed file. • Extracting - Extracting data that describes the file. Note that the update functions require more than one request. When a function is complete, another function may be requested, except· that a sequential processing function can be followed only by another sequential function. You can terminate sequential processing at any time by issuing a DISCONN or ENDSEQ request. An end-of-data condition also terminates sequential processing. A complete list of the Indexed Access, Method requests, the operand descriptions, and correct syntax is described in "Chapter 7. Coding the Indexed Access Method Requests" on page IG-97. There are also codi ng examples using the Indexed Access Method requests in three programming lang~ages in "Appendix C. Coding Examples." The languages used in the examples are Event Driven language, COBOL, and Pl/I. The purpose of these examples is not to show any particular application, but to help you when planning and writing your application program. SUMMARY This chapter has introduced some fundamentals of using the Indexed Access Method. The references in this chapter to other chapters in this manual were placed there to help you select the specific information you need for your application. A list of those references is repeated here to assist you in locating the detailed information on the listed subjects. • For a complete descri pt i on of $IAMUT 1 see "Chapter 8. The $IAMUT 1 Utility" • A comprehensive approach to designing your indexed files is described in "Chapter 3. Defining Primary Index Files" • Defining a secondary index for using secondary keys is described in "Chapter 5. Building a Secondary Index" • Description of blocked and unblocked sequential data sets is descr i bed in "Blocked and Unblocked Sequent i al Data Sets" on page IG-164 IG-14. SC34-0404 c c • Tha complete 1 i st of Indexed Access Method requests, the operand descriptions, and correct syntax is described in "Chapter 7. Coding the Indexed Access Method Requests" • Guida line information on processing the indexed file is located in "Chapter 7. Coding the Indexed Access Method Requests." This guideline information should be read prior to planning and coding your application program. Chapter 2. Using the Indexed Access Method IG-15 I ( IG-l~ SC34-0404 - - ' \ -", CHAPTER 3. DEFINING PRIMARY INDEX FILES This chapter presents the following major topics: • Primary Indexed Files • Designing Indexed Files Using $IAMUTl - option 1 • Designing Indexed Files Using $IAMUTl - option 2 Indexed Access Method Blocks Index Blocks File Control Block File Structure Types Option 2 Examples • Designing Indexed Files Using $IAMUTl - option 3 • Defining/Creating, and loading A File - Summary This chapter provides information for defining indexed files and is arranged according to your option selection when using ,$IAMUT1. The beginning of the chapter has information which applies to any type of primary index file design. That general information section is followed immediately with an example using $IAMUTl, option 1. The option 2 section is next and contains information that you will need to know prior to designing an index file with $IAMUTl, option 2. The fourth section applies to using $IAMUT1, option 3. PRIMARY INDEX FILES A primary index file contains data records, a multilevel index, control information, and it can optionally contain free space. Free space can be distributed throughout the file and at the end of the file. Free space provides areas for inserting new records and is described later. In an indexed file, the records are arranged in ascending order by key. DATA RECORD PRIMARY KEY The primary key can be any field within your data record that you select, however, it must meet the following requirements: Chapter 3. Defining Primary Index Files IG-17 • the selected field must start at the same location in each record • all portions of the key field must be contiguous • th~ • the field must contain data that is unique within the data set primary key length cannot exceed 254 bytes Defining the Key Define a single key ·field by specifying its size and position in the record when you select the file formatting parameters using the SE (set parameter) command of the $IAMUTI utility. The longer the key. the larger the index. The key should not be longer than necessary but long enough to ensure uniqueness. A shorter key is more efficient than a long key. ENSURING UNIQUENESS OF THE KEY: To identify each record in an indexed file. each primary key must be unique. If key duplication is possible. the key field must be expanded to ensure that it is unique. For example. customer name is a key whi ch may involve dupl i cates. To avoid duplication.·leng~hen the key field to include other characters such as part of the customer address or the account number. Because the characters in the key must be contiguous, you may need to rearrange the fields in the record. Another way to el i mi nate dupl i cati on is for you to modi fy new records dynamically whenever a duplication occurs during loading or processing. One or more characters at the end of the key field can be reserved for a suffix code. Whenever a duplicate occurs. add a value to the suffix and make another attempt to add the record to the file. The result is a file that can contain a sequence of keys such as SMITH. SMITH!. and SMITH2. If you add a suffix, you must use the entire unique key when accessing a record directly. Providing Access by Hore Than One Key To provide good performance with both direct and sequential access, each indexed file is indexed by a single primary key. At times. however, it may be useful to locate records by a secondary key. For example, in a customer file indexed by account number, you might want to locate a record by customer name .. To provide access by a secondary key, you must build a secondary index (a separate file). For a description of setting up secondary indexes. see "Chapter 5. Bu i Idi ng a Secondary Index" on page IG-67. RANDOM AND CLUSTERED RECORD INSERTS The Indexed Access Method permits records to be added to an existing file. The records are inserted by the Indexed Access Method in the proper IG-18 ·SC34-0404 locations according to their key value. the indexed file in ascending sequence. This keeps the keys throughout Records to be inserted are sometimes required to be distributed throughout the file rather evenly, other times the records to be inserted are in groups. When there are more individual records to be inserted throughout the file, based on their key value, than there are groups of records to be inserted, this is called random record inserts. The following diagram represents random inserted records among existing records. Existing Records Inserts (Each bullet indicates an inserted record) Record inserts are considered clustered if"most of the inserts occur at only certain places in the file. The following diagram represents clustered inserts by vertically stacked bullets. Existing Records Inserts DEFINING THE FILE STRUCTURE WITH $IAMUTl Defining an indexed file structure is the process of analyzing the file requirements and selecting the appropriate file parameters. This allows you to either precisely define your indexed file or, by proper option selection, $IAMUTI will define most of the parameters for you. o $IAMUTI is a prompt driven utility. When it is loaded, messages are displayed requesting information to be entered on a keyboard. The responses you enter through the keyboard determine how the utility will operate. Chapter 3. Defining Primary Index Files IG-19 The SE command of the $IAMUT1 utility permits you to select one of three options for defining your indexed file. The parameter selections are made using the SE command of the $IAMUT1 utility. The SE (set parameters) command of $IAMUT1 provides three options for you to choose from to define your indexed file as follows: 1. Option 1 significant parameters - allows you to define an indexed file by supplying a minimum of information. The description of your data records is required and whether you expect random or clustered record insert activity. 2. Option 2 all parameters - allows more flexibility in precisely defining your indexed file but requires more parameters to be supplied. 3. Option 3 parameters from existing indexed data set - can be used when you have an existing indexed file and you wish to use the same parameters for a new indexed file. $IAHUTl option Selection Guide Hav i ng read the precedi ng materi ai, you are probably ready to make a choice as to which option you want to use in defining your indexed file. The following table will help you to find the appropriate information, based on your indexed file defining objectives. ( /" \, ....),/ Your Objective option Information location You want the Indexed Access Method to calculate and structure your file 1 See "Designing Indexed Files Using $IAMUTI - Option 1" on page IG-21 You want to structure a file and provide specific information for the parameters 2 See "Designing Indexed Files Using $IAMUTI - Option 2" on page IG-24 3 See "Designing Indexed Files Using $IAMUTI - Option 3" on page IG-57 You want the Indexed Access Method to structure a file using the parameters of an existing file o IG-20 SC34-Q404 DESIGNING INDEXED FILES USING $IAHUTl - OPTION 1 Option 1 is used if you need to set up your indexed file quickly and easily. You specify only the necessary information and the utility determines the proper values for other parameters. An indexed file generated with this option may not be optimum in terms of storage space performance. If you want to supply more parameters than are available with this option, or you wish to set up a totally dynamic indexed file, you should see "D~ signing Indexed Files Using $IAMUTl - Option 2" on page IG-24. If you already have an indexed file established and you wish to use those same parameters, you should see "Designing Indexed Files Using $IAMUTl - Option 3" on page IG-57. OPTION 1 The Indexed Access Method utility, $IAMUTl, option 1 of the SE (set parameters) command, provides you with the opportunity to select only those parameters necessary to set up an indexed file. The $IAMUTl Indexed Access Method utility can be loaded with the Event Driven Executive operator command $L $IAHUT1. When $IAMUTl is loaded the first prompt displayed is as follows: [11IENTER COMMAND (1): SE [11 Entering SE causes the following option list prompt to be displayed. [2] SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATA SET ENTER OPTION: 1 [2J Respond to this prompt by entering the digit '1'. This response causes a one line prompt from the next prompt sequence to be displayed. Note: Although the following prompts are displayed one line at a time when using the utility, the entire prompt list is shown for simplicity in describing the parameters. Chapter 3. Defining Primary Index Files IG-21 [3] SECONDARY INDEX [4J RECORD SIZE KEY SIZE KEY POSITION BLOCKING FACTOR (RECORDS PER BLOCK) NUMBER OF BASE RECORDS ESTIMATED TOTAL RECORDS TYPE OF INSERT ACTIVITY(C=CLUSTERED,R=RANDOM) DATA SET SIZE IN EDX RECORDS: 12 INDEXED ACCESS METHOD RETURN CODE: -1 SYSTEM RETURN CODE: -1 CREATE/DEFINE FILE (Y/N)!: [5] [6] [7J [8] [9] [10] [11] (Y/N)!: N DEFAULT NEW VALUE 0:80 0:40 1:1 1 :3 0:5 6:20 C:R [3] The first line asks, are you specifying a secondary index. The response should be N for no, because you are defining the parameters for a primary index file. [4] The record length shown is 80, however, the entry you will make is the actual record length you want your indexed file records. [5] Enter the length of your data record field that you are using as the key field. The maximum primary key length is 254. [6] Enter the position where your primary key field begins. Your data /----~ ",~"/ record begins with 1. [7] Specify the blocking factor (number of records per block) you want your indexed file to have. Remember that when a record is accessed, an entire block is actually read into the system buffer. [8] Enter the number of base record slots to be defined. This value is the number of records you will load initially. You cann~t load more records than this value specifies. [9] Enter the total number of records you expect this file to contain. records you plan to insert during processing. [10] Enter the type of record insert activity you expect to have [11] If you have verified that the parameters you entered are correct, the data set (file) size in EDX records is acceptable, and the return codes are both -1, you can reply Y and you can create and define the file. If you wish to change any of the parameters, reply N and you can reenter the SE command and enter any new values for the parameters. Replying N terminates the SE function and you can return to this point by reentering the SE command or the DF command (within the same session of $IAMUT1). The DF command of $IAMUT1 is descri bed under "OF - Defi ne Indexed File" on page IG-146. IG-22 SC34-0404 () To review the prompts that occur when Y is replied at this point return to the example in "Chapter 2. Using the Indexed Access Method." ( ~ / c Chapter 3. Defining Primary Index Files IG-23 DESIGNING INDEXED FILES USING $IAMUTI - OPTION 2 Option 2 is used if you have performed an analysis of your file requirements and you want to precisely define your primary indexed file. This option provides a wide range of parameters to allow you to specify your file structure in detail. You can optimize the file structure according to your application requirements for the best storage use and performance. If you L~ant to supply only the minimum parameters you might want to use option I which is described earlier in this chapter under "Designing Indexed Files Using $IAMUTI - Option 1" on page IG-21. If you already have an indexed file established and you wish to use those same parameters. you should see "Designing Indexed Files Using $IAMUTI - Option 3" on page IG-57. OPTION 2 The following information is provided so that you can supply the required information to the prompts when defining a primary index file using option 2 of $IAMUTI. The information is organized in levels of Indexed Access Method blocks. The material should be read sequentially because it prov i des the i nformat ion whi ch must be understood in order to apply it to the examples whi ch are placed near the end of thi s opt ion 2 materi al. INDEXED ACCESS METHOD BLOCKS Indexed files consist of three kinds of blocks: • Data blocks, which contain records • Index blocks, whi ch contai n poi nters to data blocks or lower-level index blocks • File control blocks, which contain control information Following is an overview diagram showing the types of blocks and their general relationships to each other in an indexed file. ' )'\ C IG-24 SC34-0404 o File Control Blocks Index Blocks 0-0-0-0 Figure 1. o ] ] Data Blocks Fren! Pool Indexed File logical Structure The indexed fi Ie is composed of a number of fi xed length blocks. The block is the unit of data transferred by the Indexed Access Method between disk/diskette and the central buffer. Block size must be a multiple of Chapter 3. Defining Primary Index Files IG-25 256. A block is addressed by its relative block number (RBN). block in the file is located at RBN O. The first (j Note that the RBN is used only in indexed files by the Indexed Access Method. An Indexed Access Method block differs from an Event Driven Executive record in the following ways: 1. The size of 8 block is not limited to 256 bytes; its length can be a mul t i pI e of 256. 2. The RBN of the first block in an indexed file is O. The record number of the first Event Driven Executive record in 8 file is 1. The size, in 256-byte records, of the file is calculated by the SE command of the $IAMUTI utility. As stated initially, three kinds of blocks exist in an indexed file: data blocks, index blocks, and file control blocks. These blocks are all the same length, as defined by BLKSIZE, but they contain different kinds of information. Data blocks contain data records, index blocks contain i~dex entries, and file control blocks contain control information. DATA BLOCKS Each data block contains a header, one or more data records, and it can contain free space for additional data records. \ The records in each data block are in ascending order, according to the key field in each record. Each data block header contains the address of the next sequential data block, providing sequential processing capability. A data block contains a header followed by data records. The numb~r of records that can be contained in a data block depends on the size of the data block and the si ze of the record. The header of the block is 16 bytes. The number of record areas in the block is: block size - 16 record size The result is truncated; any remainder represents the number of unused bytes in the block. For example, if block size is 256 and record size is 80, the data block can accommodate three records and there is no unused area. The key field of the ~ast record slot in an index block is the high key for the data block even if the block is not full. However, if the last record of the block has been deleted, the key field of the last record IG-26 SC34-0404 c o slot will contain a key higher than that of any other record in the block. Deletion of a record does not reduce the key range for the block unless the block is emptied. Figure 2, shows the format of a data block. FREE SPACE When an indexed file is loaded with base records, free space is reserved for records that may be inserted during processing. There are four kinds of free space: free records, free blocks, reserve blocks, and reserve index entries. FREE RECORDS: Free records are areas reserved at the end of each data block. The FREEREC parameter of the SE command of $IAMUT1, specifies the number of free records that are reserved in each data block. The remaining record areas are called allocated records. For example, if a block contains three data record areas and you specify one free record per block, then there are two allocated records per block. For the layout of a data block containing two allocated records and one free record, see Figure 2. c When records are loaded (file is open in load mode), the allocated records are filled, and the free records are skipped. When additional records are inserted (file is open in process mode), free records are used to hold inserted records. HEADER Data Record Data Record Free space Figure 2. Data Block Format Example For an example of specifying FREEREC, see "Example 1: Allocating Free Records" on page IG-43. FREE BLOCKS: o Free blocks follow the allocated data blocks within each cluster. Free blocks have all of their records marked as free records. The FREEBLK parameter of option 2 is used to specify the percentage of blocks that are to be marked as free blocks. Chapter 3. Defining Primary Index Files IG-27 When records are loaded, the allocated record areas in the allocated data blocks are filled, and the free blocks are skipped. During processing, as data blocks become full, a free block provides space for insertions. For an example of specifying FREEBLK, see "Example 2: Allocating Free Records and Free Blocks" on page IG-45. SEQUENTIAL CHAINING: Data blocks in an indexed file ara chained together by forward pointers located in the headers of data blocks. Only allocated data blocks are included in the sequential chain. Chaining provides for sequential processing of the file with no need to reference the index. When a free block is converted to an allocated block, the free block is included in the chain. Reserv;ng Space For Record Inserts If base records are to be loaded and record insertions are expected in random locations throughout the file, use BASEREC to reserve the number of base records. Use some combination of the following parameters: FREEREC to reserve free records in each data block, FREEBLK to reserve free blocks in each cluster (group of blocks), and DYN to provide a free pool. For example, consider a file with 5 records per block, and 10 data blocks per cluster. Suppose that the file consists of 300 base records and 200 inserts. If the inserts are distributed evenly throughout the file, the pattern of inserts is: Blocks Inserts .. (Each bullet indicates an inserted record) With this kind of distribution you can specify 2 free records per block to absorb the inserts; no free blocks or free pool are needed. Of course ; nserts do not usually occur in such an even pattern. Free blocks help to absorb a concentration of inserts. The mor~ uneven the expected distribution, the greater the f.'ee block specification should be. Suppose the same number of inserts is distributed in this pattern: IG-28 SC34-0404 () o Blocks Inserts With this distribution, specify either 3 free records per block, or 20Y. free blocks with 2 free records per block. How suppose the distribution were more uneven: Blocks Inserts In this case a satisfactory mix of free space is 1 free record per blo~k and 40Y. free blocks. An alternative is to use 1 free record per block and the DYH parameter to hold those record inserts of more than 1 record per block. calculating Data Blocks This calculating information is provided for your convenience if you choose to calculate the number of blocks for a specific file. For reference later there is a summary of all calculations in "Appendix A. Summary of Calculations" on page IG-223. However, $IAMUTI automatically calculates the required data blocks based on the parameters you provide. The utility also lists at file definition' time (when using the SE command) the number of blocks required according to your parameter values. The number of allocated data blocks in a file is the specified number of base records (BASEREC) divided by the number of allocated records per data block, with the result rounded up if there is a remainder. o For example, suppose you that is formatted for two and five allocated blocks allocated blocks in a file intend to load 1000 records in an indexed file allocated records and one free record per block and one free block per cluster. The number of is: Chapter 3. Defining Primary Index Files IG-29 number of base records number of allocated records per block The number of allocated blocks in this example is 1000/2 or 500 blocks. INDEX BLOCKS An index block contains a header followed by a number of index entries. Each index entry consists of a key and a pointer. The key is the highest key associated with a lower level block; the pointer is the RBN of that block. The number of entries contained in each index block depends on block size and key size. The header of the block is 16 bytes. The RBN field in each entry is 4 bytes. The key field in each entry must be an even number of byt~s in length; if the key field is an odd number of bytes in length, the field is padded with one byte to make it even. The number of index entries in an index block is: block size - 16 4 + key length The result is truncated; any remainder represents the number of unused bytes in the block. For example, if block size is 256 and key length is 28, then each index entry is 32 bytes, there are 7 entries in a block, and the last 16 bytes of the block are unused. PRIMARY INDEX BLOCKS (PIXB) A set of data blocks is addressed (described) by a single primary index block (PIXB). Each key in the index block is the highest key in the data block that its accompanying relative block number (RBN) addresses. A block is addressed by its RBN. The PIXB and the data blocks it describes are called a cluster. Clusters Primary-level index blocks and data blocks are stored together in the file in groups called clusters. Each cluster consists of a primary-level index block and as many data blocks and free blocks as it po i nts to. For example, if there are seven entries in an index block, there are eight blocks in a cluster: one primary-level index block and up to 7 data/free blocks. If reserve blocks have been specified, the blocks represented by IG-30 SC34-0404 ···\ C , . I o the reserve block entries are not included until insert activity has taken place and the required blocks have been obtained from the free pool. For example, if there are seven entri es in an 1ndex block and one of the entries is a reserve block entry, the cluster consists of seven blocks (one index block and si x data blocks). See Fi gure 3 for a cluster example. HEADER PIXB RBN of block 1 High key in block 1 RBN of block 2 High key in block 2 RBN of block 3 High key in block 3 / / / / , C High key in block 7 RBN of block 7 "~ • • • Data blocks 1 Figure 3. 2 7 3 Cluster Example pr;mary-Level Index Blocks Entries in a primary-level index block point to data blocks. primary-level index block is one of three possibla types: o • allocated entry • free block entry • reserve block entry Each entry Chapter 3. Defining Primary Index Files IG-31 ALLOCATED ENTRY: An allocated entry points to an active data block. The key portion of the entry is initialized to binary ones by the $IAMUTI utility. After records have been loaded or written to a data block, the key portion of the entry which points to the data block contains the highest key from the data block. The pointer portion contains the RBN of the data block. Allocated entries are the first entries in an index block. The number of index entries allocated, when the indexed file is initially created, is the total number of entries per index block, less the number of entries of the other two types (free block entry and reserve block entry). FREE BLOCK ENTRY: A free block entry points to a free data block. The key portion of the entry contains binary zeros. The pointer portion contains the RBN of the free block. Free block entries follow the allocated entries in th~ index block. The number of index entries formatted as free entries when the indexed file is initially created is the specified percentage (FREEBlK) of the total number of entries in an indexed block, with the result rounded up if there is a remainder. BLOCK ENTRY: A reserve block entry does not point to a block but is reserved for later use as a pointer to a data block which can be taken from the free pool. Both the key and pointer portions of a reserve block entry are binary zeros. Reserve block entries are at the end of the index block. When a reserve block entry is converted to a used entry, the index block is reformatted to move the entry to the allocated entry area of the block. ~ESERVE !~--~\ I\,=" Reserve blocks do not exist in the cluster. When all data blocks in a cluster are used and another data block is needed, a data block can be created from the free pool. If the primary-level index block contains a reserve block entry, it is used to point to the record from the free pool. The reserve block entry in the primary-level index block point~ to the block, and the data block becomes an allocated data block. The number of index entries initiallY formatted as reserve block entries is the specified percentage (RSYBlK) of the total number of entries, with the result rounded up if there is a remainder. However, if the number of free block entries plus the number of reserve block entries require all index entries, the number of reserve block entries is reduced by 1, providing at least one allocated entry per index-block. To calculate the number of primary-level index blocks in an indexed file, you must know the initial number of data blocks allocated in the indexed file. Calculating Clusters Th; s calculati ng i nformat ion ; s prov; ded for your conven i ence if you choose to calculate the number of blocks for a specific file. However, $IAMUTI automaticallY calculates the required data blocks based on the parameter values you provide. The utility also lists at file definition IG-32 SC34-0404 c 0 ., 1 \'1/ 1 time (when using the SE command) the number of blocks required according to your parameter values. The number of clusters in a file is the number of allocated data blocks divided by the number of allocated entries in each primary-level index block, with the result rounded up if there is a remainder. allocated blocks allocated entries in each PIXB Note that in the calculat ion, if the quot i ent is not an integer, it is rounded up (rather than truncated) in order to accommodate all of the base records. The number of free blocks in the file (not including the free pool) is the number of clusters in the file multiplied by the number of free entries in each primary-level index block. The Last Cluster The last cluster in the file may be different from the other clusters. It contains the same number of free blocks as the other clusters but only enough allocated blocks to accommodate the records that you have specified with the parameter BASEREC. Because rounding occurs in calculating the number of clusters, a few more allocated rQcords than required may exist in the last allocated block. The last cluster can be a short one because only the required number of blocks are used. If the number of allocated blocks di vi dad by the number of allocated blocks per cluster leaves a remainder, the remainder represents the number of allocated entries in the primary-level index block in the last cluster. Unused entries in the last primary-level index block are treated as reserve block entries. The initial number of data blocks is the specified number of base records (BASEREC) divided by the number of allocated records in a data block, with the result rounded up if there is a remaindQr. BASEREC data records per block o Chapter 3. Defining Primary Index Files IG-33 The number of primary-level index blocks is the initial number of allocated data blocks divided by the number of allocated' entries per primary-level index block, with the result rounded up if there is a remainder. allocated block IG-34 data blocks SC34-0404 allocated entries per primary-level index o SECOND-LEVEL INDEX BLOCKS (SIXB) If the file is large enough to require more than rine cluster, each PIXB (or cluster) has an entry in a second-level index block (SIXB). The entry ina SIXB contai ns the address of the PIXB and the hi ghest key in the cluster. The SIXB has the following structure: HEADER SIXB RBN of PIXBl High key in PIXB1 RBN of PIXB2 High key in PIXB2 RBN of PIXB3 High key in PIXB3 RBN of PIXB4 High key in PIXB4 PIXBl PIXB2 PIXB3 PIXB4 Entries in a second-level index block point to primary-level index blocks. Each entry in a second-level index block is one of two possible types: , 0 I • allocated entry • reserve index entry ALLOCATED ENTRY: An allocated entry points to an existing primary-level index block. The key portion of the entry is initialized to binary ones by the $IAMUTI utility. After records have been loaded or written, the key portion of the entry contains the highest key from the primary-level index block. The pointer portion contains the RBN of the primary-level Chapter 3. Defining Primary Index Files IG-35 index block. Allocated entries are the first entries in the index block. The number of index entries allocated when the indexed file is loaded 1S calculated as the total number of entries per index block, less the number of reserve index entries. 0."Y 1" RESERVE INDEX ENTRY: A reserve index entry does not point to a block but is reserved for later use as a pointer to a primary-level index block that can be taken from the free pool. Both the key and pointer portions of a reserve index entry are binary zeros. Reserve for the blocks. forming cluster index entries, in second-level index structure to be expanded These, in turn, can have data new clusters. This process of split. index blocks, provide index space by adding new primary-level index blocks associated with them, thus forming a new cluster is called a For an example of using RSVIX, refer to "Example 4: Allocating Reserved Index Entries" on page IG-Sl. Reserve index entries are at the end of the index block. The number of index entries initially formatted as reserve index entries is the specified percentage CRSVIX) of the total number of entries, with the result rounded up if there i,s a rema i nder. However, if the number of reserve index entries ,'s the same as the total number of entries in an index block, the number of reserve index entries is reduced by 1, providing at least one allocated entry per second-level index block. The number of second-level index blocks is the number of primary-level index blocks divided by the number of allocated entries per second-level index block, with the result rounded up if there is a remainder. number of PIXBs allocated entries per SIXB IG-36 SC34-0404 /f'---''-\ i"l.;/ o HIGHER-LEVEL INDEX BLOCK (HIXI) If the file is large enough to require more than one SIXBt the SIXBs in the file are described by one or more higher-level index blocks (HIXB) in the same manner as the SIXB describes PIXBs. There is always one index block that describes the entire file. The index of an indexed file is constructed in several levels so thatt given a keYt there is a single path (one index block per level) cascading through the index levels that leads to the data block associated with that key. The index is built from the bottom up. At the lowest level are the primary-level index blocks. At the second level are tndex blocks containing entries that point to the primary-level index blocks. The highest level of the index structure consists of a single index block. Entries in a higher-leval index block point to index blocks at the next lower level. All entri es in hi gher-level index blocks are allocated entries. The key portion of the entry contains the highest key from the index block of the next lower level. The pointer portion contains the RBN of the next lower level index block. The number of blocks at any higher index level is the number of index blocks at the next lower level divided by the total number of entries per index block, with the result rounded up if there is a remainder. If the number of i-ndex blocks at any level is one, that level is the top level of the index. Although the Indexed A~cess Method is capable of initially defining and supporting 17 levels of index, an indexed file is formatted with only as many index levels as are required for the number of records. If an indexed file has not been fully loaded and one or more higher index levels have not yet been required, the unnecessary higher levels are not used, even though they exist in the file structure. INDEX EXAMPLE: Assume that 500 data blocks are allocated to a file and that each primary-level index block contains one free block entry, one reserve block entry, and five allocated entries. Therefore, the total number of primary-level index blocks is 100. Each second-level index block contains one reserve index entry and six allocated entries; therefore, the number of second-level index blocks is 17. The number of entries in higher level index blocks is seven, resulting in three index blocks at the third level and one at the fourth level. Therefore the file contains ~ total of 121 index blocks of which 100 are primary-level index blocks, 17 are seco'nd-Ievel index blocks, 3 are third-level index blocks, and 1 is a fourth-level index block. This distinction is important because high-level index blocks are located contiguouslY at the beginning of. the file (after the FeB), while primary-level index blocks are scattered throughout the file with the data blocks. Figure 4 on page IG-38 shows the structure of the higher-level index blocks. o Chapter 3. Defining Primary Index Files IG-37 Fourth (top) level index Third level index Second level index F;gure 4. IG-38 H;gh-Ievel Index Structure SC34-04~4 FREE POOL If you specify that you want a free pool, your indexed file contains a pool of free blocks at the end of the indexed file. The file control block contains a pointer to the first block of the free pool, and all blocks in the free pool are chained together by forward pointers. A block can be taken from the free pool ~o become either ~ data block or an index block. The block is taken from the beginning of the chain, and its address (RBN) is placed in the appropriate primary-level index block (if the new block is to become a data block) or in the second level index block (if the new block is to become a primary-level index block), and so on. Any block in the free pool can be used as either a data block or as an index block. When a data block becomes empty because of record deleti ons, the data block may return to the free pool (dependi ng on thel\' delete threshold (DELTHR) parameter). If the data block is returned to the free pool, reference to the block is removed from the primary-level index block, and the block is placed at the beginning of the free pool chain. Calculating the initial size of the free pool consists of the following steps: o • Each reserve block entry in a primary-level index block represents a potential data block from the free pool. The number of data blocks that can be assigned to initial clusters is the number of primary-level index blocks times the number of reserve block entries in each primary-level index block. • Each reserve index entry in a second-level index block represents a potential primary-level index block from the free pool. The number of primary-level index blocks that can be assigned from the free pool into the index structure set up at file definition time is the number of second-level index blocks multiplied by the number of reserve index entries in each second-level index block. • Each primary-level index block taken from the free pool consi sts enti rely of empty (reserve block) entri es. Nm... data blocks can be taken from the free pool for the entries in the new primary-level index block. The number of data blocks is the number of entries per index block multiplied by the number of new primary-fevel index blocks (calculated in the previous step). • The maximum number of blocks that can be taken from the free pool and placed into the index structure set up at file definition time is the sum of the previous three calculations. • The actual number of blocks in the free pool is determined in one of two ways: ~ The percentage (FPOOL) of the maximum possible free pool as specified by the RSVIX and RSVBLK parameters. The result is rounded up Chapter 3. Defining Primary Index Files IG-39 if there 1S a remainder. If the DYM parameter is also used, its value is added to the sum. The DYN parameter, if specified with no other free space parameters, allocates a free pool of the specified number of blocks. DELTHR - DELETE THRESHOLD: The percentage (0-99) of blocks to retain in a cluster as records are deleted and blocks made available. This is known as the delete threshold DELTHR. When a block becomes empty, this parameter, if supplied, determines if the block should be returned to the free pool. FILE CONTROL BLOCK The file control block (FCB) is the first block in the file (RBH 0); it contains control information. Indexed files have an FCB Extension as the second block. sion contains the parameters used to define the file. rhe FCB Exten- Note: Indexed files built with a version of the Indexed Access Method prior to version 2 do not contain an FCB extension. You can access the FCB and FCB Extension by either of the following methods: • using the EXTRACT function in an EDl program • using the $VERIFY utility You can locate the field names in the FCB and FCB Extension by examlnlng a listing of FCBEQU, a copy code module that is supplied as part of the Indexed Access Method. The FCB Extensi on contai ns the parameters that were used to set up the file using the $IAMUTl SE command. Control information is also contained in block headers; a description of control information is contained in "FCB Extension Report" on page IG-196. FILE STRUCTURE TYPES A wide range of file structure is available. You can set UP files that vary from the totally dynamic to the highl~ structured. Whether a file is structured or dynamic depends on the degree to which it uses a free pool. A free pool is an area in your indexed file which contains ~ pool of free blocks. The file control block contains a pointer to the first block of the free pool, and all blocks in the free pool are chained ~ogether by forward poi nters. A block can be taken from the free pool to become either a data block or an index block. I>ynami c f11es offer the advantage of easy fi Ie desi gn and good space ut iii zat ion. They have the di sadvantage of a potent i al performance decrease. IG-40 SC34-0404 () Structured files offer the advantage of good performance. They have the disadvantage of a more complex file design and greater space requirements. Either method can result in a need to reorganize the file; the structured approach because the file can run out of space for inserts, and the dynamic approach because of performance considerations. The type of indexed file to be defined, structured or dynamic, therefore, depends on the file requirements and the efficiency required. structured File A structured file has its base record slots, free space, and the index structure needed to support them bu i 1 t at f i 1 e def in it ion time by the Indexed Access Method utility using the file structure parameters you specify. The structured file uses little, if any, free pool. The structured file offers better performance than the dynamic file but can result in unused space. "' C I~, Whether or not a structured file has a free pool depends on whether or not you supply a value for the DYH parameter when the file is defined. When the DYH parameter is used, the FREEREC, FREEBLK, RSVBLK, RSVIX, and FPOOL parameters, if supplied, are also used in establishing the structured free space. The number and types of blocks in a structured file are the result of calculated values you supply as parameters when defining the fi Ie. Most of the blocks are not taken dynamically from the free pool as they are needed because they are established at file definition time. Dynamic File The higher the degree to which a file uses a free pool, the more dynamic it is; the system bui Ids index and data blocks for you as they are needed. The Indexed Access Method provides a dynamic file restructuring capability. It makes use of any free pool space the file has, even if the file is mostly structured. The Indexed Access Method can restructure a file in two ways: o • As records are inserted and additional space is needed in specific areas of the file, blocks are taken from the free pool and become data blocks where needed. If additional index blocks are needed, blocks are taken from the free pool for this purpose as well. Index blocks can be added at any level, and the number of levels of index can increase as needed. This function is performed automatically by the Indexed Access Method on any file that has a free pool associated with it. • As records are deleted and blocks become empty, they are returned to the free pool. If index blocks become empty (because the blocks under them have been returned to the free pool) they are also returned to Chapter 3. Defining Primary Index Files IG-41 the free pool. This helps to maintain a supply of blocks in the free pool to be used if other areas of the fi Ie expand. For an example of defining a totally dynamic file, see "Example 5 - Defini ng a Totally Dynami c Fi Ie" on pageIG-54. USING THE DVN PARAMETER: . The DYN parameter can be used to adjust how much the free pool is used. file is. This adjustment varies how dynamic a structured In a totally dynamic file, the initial file defined consists of only the file control blocks, one primary index block and one data block. The rest of the file is in the free pool. To define a totally dynamic file, you need to only supply a value for the DYN parameter to allow the rest of the file to be assigned to the free pool. A dynamic file can be used when the records you want to add to the file are not sorted into ascending key sequence. In that case, you can place the records in the file by inserting them in random sequence. The Indexed Access Method will place them in their proper sequence within the indexed file. If base records are to be loaded initially and they are sorted in ascending key sequence but insert activity is unknown, you can use a totallY dynamic file design. Use the BASEREC parameter to reserve the number of base record slots requi red. 'Use the DYN parameter to provi de the free pool needed for record inserts. Note: When a dynamic file has grown to its working size, it should be reorganized for more efficient operation. OPTION 2 EXAMPLES The examples which follow are provided to show the option 2 prompts and the effects of certain parameter values. Although the values used are small for simplicity of explanation, they are usually much larger in an actual application. Also a given example does not represent a complete primary index file but addresses a particular part of a file and its associated parameters which we wish to describe at that place in the chapter. c' IG-42 SC34-0404 o EXAMPLE 1: ALLOCATING FREE RECORDS The ,ndexed file created using these parameters has only one type of free space, called free records: ENTER COMMAND (?): SE [11 SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: 2 SECONDARY INDEX (Y/N)?: N PARAMETER DEFAULT NEW VALUE BASEREC NULL:l0 BLKSIZE 0:256 RECSIZE 0:80 KEYSIZE 0:40 KEYPOS 1:1 FREEREC 0:1 FREEBLK 0:0 RSVBLK NULL: 0: RSVIX NULL: FPOOL NULL: DELTHR DYN NULL: TOTAL LOGICAL RECORDS/DATA BLOCK: FULL RECORDS/DATA BLOCK: INITIAL ALLOCATED DATA BLOCKS: INDEX ENTRY SIZE: TOTAL ENTRIES/INDEX BLOCK: FREE ENTRIES/PIXB: RESERVE ENTRIES/PIXB(BLOCKS): FULL ENTRIES/PIXB: RESERVE ENTRIES/SIXB: FULL ENTRIES/SIXB: DELETE THRESHOLD ENTRIES: FREE POOL SIZE IN BLOCKS: I OF INDEX BLOCKS AT LEVEL 1: DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: 3 2 5 44 5 o o 5 o 5 5 o 1 8 -1 -1 CREATE/DEFINE FILE (Y/N)?: N ENTER COMMAND (1): Chapter 3. Defining Primary Index Files IG-43 11J Because record size was specified as 80 and block size was specified as 2S6~ there are (256-16)/80 = 3 records per block. Because FREEREC was specified as 1. there are 2 full (base) records per block and 1 free record per block. Because BASEREC was specified as 10, there are 10/(2 base records per block) or 5 initial allocated data blocks (blocks that contain base records). Because FREEBLK, RSVBLK, RSVIX, FPOOL, and DYN were not speci fi ed. there are no free blocks or free pool blocks allocated. One primary index block ;5 needed. The number of free blocks is calculated as follows: times the number of index blocks at level 1. Free entries per PIXB The total blocks allocated for this file is: Initial allocated data blocks Free blocks Free pool blocks Index blocks File control block 5 o o 1 + ~ 8 Total Figure 5 illustrates the format of the indexed file that would result from . these SE command parameters. 1 2 3 ==> PIXB 4 5 6 2 3 4 5 6 Data blocks Free Figure 5. IG-44 Free Free Indexed File with Free Records SC34-0404 Free Free o o EXAMPLE 2: ALLOCATING FREE RECORDS AND FREE BLOCKS These parameter specifications will generate an indexed file with two types of free space -- free records and free blocks: ENTER COMMAND [1] (?): SE SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: 2 SECONDARY INDEX (Y/N)?: N PARAMETER DEFAULT NEW VALUE BASEREC NULl:I0 BlKSIZE 0:256 RECSIZE 0:80 KEYSIZE 0:40 KEYPOS 1:1 FREEREC 0:1 FREEBLK 0:10 RSVBLK NUll: RSVIX 0: FPOOL NULL: DELTHR NULL: DYN NULL: TOTAL LOGICAL RECORDS/DATA BLOCK: FULL RECORDS/DATA BLOCK: INITIAL ALLOCATED DATA BLOCKS: INDEX ENTRY SIZE: TOTAL ENTRIES/INDEX BLOCK: FREE ENTRIES/PIXB: RESERVE ENTRIES/PIXB(BlOCKS): FULL ENTRIES/PIXB: RESERVE ENTRIES/SIXB: FULL ENTRIES/SIXB: DELETE THRESHOLD ENTRIES: FREE POOL SIZE IN BLOCKS: • OF INDEX BLOCKS AT LEVEL • OF INDEX BLOCKS AT lEVEL DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN COnE: 3 2 5 44 5 1 o 4 o 5 5 o 2 1 12 -1 -1 CREATE/DEFINE FILE (Y/N)?: N ENTER COMMAND (?): [1] The FREEBLK parameter of 10 causes 10~ of the total entries in each index block to point to free blocks. Because KEYSIZE was specified as 40, Chapter 3. Defining Primary Index Files IG-45 the index entry size = 40 + 4 (RBN pointer) and the total entries per index block is (256-16)/44 = 5. Thus, lOX of this total rounded up i. the number of free entries/PIXB (1). Because there are 5 initial allocated data blocks, one free entry and only 5 total entries per index block, 2 primary index blocks are needed. This causes a second-level index block to be allocated. The total blocks allocated: Initial allocated data blocks Free blocks Free pool blocks Index blocks File control block 5 2 o 3 + ~ 12 Total Figure 6 on page IG-47 illustrates the format of the indexed file that would result from these SE command parameters. c IG-46 SC34-0404 o 2 3 ==> SIXB 9 Unused 3 PIXBs 9 4 10 5 11 Free 6 Unused ==> 7 8 Free (':" 4 5 6 Free Free Free 8 7 10 11 ~" Data blocks Free Free Free block Figure 6. Free block Indexed File with Free Records/Blocks c Chapter 3. Defining Primary Index Files IG-47 EXAMPLE 3: ALLOCATING RESERVED DATA BLOCKS , ',--t,,\ ( _._,' Reserve blocks are allocated using the RSVBlK and FPOOl parameters of the SE command. The following SE command example show the specification of an iridexed file with reserved data blocks. ENTER COMMAND (1): SE [1] [2] SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET SECONDARY INDEX CY/N)?: N ENTER OPTION: 2 PARAMETER DEFAULT NEW VALUE BASEREC HULL:IO BLKSIZE 0:256 RECSIZE 0:80 KEYSIZE 0:40 KEYPOS 1:1 FREEREC 0:1 FREEBLK 0:10 RSVBLK HULL:10 RSVIX 0: FPOOl NULL:SO DELTHR HULL: DYN HULL: TOTAL LOGICAL RECORDS/DATA BLOCK: FULL RECORDS/DATA BLOCK: INITIAL ALLOCATED DATA BLOCKS: INDEX ENTRY SIZE: TOTAL ENTRIES/INDEX BLOCK: FREE ENTRIES/PIXB: RESERVE ENTRIES/PIXBCBLOCKS): FULL ENTRIES/PIXB: RESERVE ENTRIES/SIXB: FULL ENTRIES/SIXB: DELETE THRESHOLD ENTRIES: FREE POOL SIZE IN BLOCKS: • OF INDEX BLOCKS AT LEVEL 1: • OF INDEX BLOCKS AT LEVEL 2: DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: ,,~ 3 2 5 44 5 1 1 3 0 5 4 1 2 1 13 -1 -1 CREATE/DEFINE FILE (Y/N)!: N ENTER COMMAND (1): (ji~ IG-48 SC34-0404 o [1] In this example RSVBLK was specified as 10. entries in each PIXB will initially be reserved. Thus 10~ of the total [2] Because the total entries per PIXB is 5, lOX of 5 rounded up will cause 1 entry in each PIXB to be reserved. Because there are 2 PIXBs, each with 1 reserve entry, a maximum of 2 free pool blocks can be used. However, since FPOOL was specified as 50X, only half of these blocks (1 block) will be allocated for the free pool. The total blocks allocated for this file is: Initial allocated data blocks Free blocks Free pool blocks Index blocks File control block 5 2 1 3 + ~ 13 Total Figure 7 on page IG-50 illustrates the format of the indexed fila that would result from these SE command parameters. o Chapter 3. Defining Primary Index Files IG-49 2 3 ==> SIXB 8 Unused 8 3 PIXBs 4 9 5 10 6 11 Free ==> 7 Free Reserved Reserved 4 5 Free Free Unused 6 9 7 10 11 Data blocks Free Free Free block 12 Free pool block Figure 7. ,IG-50 Indexed File with Reserved Data Blocks SC34-0404 Free Free block (/ '" '''ly o EXAMPLE ~: ALLOCATING RESERVED INDEX ENTRIES In the following example, the index structure is set up to use free pool blocks for ; ndex blocks by allocati ng reserve index entri es us; ng the RSVIX parameter. ENTER COMMAND (1): SE C' [1] [2] SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: 2 SECONDARY INDEX (Y/N)?: N PARAMETER DEFAULT NEW VALUE BASEREC NULL:I0 BLKSIZE 0:256 0:80 RECSIZE 0:40 KEYSIZE 1:1 KEYPOS 0:1 FREEREC 0:10 FREEBLK RSVBlK NUll:I0 RSVIX 0:10 FPOOl NULL:50 DELTHR NULL:40 DYN NULL:25 TOTAL LOGICAL RECORDS/DATA BLOCK: FULL RECORDS/DATA BLOCK: INITIAL ALLOCATED DATA BLOCKS: INDEX ENTRY SIZE: TOTAL ENTRIES/INDEX BLOCK: FREE ENTRIES/PIXB: RESERVE ENTRIES/PIXB(BlOCKS): FULL ENTRIES/PIXB: RESERVE ENTRIES/SIXB: FULL ENTRIES/SIXB: DELETE THRESHOLD ENTRIES: FREE POOL SIZE IN BLOCKS: 1: I OF INDEX BLOCKS AT LEVEL 2: I OF INDEX BLOCKS AT LEVEL 29 2 1 DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: -1 -1 3 2 5 44 5 1 1 3 1 4 2 41 CREATE/DEFINE FILE (Y/N)?: N ENTER COMMAND (1): o Chapter 3. Defining Primary Index Files IG-51 [1] In this example there are still S total entries per index block. Th_ 10 RSVIX parameter causes 10~ X 5 (rounded UP to 1) of the second-Iev.l index block (SIXB) entries to be reserved. In this case, 1 reserve entry is allocated in the SIXB leaving 4 full entries. Because the block pointed to by a SIXB is also an index block (PIXB), blocks in the free pool are allocated for the PIXB and the total nu~ber of data blocks it can point to. Thus the total free pool size for these parameters is 1 (reserve entry) + 5 (total entries/PIXB) + 2 (reserve block entries) = 8. Because only 50~ of the total possible free pool was requested, 4 of the total free pool blocks plus the 2S blocks specified on the DYH parameter for a total of 29 blocks would be allocated to the free pool. The total blocks allocated for this file is: Initial allocated data blocks Free blocks Free pool blocks Index blocks File control block 5 2 29 3 + Z. 41 Total [2] The percentage (0-99) of blocks to retain in the cluster as records are deleted and blocks made available. This is known as the delete threshold DELTHR. When a block becomes empty, it is first determined if the block should be given up to the free pool by checking the response to this prompt. If the block is not given up to the free pool, it is retained in the cluster, either as a free block or as an active empty block. The result of this calculation is rounded UP so that any non-zero specification indicates at least one block. The calculation is adjusted to ensure that the cluster always contains at least one block. In this example, the delete threshold was specified as 40~. This ·results in at least 2 blocks always being retained in each cluster. If the DElTHR parameter is specified as null (I) and DYM is not specified, DElTHR defaults to the number of allocated blocks in the cluster plus one half of the value calculated by the FREEBlK prompt. If the DElTHR parameter is specified as null and a value is specified for the DYM parameter, DElTHR defaults to zero. Figure 8 on page IG-53 illustrates the format of the indexed file that would result from these SE command parameters. IG-52 SC34-0404 o 2 3 8 ==> SIXB Reserved Unused 8 3 PIXBs 4 9 5 10 6 11 Free 7 Free Reserved Reserved Unused ==> 4 5 Free Free 7 6 10 9 11 Data blC)cks Free Free Free Free block Free block 12 14 13 -> > 15 > Free pool blocks Free Figure 8. Free Free Free Indexed File with Reserved Index Entries o Chapter 3. Defining Primary Index Files IG-53 EXAMPLE 5 ~ DEFINING A TOTALLY DYNAMIC FILE to define a totallY dynamic file you need only supply the parameters which describe the format of your records within blocks: BlKSIZE, RECSIZE, KEYSIZE. If the your keys do not begin in position 1 of your records, the KEYPOS parameter must be supplied. The DYN parameter must then be specified in the number of blocks to assign to the free pool. The following display shows the use of the SE commands of the $IAMUTl utility to define a totally dynamic indexed file. Note that the resulting file has only one allocated data block and one index block. The rest of the space is in the free pool as specified by the DYN parameter. () IG-54 0·'; I ~ (. / ENTER COMMAND (?): SE SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: 2 SECONDARY INDEX (Y/N)?: N PARAMETER DEFAULT NEW VALUE BASEREC NUll: BLKSIZE 0:256 RECSIZE 0:70 KEYSIZE 0:40 KEYPOS 1: FREEREC 0: FREEBLK 0: RSVBLK NULL: RSVIX 0: FPOOL NULL: DELTHR NULL: DYN NULL:5l00 TOTAL LOGICAL RECORDS/BLOCK: 3 FULL RECORDS/DATA BLOCK: 3 INITIAL ALLOCATED DATA BLOCKS: 1 14 INDEX ENTRY SIZE: 17 TOTAL ENTRIES/INDEX BLOCK: o FREE ENTRIES/PIXB: o RESERVE ENTRIES/PIXB (BLOCKS): 17 FULL ENTRIES/PIXB: o RESERVE ENTRIES/SIXB: 17 FULL ENTRIES/SIXB: o DELETE THRESHOLD ENTRIES: 5300 FREE POOL SIZE IN BLOCKS: 1 I OF INDEX BLOCKS AT LEVEL 1: DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: 5304 -1 -1 CREATE/DEFINE FILE (Y/N)?: N ENTER COMMAND (?): o Chapter 3. Defining Primary Index File. IG-55 The total blocks allocated for this file is: Initial allocated data blocks 1 Free blocks o Free pool blocks 5300 Index blocks 1 File control block ~ 5304 Total Figure 9 illustrates the format of the indexed file that would result from these SE command parameters. ~( ... ~. I I ..~,' . 2 Primary index block (PIXB) => 3 Data block => Free /-- ."', \\",..)tl 4 5 6 5303 ----~-->----~-->----~-->----~ Free pool blocks => Figure 9. Totally Dynamic Indexed F;le ( :.' I ~ \ "J IG-56 SC34-0404 ' o DESIGNING INDEXED FILES USING $IAHUTI - OPTION 3 Option 3 allows you to define a new file, using the same parameters that were used to create an exi sti ng fi Ie. Usi ng thi s opti on you are not required to manually enter any parameters. You are prompted for the data set name and volume of the existing indexed file followed by the prompt "NEW PARAMATERS EXACTLY SAME AS ORIGINAL PARAMETERS (Y/N) ?". The effects of these two possibilities are described below: Y The new file to be defined is to appear exactly like the existing file. when it was created. In other words, the parameters to be used for defining the new file will be exactly like those of the existing file. An example of this situation is where you are satisfied with the structure of a currently existing file and now you want to build a similar file and you expect the same type of insert/delete activity. N The growth of the existing file is to be taken into account in defining the new file. If the total number of records in the existing file do not exceed the number of base records when the file was defined, the existing file parameters will be used without change to define the new file. However, if the number of records in the existing file exceed the number of base records, the parameters for the new file will be adjusted as follows: • BASEREC will be set as the current number of records in the existi ng fi Ie. • FPOOl will be set to null. • DYN will be set to the current number of free pool blocks in the existing file. • All other parameters will be the same as the corresponding existing file parameters. Replying N to the prompt "NEW PARAMETERS EXACTLY SAME AS ORIGINAL PARAMETERS (YIN)?", causes the fi Ie size to be adjusted to allow at least as many records to be loaded in the new file as appear in the existing file. This reduces the free pool amount based upon free pool depletion in the existing file. An example of this situation is where you wish to reorganize a file. The new file should be able to handle as many records as exist in the old file. Note: The parameters for a primary file must be set from another primary file and parameters for a secondary file must be set from another secondary file. o Chapter 3. Defining Primary Index Files IG-57 $IAMUT 1 - OPTION 3 The $IAMUTI Indexed Access Method utility can be loaded with the Event Driven Executive operator command $L $IAMUTI. When $IAMUTI is loaded the first prompt displayed is as [Ill follows~ ENTER COMMAND (1)' SE tIl Entering SE causes the next prompt to be displayed. [2] SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = ALL PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATA SET ENTER OPTION: 3 [2] Respond to this prompt by entering the digit '3'. es the following prompts to be displayed. This response caus1/ --, i,~__ / [3] [4] [5] SECONDARY INDEX (Y/N)?: N NAME OF EXISTING INDEXED DATASET (NAME,VOLUME): EMPLFILE,EDX003 NEW PARAMETERS EXACTLY SAME AS ORIGINAL PARAMETER.S (Y/N)! Y DATA SET SIZE IN EDX RECORDS: 15 INDEXED ACCESS METHOD RETURN CODE: -1 SYSTEM RETURN CODE: -1 CREATE/DEFINE FILE (Y/N)?: N [3] Enter the name of the data set and volume whose values you wish this data set to copy. [4l If all of the parameter values used to define the existing file initially are satisfactory, reply Y. However, if you want to change any of the parameters, based on current file status, or you want to reorganize the existing file, reply N. Replying N will cause the pa~ameter values for BASEREC and FPOOl to be adjusted so that you can load as many records into the new file as are now contained in the existing file. [5] If you have verified that the parameters you entered are correct, the data set (file) size in EDX records is acceptable, and the return codes are both -1, you can reply Y and the file can be defined and created. If IG-58 SC34-0404 o you wish to change any of the parameters, reply N and you can reenter the SE command and enter any new values for the parameters. DEFINING, CREATING, AND LOADING A FILE - SUMMARY This chapter has presented the structure, content and principles of primary index files. Several examples have been used to show what results given parameter values when defining a primary index file. In those examples the use of the SE command of $IAMUTI was used extensively. In replying to the SE prompt "DEFINE/CREATE FILE (Y/N)?:", N was used in this chapter. This allows you to reenter the SE command and go through the prompt sequence again. changing any parameter values as required. To see the result of replying Y. see the example used in "Chapter 2. Using the Indexed Access Method" on page IG-5. When you reply Y to the DEFINE/CREATE prompt, you enter the function called defining the file. You can enter the define file directly anytime that $IAMUTI is loaded by responding with DF to the prompt "ENTER COMMAND (!):." Using the DF (define file) command is described in detail under "DF - Define Indexed File" on page IG-146. . ·,' C " ,.IJ/ When you reply Y to the prompt, "INVOKE LOADCL), REORGANIZE(R) OR END(E) AFTER CURRENT FUNCTION ,:", you are given the opportunity to enter the $IAMUTI functions of load, reorganize, or end. While in the SE function, load, reorganize, and end can be entered by replying with the letters L, R, or E, respectively. However, these functions can be entered directly from the prompt "ENTER COMMAND (!):" with LO for load, RO for reorganize, or EN for end. Usi ng the LO (load) command Indexed File" on page IG-162. is descri bed in deta i 1 under "LO - Load Using the RO (reorganize) command is described in detail under "RO - Reorganize Indexed File" on page IG-171. Enteri ng EN (end) termi nates the current sessi on of the SE command of $IAMUT1. Entering EN to the prompt "ENTER COMMAND (?):" will then terminate the $IAMUTl utility. o Chapter 3. Defining Primary Index Files IG-59 ('- ',\, (\'-.../ c IG-60 SC34-0404 o CHAPTER 4. LOADING THE PRIMARY INDEX FILE This secti on descrt bes the process and methods of loadi ng a fi le. You can use two methods to load base records: • The $IAMUTI utility • An application program The methods are described in the following sections. LOADING THE PRIMARY INDEX FILE The Indexed Access Method uses two modes to place records into an indexed file= 1. load mode: records are loaded sequentially in ascending order by key, skipping any free space. The records loaded are called base records. Each record loaded must have a key higher than any key already in the file. 2. Process mode: records are inserted in their proper key position relative to records already in the file. Records are inserted using the free space that was skipped during loading or, if a record has a new high key, it is placed in a base record after the last loaded record. If no base records are available, it is placed in the free space after the last loaded record. The total number of base records that can be loaded is established when the indexed file is defined by the $IAMUTI utility. It is not necessary, however, to load all (or any) base records before processing can begin. The file can be opened for loading some of the base records, closed and then reopened for processing (including inserts). and later opened for loadi ng more base records. Fi gure 10 on page IG-62 illustrates thi s sequence. Note: Programs written in COBOL are an exception to this: COBOL programs can use load mode only once for,any given indexed file. Therefore. all base records loaded in load mode must be loaded together. Base records loaded later must be inserted in process mode (with slower performance). o The amount of free space for inserts (i f any) is speci fi ed us; ng the $IAMUTl utility when the indexed file i~ built. This free space can be distributed throughout the file in the form of free records within each data block. free blocks within each cluster, and in a free pool at the end of the fi Ie. Chapter 4. loading The Primary Index File IG-61 PROCESS "ODE LOAD "ODE Step 1. load a portion of the base records High key after step 1 - < - < <--<--<--< <--<--< ~ > 1'--- - - - -- f--------- First record has lowest key Step 2. Insert new records -High key after step 2 Step 3. load more base records High key after step 3 --- > -- ------ < last record has highest key Unused space Figure 10. loading and Inserting Records LOADING BASE RECORDS USING $IAMUTl After the indexed file has been defined by the $IAMUTI OF command, you can load base records from a sequential file into the indexed file. loading the fi Ie can be done di rectly by respondi ng Y to the prompt "INVOKE lOADCl), REORGANIZECR) OR ENOCE) A~TER CURRENT FUNCTION?", when defining the file, or by using the LO command after the file has been defined. The data in the sequential file must be in ascending order by key. To load base records using $IAMUT1, do the following: 1. Prepare a sequential file for input to the indexed file 2. load the sequential file into the indexed file Prepar;ng Input for the Indexed File Select one of the following methods to prepare the input in a sequential file to be loaded into an indexed file: IG-62 SC34-0404 • If your data records are 72 bytes or less, use one of the text editors to enter your data or one of the communications utilities to get the data into an Event Driven Executive sequential file. In either case, you must know the record format used by the utility. The utilities put two 80-byte records in each 256-byte Event Dr i ven Execut i ve record. The first record begins at location 1, and the second record begins at location 129. This results in a blocked sequential file which can be used to load the indexed file when using the LO command of $IAMUT1. (A detailed description of the LO command is under "LO Load Indexed File" on page IG-162.) Specify 128 for the input record length and 256 for the input block size. • If your records have more than 72 bytes of data, you must create a program that accepts the data records and writes them to a disk, diskette, or magnetic tape file. The data must be in ascending order, based upon the field you use as the key. ( \ ~, / Chapter 4. Loading The Primary Index File IG-63 Loading an Indexed Fi Ie from a sequential Fi Ie The procedure for loading an indexed file from a sequential file is: 1. Invoke $IAMUTI using the system command $L. 2. If you want a hard copy of the terminal prompts and responses, enter an EC command. Respond to the prompt with a Y. This will print all further prompts and responses of $IAMUTI on the $SYSPRTR device and your terminal. If a hard copy is not required, omit this step. 3. Enter the LO command. Respond to the following prompts with your data set information. ENTER COMMAND (1): LO LOAD ACTIVE ENTER OUTPUT DATASET (NAME,VOLUME): $FSEDIT FILE RECSIZE = 128 INPUT RECORD ASSUMED TO BE 80 BYTES. OK?: ENTER INPUT BLOCKSIZE (NULL = UNBLOCKED): ENTER INPUT DATASET (NAME,VOLUME): LOAD IN PROCESS END OF INPUT DATASET ANY MORE DATA TO BE LOADED?: N 6 RECORDS LOADED LOAD SUCCESSFUL 4. Enter the EN command to end $IAMUTI. Your program is now loaded and you can process the data with your application program. ' C ~ I, IG-64 SC34-0404 , .:P LOADING BASE RECORDS FRO" AN APPLICATION PROGRA" Base records are records placed into an indexed fila in ascending new high key sequence. That is. if a record added to the file has a key higher than any other record in the file, it is placed in a base record slot. Base records are placed in the base record slots reserved for them by use of the BASEREC parameter. You can use either the $IAMUTl LO cQmmand or an application program to load the base records. Base records must be loaded in ascending order by key. If you are writing your own program to load the file, use a LOAD request to connect the file .to load base records. Then issue a PUT for each record. When the desired records have been loaded, issue a DISCOHN request to terminate the load procedure. The only requests that can follow a LOAD request are: PUT, EXTRACT, and DISCONN. You can al so insert base records in process mode by usi ng a PROCESS request to connect the file, followed by a PUT request for each record to be loaded. Loading records in load mode with an application program is discouraged because of slQwer performance. Unless the base record loading program is written in COBOL, it need not load all base records at one time. A file that already contains records can be reconnected to load more records, but the key of each new record must be higher than any key already in the file. ( """ "\ .:Y COBOL programs must either load all the base records in load mode at once (because only one use of load mode is allowed on a given file) or insert the records in process mode as needed. The limit on base rec~rds as specified on the SE command of the Indexed Access Method utility program ($IAMUT1) cannot be exceeded. If you attempt to load a record after the last allocated record area has been filled, an end-of-file condition occurs. LOADING BASE RECORDS FRO" A SEQUENTIAL FILE IN RANDO" ORDER In order to load base records from a sequential file where keys are in random order, code an EDL program to open the indexed file in load mode. Load the SORT/MERGE program with an output exit routine specified. Write (PUT) each record to the indexed file as it is received in the output exit rout i ne from SORT /MERGE. The output ex it rout i ne can al so screen out duplicates or other unwanted records. For information on using the SORT/MERGE Program Product, refer to Sort/Merge Programmer's Guide. C',: i Chapter 4. Loading The Primary Index File IG-65 IG-66 SC34-0404 o CHAPTER S. BUILDING A SECONDARY INDEX Indexed files, like most data record files, can be a common base for many applications. You can assign secondary keys in your indexed files for greater flexibility in accessing records in indexed files. Secondary keys are accessed through a secon~ary index (a separate file). Your application program requests records by their secondary key and secondary index file name. The secondary index is used to retrieve the record by its secondary key from the primary index file. You can have more than one secondary index for a given primary index file. In order for the Indexed Access Method to know the relationships between secondary indexes and primary index files, you must create and maintain a directory with that information. SECONDARY KEYS Secondary keys are not requi red to be un; que; di fferent records in an indexed file can have the same key values in their secondary key field. The secondary key can be any fi eld wi thi n your data record that you select, however, it must meet the following requirements: • the selected field must start at the same location in each record • all portions of the key field must be contiguous • the secondary key length cannot exceed 250 bytes In a secondary index, the Indexed Access Method assigns a sequence number to each secondary key. The sequence number shows the sequence of loading or inserting secondary index entries. A sample layout of a secondary index record follows: Secondary Key SMITH Sequence Number 0001 Primary Key Relative Block Number (primary) 12345AB RBH THE DIRECTORY c In order for the Indexed Access Method to know the relationships between secondary indexes and primary index files, you must create and maintain a Chapter 5. Building a Secondary Index IG-67 directory with that information. The directory describes all indexed files in the system which are either secondary indexes, or primaries which have secondary indexes associated with them. Primary index files which do not have secondary indexes associated with them are not in the directory. Use the $IAMUTI utility to create and maintain the directory. The directory name is $IAMDIR and it resides on the IPL volume. The directory contains one or more groups of entries. Each group begins with an entry for the primary file and is followed by an entry for each secondary index which references that primary file. You have the responsibility of maintaining the directory using the $IAMUTI utility. Each entry in the directory contains the following information: • fi Ie name • volume name • primary file or secondary index indicator • independent indicator • invalid index indicator (secondary entry only) • automatic update indicator (secondary entry only) FILE NAME: The file name is the data set name supplied when the primary index file or secondary index entry is inserted in the directory. VOLUME NAME: The file location is the volume label name where the index resides that this entry is for. INDEPENDENT PROCESSING INDICATOR: Each entry in the directory contains an independent indicator. Independent means that the file is to be treated as an independent file without regard to associated primary or secondary files. If the independent indicator is set on for a file that is explicitly opened, the automatic update indicator is ignored. In the case of a secondary index, this means that records retrieved ara internal secondary index records, not data records from ~he primary file. In addition, independent means that any modification to the file (either primary or secondary) will not be reflected in its associated files. Also any changes made in a secondary index will not be reflected in the associated primary or other secondary index files. In the case of a primary entry, any modification to the primary file will not be reflected in the associated secondary index files. INVALID INDICATOR: The invalid indicator is initially turned on in the directory, by the directory function of $IAMUT1, when the secondary entry is inserted in the directory. IG-68 SC34-0404 o A secondary index entry is marked invalid until the secondary index has been loaded. The load function of the utility turns off the invalid indicator. If you build the secondary index with an application program. you must al so turn off the i ndi cator. The UE subcommand of the DR funct ion in $IAMUT1 is used to turn off the invalid indicator. after you have successfully loaded your secondary index. AUTOMATIC UPDAT~ INDICATOR: Each secondary index entry in the directory contains an automatic update indicator. Any "modification to the primary file (either directly or through any secondary index activity) results in an automatic update to all secondary indexes whose automatic update indicator in the di rectory was speci fi ed wi th Y. Thus, a secondary index flagged as auto-update can be thought of as "dynamic." Each secondary index remains open until all users of it have closed. However. if the independent indicator is set on for a file that is explicitly opened. the automatic update indicator is ignored. If the automatic update indicator was specified as H, changes are not reflected in that secondary index. This would be a "static" index. The assumption is that a static index would be rebuilt periodically to bring it up to date. ALLOCATING AND INSERTING ENTRIES IN A DIRECTORY Although the Indexed Access Method references the directory, it never modifies the directory. The one function that is performed on the directory automatically is that the secondary load option sets the invalid indicator off following successful completion. To define the existence of a secondary index, use $IAMUT1 to perform the following two steps: 1. allocate a directory using the DR (directory function) of $IAMUTl 2. establ ish the fact that a secondary index wi 11 ex i st by mak i ng an entry in the directory using the IE (insert entry) command of $IAMUTI Remember that primary index file entries precede their associated secondary index entries. The $IAMUTI Indexed Access Method utility can be loaded with the Event Driven Executive operator command $L $IAHUTI. When $IAMUTI is loaded the first prompt displayed is as follows: o [Ill ENTER COMMAND [1] (?): DR Entering DR causes the following prompt sequence. Chapter 5. Building a Secondary Index IG-69 C I~\ ( [2] [31 [4] ENTER DIRECTORY COMMAND (?): AL MAX I OF DIRECTORY ENTRIES: 10 THE DIRECTORY DS REQUIRES 1 EDX RECORDS, CONTINUE (YINIEN)? V [SI DIRECTORY DATA SET ALLOCATED: $IAMDIR,EDX002 ""i [2] Responding to this prompt with AL. If the current open is for PROCESS, the record may have any key and is placed in key order in either a base record or in a free slot in the appropriate place in the file. The PUTC request processes the record that is i ti your buffer (buff) according to the way the file was opened (LOAD or PROCESS) only if the record or file is not locked. Syntax: label CALL Required: Defaults: all none IAM,(PUTlpUTC),iacb,Cbuff) Operands Description ;acb The label of a word containing the IACB address returned by PROCESS or LOAD. (buff) The label of the user area containing the record to be added to the file. o Chapter 7. Coding the Indexed Access Method Requests IG-127 PUT Return Codes Code -90 -1 7 8 10 12 13 14 22 60 61 62 70 76 90 100 101 230 244 246 248 IG-128 Condition Request cancelled because the request was conditional and a wait on a lock or buffer would be required Successful Link module in use, syncronize use of link module with the program Load error for $IAM, verify $IAM exists and enough storage is available to load it Invalid request Data set shut down due to error; see version 2 guide, error recovery A required module is not included in $IAM Invalid index block found - during processing an incorrect index block type was found, recreate the file Address supplied by your program is not a valid IAC8 Out of sequence or duplicate key (LOAD only) End of file Duplicate key found (PROCESS only) No space for insert; reorganize the file DSOPEN error occurred - The system error field in the OPEN table contains the DSOPEN errors: 21 - DSNAME,VOLUME not found 22 - VOlSERV error 23 - I/O error Internal key save area temporarily in use by another request Read error - check system return code Write error - check system return code Directory read error form $IAMDIR. Check system return code Error in opening auto-update on modification request Auto-update processing an INS;RT to a secondary failed, auto-update processing continues I/O error on primary file during a secondary request SC34-0404 o PUT Example The following example puts the record in the area named 'BUFFER' into the file. The file is identified by the field named 'FIlEl' . . CAll FllEl BUFFER DATA DATA IAM,(PUT),FllEl,(BUFFER) F'O' 256F'O' IACB ADDRESS RETURNED HERE I/O BUFFER Chapter 7. Coding the Indexed Access Method Requests IG-l29 PUTDE - DELETE PREVIOUSLY READ RECORD The PUT DE request deletes a record from an indexed file. The record must have been previously retrieved by a GET or GETSEQ in update mode. Deleting the record creates free space in the file. The PUTDE releases the lock placed on the repord by the GET or GETSEQ. o The PUT DEC request deletes a record from an indexed file only if the block or buffer is not locked. Syntax: label CAll Required: Defaults: all none IAM,(PUTDElpUTDEC),iacb,Cbuff) Operands Description iacb The label of a word containing the IACB address returned by PROCESS. (buff) The name of the area contai"ning the record previously retrieved by GET or GETSEQ. "1"(-",, IG-130 SC34-0404 l".,) o PUTDE Return codes Code -90 -1 7 8 10 12 13 14 22 76 C / 85 100 101 230 242 244 245 247 248 Condition Request cancelled because the request was conditional and a wait on a lock or buffer would be required Successful Link module in use, syncronize use of link module with the program Load error for $IAM, verify $IAM exists and enough storage is available to load it Invalid request Data set shut down due to error; see version 2 guide, error recovery A required module is not included in $IAM Invalid index block found ~ during processing an incorrect index block was found. Recreate the file Address supplied by your program is not a valid IACB DSOPEH error occurred - The system error field in the OPEN table contains the DSOPEH errors: 21 - DSHAME,VOlUME not found 22 - VOLSERV error 23 - I/O error Key was modified by user Read error - check system return code Write error - check system return code Directory read error form $IAMDIR. Check system return code Secondary index is out of sync with primary file. Must rebuild file to get back in sync. Error in opening auto-update on modification request Auto update PUTDE to a secondary failed, Auto-update processing continues. During auto-update processing a GETSEQ to a secondary failed, auto-update processing continues. I/O error on primary file during a secondary request. o Chapter 7. Coding the Indexed Access Method Requests IG-131 PUTDE Example The following example deletes the record in the area named 'BUFFER' from the f;18. The record was read with either a GET or GETSEQ request in update mode. The file is identified by the field named 'FILE!'. CALL FILE! BUFFER DATA DATA (} IAM,(PUTDE),FILE1,(BUFFER) F'O' 256F'O' IACB ADDRESS FROM PROCESS 1/0 BUFFER -~ C) IG-132 SC34-0404 o PUTUP - UPDATE RECORD The PUTUP ~equest ~eplaces the ~eco~d in tha fila with the ~eco~d in you~ The ~eco~d must have been ~et~ieved by a GET o~ GETSEQ in update mode. You must not change the p~ima~y key field in the ~eco~d o~ the contents of the key a~ea i n you~ p~og~am ~etu~ned by the GET o~ GETSEQ ~equest. The Indexed Access Method checks fo~ and p~ohibits p~ima~y key modification. The PUTUP ~eleases the lock placed on the ~eco~d by the GET o~ GETSEQ. buffe~. The PUTUPC ~equast ~eplaces the ~eco~d in the file with the buffe~ only if the ~eco~d, block, o~ buffe~ is not locked. ~eco~d in you~ Syntax: label CAll Requi~ed: all none Defaults: \ C Ope~ands Desc~iption iacb The label of a CESS. (buff) The label of the use~ a~ea containing the one p~eviously ~et~;eved. y Chapte~ wo~d containing the lACS add~ess ~etu~ned ~eco~d to by PRO- ~eplace 7. Coding the Indexed Access Method Requests the IG-133 PUTUP Return Codes Code -90 -1 7 8 10 12 13 14 22 76 85 100 101 230 242 244 245 246 247 248 Condition Request cancelled because the request was conditional and a wait on a lock or buffer would be required Successful link module in use, syncronize use of link module with the program Load error for $IAM, verify $IAM exists and enough storage is available to load it Invalid request Data set shut down due to error; see version 2 guide, error recovery A required module is not included in $IAM Invalid index block found - during processing an incorrect index block was found. Recreate the file Address supplied by your program is not a valid IACB DSOPEN error occurred - The system error field in the OPEN table contains the DSOPEN errors: 21 - DSNAME,VOlUME not found 22 - VOlSERV error 23 - I/O error Key was modified by user Read error - check system return code Write error - check system return code Directory read error form $IAMDIR. Check system return code Secondary index is out of sync with primary file. Must rebuild file to get back in sync. Error in opening auto-update on modification request Auto update PUT DE to a secondary failed, auto-update processing continues. Auto-update processing an INSERT to a secondary failed, auto-update processing continues During auto-update processing a GETSEQ to a secondary failed, auto-update processing continues. I/O error on primary filQ during a secondary request. If --, ,\:c.jt/ o IG-134 SC34-0404 o PUTUP Example The following example puts the updated record in the area named 'BUFFER' back into the fi Ie. The record was read wi th ei ther a GET or GETSEQ request in update mode. The fi Ie is i dent i f1 ed by the fi eld named 'FIlEl'. CAll FIlEl BUFFER DATA DATA IAM,(PUTUP),FIlEl,(BUFFER) F'O' 256F'O' IACB ADDRESS FROM PROCESS I/O BUFFER C' / Chapter 7. Coding the Indexed Access Method Requests IG-l35 RELEASE - RELEASE RECORD The RELEASE request frees a record that has been locked by a GET o~ GETSEQ for update. A record lock is normally released by a PUTUP or PUTDE. The RELEASE request is useful for freeing the locked record when the update need not be completed. RELEASE is valid only when a record is locked f~r update. Syntax: label CALL Required: Defaults: all none IAM,(RELEASE),iacb Operands Description ;acb The label of a word containing the IACB address returned by PROCESS. RELEASE Return Codes Code -1 7 8 10 12 13 22 Condition Successful Link module in use, syncronize use of link module with the program Load error for $IAM, verify $IAM exists and enough storage is available to load it Invalid request Data set shut down due to error; see version 2 guide, error recovery A required module is not included in $IAM Address supplied by your program is not a valid IACB c IG-136 SC34-0404 o RELEASE Example The following example releases the record that was read with either a GET or GETSEQ request in update mode. The file is identified by the field named 'FllEl'. CAll FllEl DATA IAM,(RElEASE),FllEl F'O' IACB ADDRESS FROM PROCESS o Chapter 7. Coding the Indexed Access Method Requests IG-137 EDL CALL FUNCTIONS SYNTAX SUMMARY Following is a summa~y of the syntax of the EDl CAll instructions used to invoke the functions provided by the Indexed Access Method. label label label label label label CAll CALL CAll CAll CALL CALL label label label label label label CALL CAll CALL CALL CAll CAll IG-138 IAM,(DElETEIDElETC),;acb,Ckey) IAM,(DISCONN),iacb IAM,(ENDSEQ),iacb IAM,(EXTRACT)"acb,(buff),(slze),(type) IAM,(GETIGETCIGETRIGETCR),iacb,Cbuff),(key)~(mode/krel) IAM,(GETSEQIGETSEQCIGETSEQCRIGETSEQR),iacb,Cbuff), (key),(mode/krel) IAM,(lOAD),iacb,Cdscb),(opentab),Cmode) IAM,(PROCESS),iacb,Cdscb),Copentab),(mode) IAM,(PUTlpUTC),iacb,Cbuff) IAM,(PUTDElpUTDECl'iaCb,CbUffl IAM,(PUTUP PUTUPC),iacb,Cbuff) IAM,(RElEASE),iacb SC34-0404 o INDEXED ACCESS METHOD RETURN CODES SUMMARY Return Code -90 -85 -80 -79 -75 -58 -57 -1 01 07 08 C~ 10 12 13 14 17 22 23 50 51 52 54 55 56 60 61 62 65 70 Condition Request cancelled because the request was conditional and a wait on a lock or buffer would be required Record to be deleted not found End of ,data Warning - File was opened and not closed during the last session, normal processing continues Warning - File has either not been formatted or the invalid indicator is on in the directory for that file Record not found Data set has been loaded Successful completion Invalid function specified on CAll to $IAM link module in use, syncronize use of link module with the program load error for $IAM, verify $IAM exists and enough storage is available to load it Invalid request Data set shut down due to error; see version 2 guide, error recovery A required module is not included in SIAM Invalid index block found - during processing an incorrect index block type was found, recreate the file lAM is inactive - not enough storage available Use $IAMUTl BF command to readjust storage size Address supplied by your program is not a valid IACB Insufficient number of IACBs, use BF command of $IAMUTl to allocate more Data set is opened for exclusive use, cannot be opened exclusively Data set already opened in load mode Data set is opened, cannot be opened exclusively $IAM buffer too small to process a file with this block size Use the BF command of $IAMUTl to increase the buffer size Get storage error - FCB READ error - FCB, refer to system return code Out of sequence or duplicate key End of file Duplicate key found in process mode Inconsistent free space parameters RSVIX/RSVBlK or FPOOl/DYN were specified without one or the other No space for insert. Reorganize the fila '0 Chapter 7. Coding the Indexed Access Method Requests IG-139 Return Coda 76 77 7a ao as 90 100 101 110 120 122 123 150 200 230 231 234 242 243 244 245 246 247 248 249 () Condition DSOPEN error occurred - The system error field in the OPEN table contains the DSOPEN errors: 21 - DSNAME,VOlUME not found 22 - VOLSERV error 23 - I/O error Record save area not large enough - use $IAMUTl BF command to set maximum record size for secondary file processing Attempted to open a secondary file for LOAD, file is not opened independently FCB WRITE error during DELETE processing - see system return code Key field modified by user Internal key save area temporarily in use by another request READ error - check system return code WRITE error - check system return code WRITE error - data set closed Invalid EXTRACT type File does not contain FCB extension Cannot extract paging statis~ics. Data paging is not active Hot enough storage available for data paging Error occurred while accessing the primary file Directory read error form $IAMDIR $IAMQCB not found. Check sysgen for include of $IAMQCB Directory error - DSNAME,VOL not found in $IAMDIR Secondary index is out of sync with primary file. Must rebuild file to get back in sync. Primary file failed to open on secondary open request Primary I/O error Error in opening an auto-update modification request Auto-update processing an INSERT to a secondary failed, auto-update processing continues During auto-update processing a GETSEQ to a secondary failed, auto-update processing continues I/O error on primary file during a secondary request GET UPDATE error occurred trying to update a bad RBN Note: For return codes 243 through 249, occured. Use $IlOG to display the errors. mul t i pie errors may have o IG-140 SC34-0404 o CHAPTER 8. THE $IAHUTl UTILITY This chapter describes how to use the $IAMUT1 utility to build and maintain your indexed files. Each command is described, including its function, parameters, and an example of how to use it. The file definition parameters are also described. The chapter is arranged in alphabetic order. Following is the list of commands and the location of their descriptions: "BF - Tailor the Indexed Access Method Buffers" on page IG-144 "DF - Define Indexed File" on page IG-146 "DI - Display Parameter Values" on page IG-149 "DR - Invoke Secondary Index Directory Functions" on page IG-150 "EC - Control Echo Mode" on page IG-160 c "EF - Display Existing Indexed File Characteristics" on page IG-161 "LO - Load Indexed File" on page IG-162 "NP - Deactivate Paging" on page IG-166 "PG - Select Paging" on page IG-167 "PP - Define Paging Partitions" on page IG-168 "PS - Get Paging Statistics" on page IG-169 "RE - Reset Parameters" on page IG-170 "RO - Reorganize Indexed File" on page IG-171 "SE - Set Parameters" on page IG-173 "UN - Unload Indexed File" on page IG-184 The subcommands of the directory function (DR), are listed alphabetically under the DR description. Those subcommands are: AL EN DE IE LE UE - allocate/reallocate directory end directory function delete entry insert entry list entries update entry Chapter 8. The $IAMUTI Utility IG-141 $IAMUTl $IAMUTI can be invoked using the $l command, $JOBUTIl, or the Session Manager. $IAMUTI functions use dynamic storage for work and buffer areas. The $IAMUTI utility is shipped with sufficient dynamic storage to handle input and output block sizes of UP to 512 bytes. This enables you to define an indexed file with a maximum block size of 512 bytes, and to load, unload, and reorganize indexed files with a maximum block size of 512 bytes. $IAMUTI determines if enough dynamic storage has been provided. If sufficient storage has not been provided, $IAMUTI displays a message. In order to handle large blocks of data, a larger dynamic storage area will have to be provided to $IAMUTI. Additional dynamic storage can be provided by one of two ways: provide the storage parameter on the $l command, or use the SS command of the $DISKUT2 utility. The load, unload and reorganize functions use the entire dynamic storage available to minimize the number of disk I/O operations. Improved performance, therefore, can be obtained by specifying as large a dynamic area as possi ble. $IAMUTl COMMANDS The commands available under $IAMUTI are listed below. To display this list at your terminal, enter a question mark in response to the prompting message ENTER COMMAND (1):. The command descriptions in this chapter are arranged in alphabetic order. IG-142 C ' SC34-0404 -~.·· ,I o ENTER COMMAND (1): ? EC EF DR EN - SET/RESET ECHO MODE DISPLAY EXISTING FILE CHARACTERISTICS SECONDARY INDEX DIRECTORY FUNCTIONS END THE PROGRAM SE SET DEFINE PARAMETERS DF - DEFINE AN INDEXED FILE DI - DISPLAY CURRENT SE PARAMETERS RE - RESET CURRENT VALUES FOR DEFINE LO - LOAD INDEXED FILE FROM SEQUENTIAL FILE RO - REORGANIZE INDEXED FILE UN - UNLOAD INDEXED FILE TO SEQUENTIAL FILE PG NP PP PS SF - SELECT DATA PAGING DESELECT DATA PAGING DEFINE PAGING PARTITIONS DATA PAGING STATISTICS SET BUFFER SIZES ENTER COMMAND c (1): After the commands are displayed, you are again prompted with ENTER COMMAND (1):. Respond with the command you wish to use. o Chapter 8. The $IAMUTl Utility IG-143 BF - TAILOR THE INDEXED ACCESS METHOD BUFFERS The BF command specifies the amount of storage that the Indexed Access Method ($IAM) is to use for buffers and control blocks and the maximum record size for any file with a secondary index. BF prompts you for each of the following parameters by displaying the current value and accepting new settings. BUFFER SIZE Indi cates the amount of storage (i n bytes) to be used for the central buffer. Use the following formula to calculate your minimum buffer size: Buffer Size = (2 x blocksize) + (28 x blocksize/256) where: blocksize = maximum block size NUMBER OF IACBs Indi cates the number of the I ACBs. The max i mum number of IACBs is 64. There is an lACB associated with"each PROCESS or LOAD that is issued. When calculating the number of IACBs you should consider the number of concurrent users you may have at any one time. NUMBER OF FCBs Indicates the number of FCBs. The maximum number of FCBs is 64. There is one FCB for every file that is open. When calculating the number of FCBs you should consider the maximum number files that might be open at a given time. MAXIMUM RECORD SIZE Indicates the maximum record size of any file with an associated secondary index. If no files have a secondary index, this value can be zero. The actual amount of storage reserved as a result of this parameter is twi ce the value speci fi ed plus 8 bytes. Hone of these take effect until the next time the Indexed Access Method is loaded. IG-144 SC34-0404 o IF Command Example This example sets the central buffer size to 540 bytes, leaves the number of IACBs at 3, leaves the number of FCBs at 3, and sets the maximum record size of any file with a secondary index to 120 bytes. ENTER COMMAND (1): IF PARAMETER DEFAULT NEW VALUE BUFFER SIZE 1080 540 NUNBER OF IACBs 3 NUMBER OF FCBS 3 MAXIMUM RECORD SIZE 256 120 VALUECS) SET STORAGE FOR $IAM HAS BEEN SET TO 2048 BECOMES EFFECTIVE ON NEXT LOAD OF $IAM ENTER COMMAND (1): o Chapter 8. The $IAMUTI Utility IG-145 " C ill II DF - DEFINE INDEXED FILE The DF command allocates, defines, and formats an indexed file. The DF function will optionally invoke the load or reorganize function for you. Before entering DF, you must use the SE command to set up parameters that determine the size and format of the indexed file. The DF command uses those SE parameters to optionally allocate and format the file. The DF function can be invoked at the end of the SE function. The allocate step consists of using the file size computed during the SE step to dynamically allocate the file. If the file already exists, the size is verified to ensure that it is large enough. The define step consists of writing the file control block (FCB) and its extension to the indexed file. Finally, the optional format step initializes all records in the indexed file to provide an empty structured file. INVOKING THE LOAD AND REORGANIZE FUNCTIONS FROM DF: You can invoke the LOAD or REORGANIZE functions directly from the DF (or SE) command. If you invoke these functions, DF does not format the file because LOAD and REORGANIZE will format the file. If you do not invoke the LOAD or REORGANIZE function, DF formats the file so you can load the file using an application program or the LO command. Notes: 1. You can use the LOAD/REORGANIZE command later to load the file, if you do not invoke it from the DF command. 2. An application program cannot access an unformatted indexed file. 3. The prompt for the load/reorganize function occurs before the file is actually defined. 4. A secondary index file cannot be loaded with the LO command, though it can be reorganized using the RO function. Defining the File The define function prompt for the file to be allocated. If the file already exists, its size is checked. If the size is at least as large as needed, DF prompts you as to whether the file should be reused as follows: IG-146 SC34-0404 ' i )1 o ENTER COMMAND (!): OF ENTER DATA SET (NAME,VOLUME) : IAHFIlE,EDX003 DATA SET ALREADY EXISTS AND IS LARGE ENOUGH DO YOU WISH TO REUSE IT (Y/N)!: Y If the file exists, but it is not as large as needed, you have the option of deleting and reallocating it as shown in the following example: ENTER COMMAND (!): OF ENTER DATA SET (NAME, VOLUME) HASTER,VOl123 DATA SET ALREADY EXISTS AND IS TOO SMALL DELETE AND REALLOCATE (Y,N)? : Y DELETE AND REALLOCATE COMPLETED If the fi Ie does not exi st, it is allocated as follows: ENTER COMMAND (?): OF ENTER DATA SET CNAME,VOLUME) NEW DATA SET IS ALLOCATED HASTER,VOL123 DF prompts you to select whether or not you want to use the immediate write-back option. Immediate write-back has the same effect on primary or secondary indexed files. Each request to insert, delete, or update a data record, causes the affected blocks to be read into the Indexed Access Method buffer. The actual modification to the block is performed in the buffer. o If you enter N to the immediate write-back prompt, file modifications are held in the main storage buffer and not written back to the indexed file until the buffer space is needed for another block or until the file ;s closed. If the device where the file resides was powered off before the block was written back to the file, the modification to the file would not have been performed. Chapter 8. The $IAMUTl Utility IG-147 If you enter Y to the immediate write-back prompt, you are assured that the changed block is written back to the file immediately. The prompt is as follows: DO YOU WANT IMMEDIATE WRITE-BACK? Y . DF Command Example The following example shows a use of the DF command to define a file named MASTER on volume VOL123. Immediate write-back is selected and the request to invoke LOAD or REORGANIZE is indicated. ENTER COMMAND (?): DF ENTER DATA SET (NAME. VOLUME) : HASTER,VOLI23 NEW DATA SET IS ALLOCATED DO YOU WANT IMMEDIATE WRITE-BACK? Y INVOKE LOAD(L), REORGANIZE(R) OR END(E) AFTER CURRENT FUNCTION? L DEFINE IN PROGRESS .DATA SET SIZE IN EDX RECORDS: 17 INDEXED ACCESS METHOD RETURN CODE: -1 SYSTEM RETURN CODE: -1 PROCEED WITH LOAD/REORGANIZE (Y/N) c IG-148 SC34-0404 o DI - DISPLAY PARAMETER VALUES DI displays the current parameter values entered during the current session of $IAMUTI SE command. The parameter values can be used to format a file using the DF command or they can be modified by reusing the SE command. Note: You can also use the EF command to display the parameters of an enci sti ng fi Ie. The following example shows a use of the DI command. C" ",,/ ENTER COMMAND C?): DI CURRENT VALUES FOR SE COMMAND ARE: FILE TYPE = PRIMARY BASEREC 100 BlKSIZE 256 RECSIZE 80 KEYSIZE 28 KEYPOS 1 FREEREC 1 FREEBlK 10 . RSVBlK HUll RSVIX 0 FPOOl NUll DElTHR NUll DYN NUll ---------- For a secondary file, the record size is not displayed. o Chapter 8. The $IAMUTl Utility IG-149 DR - INVOKE SECONDARY INDEX DIRECTORY FUNCTIONS The DR command provides access to secondary index directory functions. Those functions are made available by replying DR when $IAMUTl requests "ENTER COMMAND (?):". You can then respond to the "ENTER DIRECTORY COMMAND (?):" with a subcommand. To obtain a list of the available subcommands, reply with a question mark (?) as follows: ENTER COMMAND (!): DR ENTER DIRECTORY COMMAND (?): ? AL LE ID DE UE EN - ALLOCATE/REALLOCATE DIRECTORY LIST ENTRIES INSERT ENTRY DELETE ENTRY UPDATE ENTRY END DIRECTORY FUNCTION ENTER DIRECTORY COMMAND (?): ;<". "'. '",.... j/ . The directory function commands are arranged in alphabetic order as DR xx, where xx is the two letter di rectory subcommand. Thei r speci fi c locations are listed below: "AL - Allocate Directory" on page IG-151 "DE - Delet~ Directory Entry" on page IG-153 "EN - End Directory Function" on page IG-154 "IE - Insert Entry" on page IG-155 "LE - List Entries" on page IG-156 HUE - Update Directory Entry" on page IG-158 IG-150 SC34-0404 o DR - AL AL - ALLOCATE DIRECTORY The AL subcommand allocates a di rectory for secondary indexes. If a directory already exists, this subcommand gives the option to delete and reallocate it. Note: To use this subcommand, you must first use the DR command. You are prompted to enter the maximum number of directory entries. Enter the number of entries you want the directory to be able to hold. Each entry describes a primary file or secondary index. The maximum number of entries defaults to 47. The directory, $IAMDIR, is always allocated on the IPL volume. The following example shows a use of the AL subcommand to allocate a new directory with a capacity of 10 entries: C: ENTER DIRECTORY COMMAND (?>: AL MAX I OF DIRECTORY ENTRIES: 10 THE DIRECTORY DATA SET REQUIRES 1 EDX RECORDS, CONTINUE (Y/N/EN)? Y DiRECTORY DATA SET ALLOCATED: $IAMDIR,EDX002 The next example assumes a directory already exists and allocates a new one. ENTER DIRECTORY COMMAND (?): AL DIRECTORY EXISTS, OPTIONS ARE: BN - BUILD NEW DIRECTORY AS - ADJUST SIZE EN - END DIRECTORY ALLOCATE ENTER OPTION: 8N ALL DIRECTORY ENTRIES WILL BE DELETED, CONTINUE (YIN)? V MAX I OF DIRECTORY ENTRIES: 20 THE DIRECTORY DS REQUIRES 2 EDX RECORDS, CONTINUE (Y/N/EN) ? V DIRECTORY DATA SET ALLOCATED: $IAMDIR,EDX002 The following example, adjusts the size of the directory data set. existing entries will be retained. Chapter 8. The $IAMUTI Utility All IG-151 DR - AL ENTER DIRECTORY COMMAND (?): AL DIRECTORY EXISTS, OPTIONS ARE: BN - BUILD NEW DIRECTORY AS - ADJUST SIZE EN - END DIRECTORY ALLOCATE ENTER OPTION: AS MAX I OF DIRECTORY ENTRIES: 1 THE DIRECTORY DS REQUIRES 1 EDX RECORDS, CONTINUE (Y/N/EN) ? Y DIRECTORY DATA SET ALLOCATED: $IAMDIR,EDX002 IG-152 SC34-0404 0 ,1 DR - DE I 1.1' DE - DELETE DIRECTORY ENTRY The DE subcommand deletes an entry from the directory. If you delete a primary entry. all associated secondary indeK entries are also deleted. Note: To use this subcommand. you must first use the DR command. The following example shows the deletion of the directory entry for the file named MASTER on the volume named VOL123. MASTER is a primary index file entry which has secondary indexes associated with it. ENTER DIRECTORY COMMAND (?): DE ENTRY (DSNAME,VOLUME): HASTER,VOL123 ASSOCIATED SECONDARY ENTRIES WILL BE DELETED. CONTINUE (Y/N)? DELETE SUCCESSFUL, NUMBER OF ENTRIES DELETED: 2 C ~ Y The following eKample shows the deletion of the directory entry for a file named MASTER, on the volume named VOL123. MASTER is a primary index file entry which no longer has any secondary indexes associated with it. " ENTER DIRECTORY COMMAND (?): DE ENTRY (DSNAME.VOLUME): HASTER ENTRY FOR MASTER ,EDX002 WILL BE DELETED. CONTINUE (Y/N)? Y DELETE SUCCESSFUL. NUMBER OF ENTRIES DELETED: 1 o Chapter 8. The $IAMUTI Utility IG-153 DR - EN EN - END DIRECTORY FUNCTION The EN subcommand terminates the directory funct;ons (DR) and returns to $IAMUT1 for your next command. ,,.c<----"', ' <1( . . ,;/ o IG-154 SC34-0404 o DR - IE IE - INSERT ENTRY The IE subcommand inserts a new entry into the secondary index directory. It is used to insert either a primary or secondary entry. However, the primary entry must be inserted before any of its secondary entries can be inserted. For a primary entry, enter the data set name and volume of the file for which the entry is being inserted. Specify N when asked "IS THIS A SECONDARY ENTRY (Y/N)?" For secondary entries, enter the data set name and volume of the secondary index for which the entry is being inserted and specify that it is a secondary index. You are then prompted for additional information. Specify the name of the primary index file which the secondary index is to be associated with. You can select automatic update, which indicates that any change to a primary file is to be reflected in the secondary index. The default for automatic update is yes. The following example inserts a directory entry for a primary index file: c ENTER DIRECTORY COMMAND (?): IE ENTRY (DSNAME,VOLUME): TOHPRI,EDX002 IS THIS A SECONDARY ENTRY (Y/N)? N DIRECTORY INSERT SUCCESSFUL The following example inserts a directory entry for a secondary index named 'TOMSEC1,EDX002' which is to be associated with the primary index file'TOMPRI,EDX002'. Automatic update is selected. ENTER DIRECTORY COMMAND (?): IE ENTRY (DSNAME,VOLUME) TOHSEC1,EDX002 IS THIS A SECONDARY ENTRY? Y ASSOCIATED PRIMARY ENTRY (DSNAME,VOLUME): TOHPRI,EDX002 AUTO-UPDATE (Y/N)? Y O Note: To use this subcommand, you must first use the DR command. il! ,I' Chapter 8. The $IAMUTI Utility IG-lSS DR - LE LE - LIST ENTRIES The LE subcommand lists the contents of one or more directory entries. Specify the name of a primary indexed file to get information about that file and its secondary indexes. Specify the name of a secondary index to get information about only that secondary index. To obtain a complete list of all information in the directory, just press the Enter Key without supplying any data set name or volume. Note: To use this subcommand, you must first use the DR command. The following example lists the directory entries related to the primary file named 'TOMPRI' on volume 'EDX002'. ENTER DIRECTORY COMMAND C?): LE ENTRY (DSMANE,VOLUME) BLANK=ALL: TOMPRI DSNAME PRIMARY INDEVOLUME DATA SET PENDENT TOMPRI TONSEC! TOMSEC2 EDXOO2 YES EDXOO2 NO EDXOO2 NO NO NO NO INVALID AUTO UPDATE ,11· "\ **** YES YES NUMBER OF DIRECTORY ENTRIES USED = NUMBER OF AVAILABLE ENTRY SLOTS = DIRECTORY LIST COMPLETED **** YES NO :,,:_..) 6 41. c IG-156 SC34-0404 o DR - LE The following example lists all directory entries. ENTER DIRECTORY COMMAND (?): LE ENTRY (DSNAME,VOLUME) BLANK=ALL: INDEPENDENT INVALID EDXIAM EDX003 YES EDXIAMSl EDXOO3 NO NO NO YES TOMPRI TOMSECl TOMSEC2 NO NO NO YES YES DSNAME PRIMARYU VOLUME DATA SET EDXOO2 YES EDXOO2 NO EDXOO2 NO **** **** YES **** **** NUMBER OF DIRECTORY ENTRIES USED = NUMBER OF AVAILABLE ENTRY SLOTS = DIRECTORY LIST COMPLETED AUTO UPDATE YES NO 6 41 c~: o Chapter 8. The $IAMUTl Utility IG-157 (~y DR - UE UE - UPDATE DIRECTORY ENTRY The UE subcommand updates an entry in the secondary index directory. can use this command as follows: You • Specify null values for parameters to remain unchanged (press the Enter key when you are prompted for them). • Enter new values for parameters to be modified. Note: You cannot change a primary entry to a secondary entry or a secondary entry to a primary entry. entry and insert a new one. To do this, you must delete the old The following example updates a primary directory entry named 'MASTER,VOL123', changes the volume name from VOL123 to EDX002 and leaves the DSNAME MASTER as it is. ENTER DIRECTORY COMMAND (1): UE ENTRY (DSNAME,VOLUME) MASTER,YOL123 ~-./ I THIS IS A PRIMARY ENTRY IN THE FOLLOWING, ENTER NEW VALUE OR, ENTER NULL LINE TO RETAIN (PRESENT VALUE) DSNAME (MASTER): VOLUME (VOL123): EDX002 INDEPENDENT (N): DIRECTORY UPDATE SUCCESSFUL o IG-lS8 SC34-0404 o DR - UE The following example updates a seconda~y di~ecto~y ent~y named 'MASTER,VOL123', changes the VOLUME name to EDX002 and leaves the DSNAME MASTER as it is. It sets automatic update, leaves the independent p~oc essing flag as it is, and sets the invalid indicator off. ENTER DIRECTORY COMMAND (1): UE ENTRY (DSNAME,VOLUME) "ASTER,VOL123 THIS IS A SECONDARY ENTRY IN THE FOLLOWING, ENTER HEW VALUE OR, EHTER HULL LIHE TO RETAIH (PRESEHT VALUE) DSHAME (MASTER): VOLUME (EDX123): EDX002 INDEPEHDENT (N): INVALID IHDICATOR (Y): N AUTO-UPDATE (Y)= Y o DIRECTORY UPDATE EHDED Note: To use this subcommand, you~ust first use the DR command. o Chapter 8. The $IAMUTl Utility IG-159 EC - CONTROL ECHO HODE EC enables you to enter or leave echo mode. When in echo mode, all $IAMUTl input and output is logged on the $SYSPRTR device. This enables you to save information about the files you maintain using $IAMUT~. When in echo mode, all input and output is logged until either the current utility session is ended or echo mode is reset by use of the EC command. Echo mode is off when $IAMUTl is loaded. Note: Input and output from $DISKUT3 is not logged. The following examples show the commands to set and reset echo mode: ENTER COMMAND (?>: EC DO YOU WANT ECHO MODE? (YIN)?: V FUNCTION COMPLETED (Set echo mode) ENTER COMMAND (?): EC DO YOU WANT ECHO MODE? (YIN>?: N FUNCTION COMPLETED (Reset echo mode) (/" I~l_,)' IG-160 SC34-0404 EF - DISPLAY EXISTING INDEXED FILE CHARACTERISTICS The EF command displays the file definition parameters that were used to set up the file. The information ;s obtained from the FCB Extension block. EF Command Example This example shows how to display the file parameters used to set up the file. ENTER COMMAND (?): EF EXHIBIT FUNCTION ACTIVE ENTER DATASET (NAME,VOLUME): EDXIAM1,EDX003 FILE TYPE = PRIMARY BASEREC 20 BlKSIZE 256 RECSIZE 80 KEYSIZE it KEYPOS 1 FREEREC o FREEBlK o RSVBlK NULL RSVIX o FPOOl NUll DElTHR NUll DYN 10 EXHIBIT FUNCTION COMPLETED o Chapter 8. The $IAMUTI Utilify IG-161 LO - LOAD INDEXED FILE LO loads a primary indexed file from a sequential (blocked or unblocked) input file. (A secondary indexed file must be loaded by using the DF or SE command). A primary indexed file can be loaded in one of two environments. Loading an empty file is referred to as the initial load. For an indexed file that already contains some records, the LO command can be used to add records with higher keys (keys of higher value than those already in the indexed file). This is called load in extend environment. Blocks are read from the sequential file with the EDL READ instruction and de-blocking is performed, if necessary. In the initial load environment, data records are formatted into Indexed Access Method blocks and written to the indexed file with the EDL WRITE instruction. Corresponding index blocks are written as required. The remainder of the indexed file is formatted if formatting was not completed during the DF function. In the extend environment, records are loaded into the indexed file using Indexed Access Method PUT requests. The sequential input'file can contain blocked or unblocked records. For a description of blocked and unblocked sequential data sets, see "Blocked and Unblocked Sequential Data Sets" on page IG-164. The records in the sequential file must be in ascending order by the data contained in the key field. If a record with a duplicate or out of sequence key is found, you are given the option to either omit the record and continue loading, or to end loading. The indexed file must have been defined by using the SE and DF commands before using the LO command. /~ -"', \~""J! Your response to the prompt message "ENTER INPUT BLOCKSIZE", defines to the LO command whether the input is a blocked or unblocked sequent i al file. A null response to the prompt "ENTER INPUT BLOCKSIZE" indicates an unblocked input file and the block size is then calculated using the input record size value, rounded up to the next 256-byte multiple value. If the actual block size value is entered as your response to this prompt, a blocked sequential input file is indicated. The record lengths of the input and output files do not have to be the same. When the indexed file is opened, the record length is displayed on the terminal. At this point, you can specify the record length of the sequential file if it is different than that of the indexed file. If the indexed file records are longer than the sequential file records, the loaded records are left justified and filled with binary zeroes. If the indexed file records are shorter than the sequential file records, the followi ng message appears on the termi nal : o IG-162 SC34-0404 o INPUT REC GT OUTPUT REC. TRUNCATION WILL OCCUR. OK TO PROCEED? Reply 'V' to proceed (records will be truncated). Reply 'N' to terminate the load function. If the end of the input sequential file is reached, you can continue loading from another sequential file. You are asked if there is more data to load. If you reply yes (Y), you are prompted for the file and volume name of the new input sequential file to use. The load operation continues, putting the first record of the new input sequential file in the next available record slot of the indexed file. Note: The record lengths and block sizes of subsequent input files are assumed to be the same as the initial input file. If the end of input file is reached and you·do not name another input file, the load operation is complete. Note: If you are loading the indexed file from a tape file, $IAMUTl does not close the tape fi Ie upon completi on of the load. Use the $VARYOFF command to close the tape fi Ie (refer to the Operator's Reference for a description of the $VARYOFF command). The following example shows use of the LO command: ENTER COMMAND (1): LO LOAD ACTIVE ENTER OUTPUT DATASET (HAME,VOLUME): IAHFILE,EDX003 $FSEDIT FILE RECSIZE = 128 INPUT RECORD ASSUMED TO BE 80 BYTES. OK?: Y ENTER INPUT BLOCKSIZE (HULL = UNBLOCKED): ENTER INPUT DATASET (NAME,VOLUME): SEQ01,EDX003 LOAD IN PROCESS o END OF INPUT DATASET ANY MORE DATA TO BE LOADED?: N 6 RECORDS LOADED LOAD SUCCESSFUL Chapter 8. The $IAMUTl Utility IG-163 Blocked and Unblocked Sequential Data Sets The LO (load) function of $IAMUTI will accept either blocked or unblocked sequential data sets as input when loading an indexed file. The UN (unload) function will either block or unblock data as requested when unloading an indexed file to a sequential data set. UNBLOCKED SEQUENTIAL DATA SET: An unblocked sequential data set contains one record in each block. The blocksize must be a multiple of 256 bytes. The record size must be equal or less than the block size. A block can span one or more EDX records. The following diagram illu$trates the relationship of a data record of 300 bytes to a block size of 512 bytes in an unblocked data set. > 512 byte block < 300 byte data record 212 bytes unused ~--" 2 EDX records < > \~' ,:;,)1 BLOCKED SEQUENTIAL DATA SET: Ina blocked sequential data set a block can contain multiple logical records. The block size must be a multiple of 256 bytes. The record size must be equal to or less, than the block size. A block can span one or more EDX record. The following diagram illustrates 6 data records of 80 bytes each within a block of 512 bytes in a blocked dat~ set. <-------------------------80 byte data record 80 byte data record 512 byte block 80 byte data record <------------------------- 80 byte data record 2 EDX records --------------------------> 80 byte data record 80 byte data record 32 bytes unused -----------------------------> Both the blocked and unblocked forms of sequential data sets, used by the utility, are compatible with the language processors, Sort/Merge and data IG-164 SC34-0404 c o sets produced by $FSEDIT. If you use the EDX edit utilities to prepare your data records for input, remember that these utilities put one 80-byte line from $FSEDIT into a 128-byte $FSEDIT record. Two of these 128-byte records are then used to form one 256-byte EDX record. When you use such a data set as sequential input for the LO (load) function, specify the record length as 128 and the block size as 256. If your indexed file is defined as having a record length of 80, you will receive the message "TRUNCATION WILL OCCUR." This is acceptable because Indexed Access Method strips off the extra bytes added by $FSEDIT. The last block of a blocked sequent i al data set may not have enough records for a full block. In this case, all of the unused space in the block is set to binary zeroes. Invoking the LOAD and REORGANIZE Funct;ons C '!'; You can invoke the LOAD or REORGANIZE functions directly from the DF command. If you invoke these functions, DF does not format the file because LOAD and REORGANIZE will do it. If you do not invoke the LOAD or REORGANIZE function, DF formats the file so you can load the file using an application program or $IAMUTI at a later time • .,? Notes: 1. You can use the LOAD/REORGANIZE command later to load the file, if you do not invoke it from the DF command. 2. An application program cannot access an unformatted indexed file. 3. The prompt for the load/reorganize function occurs before the define step. o Chapter 8. The $IAMUTI Utility IG-165 NP - DEACTIVATE PAGING The NP command directs that data paging be deselected the next time the Indexed Access Method is loaded. Page area si zes are not affected by thi 5 command. NP Command Example This example shows how to indicate data paging is to be deselected on the next invocation of the Indexed Access Method. ENTER COMMAND (1): NP DATA PAGING MARKED AS NOT ACTIVE BECOMES EFFECTIVE ON NEXT LOAD OF $IAM ,/--" ~,--,,;) C) IG-166 SC34-0404 o PG - SELECT PAGING The PG command directs that data paging be selected the next time the Indexed Access Method is loaded. Page area sizes are not affected by this command. PG Command Example This example shows how to indicate data paging is to be selected on the next invocation of the Indexed Access Method. ENTER COMMAND (1): PG DATA PAGING MARKED AS SELECTED BECOMES EFFECTIVE ON NEXT LOAD OF $IAM SEE INDEXED ACCESS METHOD GUIDE CONCERNING REMOVAL OF PAGING MODULES FROM STORAGE. ENTER COMMAND (1): o Chapter 8. The $IAMUTl Utility IG-167 PP - DEFINE PAGING PARTITIONS The PP command defines the amount of storage in each partition that the Indexed Access Method should reserve for paging. storage is actually used for paging only when paging is active. PP prompts you for the size of the paging area for each partition by displaying the partition number and current paging area size for that partition. Respond with a null entry (just press the Enter key) to retain that size. Enter a new size to change the space allocation. Sizes are displayed and entered in K bytes (lK = 1024), and should be entered as even numbers (multiple ~f 2K). If not, they are adjusted up to the next even number. The new sizes do not take effect until the next time the Indexed Access Method is loaded with paging active. PP Command Example This example retains the 10K paging area size in partition 3 and increases the paging area in partition 5 from 6K to 10K. ENTER COMMAND (?): PP PARTITION CURRENT NEW 1 2 3 4 5 6 7 OK OK OK OK OK OK OK 8 OK PAGE AREA SIZECS) RESET BECOMES EFFECTIVE ON NEXT TOTAL PAGE AREA SIZE IS SEE INDEXED ACCESS METHOD REMOVAL OF PAGING MODULES LOAD OF $IAM 40K GUIDE CONCERNING FROM STORAGE. Notes: 1. The letter K is optional on input, and is assumed if missing. 2. The new.total page area size is 40K and becomes effective on the next LOAD of $IAM. 1G-168 SC34-0404 o PS - GET PAGING STATISTICS The PS command displays data paging information about th~ cUrrently executing Indexed Access Method. It shows the total size of the paging area, and "hit" information for reads, writes and overall. The Indexed Access Method increments a "hit" counter each time a referenced block is found in the paging area. It increment~ a "miss" counter each time a referenced block is not found in the paging area. The PS command displays these numbers, along with "hit percentages." Use the hit percentages to determine how efficiently the paging area is being used. After the statistics are displayed, you have the option of resetting the counters to zero so that a new set of paging statistics can be gathered. PS Command Example Display the current paging statistic and reset them. c ENTER COMMAND (?): PS FUNCTION HITS READ 45678 WRITE 2450 OVERAll 48128 MISSES 81205 HIT " 36 o 100 81205 37 RESET STATISTICS (Y/N)! Y STATISTICS RESET 0, Chapter 8. The $IAMUTI Utility IG-169 (} RE - RESET PARA"ETERS RE resets the parameters set UP by the SE command to their default values. The following example shows a use of the RE command: ENTER COMMAND (?): RE PARAMETERS RESET c IG-170 SC34-0404 o RO - REORGANIZE INDEXED FILE RO reorganizes a primary or secondary indexed file. It unloads an indexed file filled by insert activity into an empty indexed file and reorganizes the records to provide space for additional inserts. This command requires two existing indexed files of the same type. Both the input file and the output file must be primary indexed files, or both must be secondary index files. Records are read sequentially from the input file using the Indexed Access Method GETSEQ request. The records are loaded into the output file in a manner similar to the initial load of the LO command. All reserved and free space is retained as free space. Reorganizing a secondary index does not reset the secondary key sequence numbers during the reorganization, because it does not use the primary file. The records are placed in another Indexed Access Method file without any modification within the individual records. The output indexed file must have been defined by using the SE or DF commands before using the RO command. The SE Option 3 will format an output file like the original file, or $VERIFY will show the number of records in the file so that you can set up an outp~t file. The record records ~re fer (see LO must be the may differ. lengths of the two fi les need not be the same. Unloaded truncated or filled with binary zeroes if record lengths difcommand). The key fields and key positions of the two files same; however, the other file specifications (SE parameters) INVOKING THE LOAD AND REORGANIZE FUNCTIONS FROM DF: You can invoke the LOAD or REORGANIZE functions directly from the DF command. If you invoke these functions, DF does not format the file because LOAD and REORGANIZE will do that, thus saving time. If you do not invoke the LOAD or REORGANIZE function, DF form~ts the file so you can load the file using an application program or the LO command. Notes: o 1. You can use the LOAD/REORGANIZE command later to load the file, if you do not invoke it from the DF command. 2. An application program cannot access an unformatted indexed file. 3. The prompt for the load/reorganize function occurs before the define step. Chapter 8. The $IAMUTI Utility IG-171 The follow;ng example shows use of the RO command: ENTER COMMAND (1): RO REORG ENTER ENTER REORG ACTIVE INPUT DATASET CNAME,VOLUME): IAHFILE,EDX003 OUTPUT DATASET CNAME,VOLUME): IAHFIL2,EDX003 IN PROCESS END OF INPUT DATASET 100 RECORDS LOADED REORG SUCCESSFUL ENTER COMMAND (!): EN o IG-172 SC34-0404 o SE - SET PARAMETERS SE p~ompts you fo~ pa~amete~s that dete~mine the indexed file. An explanation of the SE command example of each is included with the desc~;pt;on. The st~uctu~e and size of the follow and an pa~8mete~s values ente~ed a~e saved by $IAMUTI. This enables you to the SE command to change one o~ mo~epa~amete~s without having to ~eente~ all of them. The cu~~ent values can be displayed by the DI command. pa~amete~ ~euse The SE command Opt;on 1 p~ovides th~ee Significant The utility set. Pa~amete~s All Opt;on 3 Pa~amete~s f~om Pa~amete~s Note: we~e used Info~mation end of the - Ente~ inte~nally conva~ts Opt;on 2 that methods of setting up an indexed fila. - Ente~ a minimal set of SE pa~amete~s. tha smalle~ set to the complete the complete set of SE pa~amete~s. Existing Data Set - Use the set of SE pa~amete~s to define an existing indexed file. p~eviously which is common to all th~ee options appea~s "All Options" on page IG-182. nea~ the ~E desc~;ption unde~ Whan you specify the SE command, you a~e options as shown in the following display. p~ompted to select ona of the SET FILE DEFINITION PARAMETERS o = EXIT 1 = SIGNIFICANT PARAMETERS 2 = All PARAMETERS 3 = PARAMETERS FROM EXISTING INDEXED DATASET ENTER OPTION: Option 1 a minimal set of pa~amete~s. It issues a p~ompt to if a seconda~y index is being defined. If so, the seconda~y file name, key size, and key position a~e ~equested. If a p~ima~y file is being defined, diffe~ent p~ompts a~e issued. $IAMUTI inte~nally conve~ts the option 1 pa~amete~s to option 2 pa~amete~s. p~ompts fo~ dete~mine When the SE opt ion 1 is i nvoked defaults valuas a~e as follows: fo~ tha fi ~st ti me, tha p~ompts Chapter 8. The $IAMUT1 Utility and IG-173 () SECONDARY INDEX CY/N)?: N DEFAULT 0: RECORD SIZE 0: KEY SIZE 1: KEY POSITION 1: BLOCKING FACTOR (RECORDS PER BLOCK) 0: NUMBER OF BASE RECORDS 24: ESTIMATED TOTAL RECORDS TYPE OF INSERT ACTIVITYCC=CLUSTERED,R=RANDOM) C: NEW VALUE 80 , 20 On subsequent invocations of the SE option 1, the defaults are taken from the parameter values since the last SE option 1 invocation. Option 1 and 3 values do not carryover to option 2. The estimated total records value defaults to the last value, provided thi s value equals or exceeds the current base records. Otherwi se it defaults to 1.2 times the current base records. To set up a secondary index, enter the following: SECONDARY INDEX (Y/N)!= Y ENTER SECONDARY DATASET NAME (DS,VOL): FILEOl,EDX002 SECONDARY KEY SIZE:IO SECONDARY KEY POSITION:36 r Before you can define a secondary index, you must place an entry in the directory for the associated primary index file and the primary file must exist. The directory is searched to obtain the data set name and volume of the associated primary file which will then be used to compute the remainder of the secondary SE parameters. Parameter Descriptions for option 1 The attr i butes of the fi Ie are determi ned by the followi ng SE command parameters: I RECORD SIZE: The length, in bytes, of each record in the file. KEY SIZE: The length of the key to be used for this file. The minimum key length is 1. For primary files, the maximum key length is 254. IG-174 SC34-0404 O .:! J, KEY POSITION: The position, in bytes, of the key within the record. first byte of the record is position 1. The BLOCKING FACTOR (RECORDS PER BLOCK): The total number of records to be placed in an Indexed Access Method block. This value and the record size wi 11 be used to compute the actual Indexed Access Method block si ze, rounded up to the next 256-byte value. The roundi ng up act i on may increase the actual blocking factor. NUMBER OF BASE RECORDS: The number of indexed record slots to be set up in the indexed file. These record slots can be loaded with data records by $IAMUTI or by a PUT request after either a LOAD or PROCESS request. ESTIMATED TOTAL RECORDS: The total number of records you expect the indexed file to contain after insert processing activity. TYPE OF INSERT ACTIVITY(C=CLUSTERED,R=RANDOM): Inserts are considered clustered if most of the inserts occur at only certain places in the file. The following diagram represents clustered inserts by vertically stacked bullets. Blocks I Inserts The next diagram represents random inserted records. Inserts are considered random if few or no points in the file have a concentration of activity; inserts are expected throughout the ,file. Blocks Inserts •.. • () Chapter 8. The $IAMUTI Utility IG-175 The length, in bytes, of the secondary key within the For secondary keys the maximum key length is 250. SECONDARY KEY SIZE: primary record. SECONDARY KEY POSITION: The post ti on, in bytes, of the secondary key within the primary record. Option 2 The following list shows the default values for parameters when the SE command is invoked the first time (all values are decimal): BASEREC BLKSIZE RECSIZE KEYSIZE KEYPOS FREEREC FREEBLK RSVBLK RSVIX FPOOL DELTHR DYN NULL 0 0 0 1 0 0 NULL 0 NUll NUll NULL On subsequent invocations of the SE command, the option 2 defaults are taken from the parameter values set accordi ng to the last SE command, regardless of the option used. If the default value is acceptable, press the enter key when prompted for the parameter. If you wish to change the value for any parameter. enter the new value in response to the prompting message. The new value becomes the new defaul t value for the current $IAMUTI session. rhe parameters for which a null can be specified are BASEREC, FREEREC, FREEBLK, RSVBlK, RSVIX, FPOOl, DElTHR, and DYN. To specify a null parameter after the origi~al default has been modified, enter an ampersand (&) in response to the prompting message. IG-176' SC34-0404 o The following example snows a use of the SE command in establishing the size and structure of an indexed file. PARAMETER BASEREC BLKSIZE RECSIZE KEYSIZE KEYPOS FREEREC FREEBLK RSVBLK RSVIX FPOOL DELTHR DYN DEFAULT NEW VALUE NULL :100 0 :256 0 :80 0 1 0 0 :28 :1 :1 :10 NULL 0 NULL NULL NULL Following the response to the DYN parameter. the following list is displayed. The list shows the details of how the indexed file will be constructed using the parameters just entered. TOTAL LOGICAL RECORDS/DATA BLOCK: FULL RECORDS/DATA BLOCK: INITIAL ALLOCATED DATA BLOCKS: INDEX ENTRY SIZE: TOTAL ENTRIES/INDEX BLOCK: FREE ENTRIES/PIXB: RESERVE ENTRIES/PIXBCBLOCKS): FULL ENTRIES/PIXB: RESE~VE ENTRIES/SIXB: FULL ENTRIES/SIXB DELETE THRESHOLD ENTRIES: FREE POOL SIZE IN BLOCKS: 1: I OF INDEX BLOCKS AT LEVEL 2: OF INDEX BLOCKS AT LEVEL 3: I OF INDEX BLOCKS AT lEVEL • DATA SET SIZE IN EDX RECORDS: 3 2 50 32 7 1 o 6 o 7 7 o 9 2 1 73 o Chapter 8. The $IAMUT1 Utility IG-177 If a secondary fi Ie is bei ng defi ned, the 1 i st of prompts is the sama except for the following: the reply to the prompt "SECONDARY INDEX (Y/N)?:" is Y the secondary data set name is requested the RECSIZE prompt is omitted; the Indexed Access Method computes the correct record size SECONDARY INDEX (YIN): Y ENTER SECONDARY DATASET (NAME,VOLUME): Parameter Descriptions for option 2 The attri butes of the fi Ie are determi ned by these SE command parameters: BASEREC The estimated number of records to be initially loa~ed into the file in ascending key sequence. These records can be loaded by $IAMUTI or by a PUT request after ei ther a LOAD o~ PROCESS request. If DYN is not specified, BASEREC defaults to null, resulting in an error condition. In this case, specify BASEREC as a positive number. If DYN is specified, BASEREC defaults to one. BLKSIZE The length, in bytes, of blocks in the file. It must be a multiple of 256. The Indexed Access Method uses 16 bytes in each block for a header. RECSIZE The length, in bytes, of each record in the file. must not exceed block length minus 16. KEYSIZE The length of the key to be used for this file. The minimum key length is 1. For primary files, the maximum key length is 254. For secondary a secondary index, the maximum key length is 250. KEYPOS The position, in bytes, of the key within the record. byte of the record is position 1. FREEREC The number of free records to be reserved in each block. It must be less than the number of records per block (block size minus 16, divided by record size). If not, an error message is IG-178 SC34-0404 Record length The first () o issued. The calculation is adjusted to ensure that there is at least one allocated record in the block; that is, there cannot be 100Y. free records. FREEREC defaults to zero. FREEBLK The percentage (0-99) blocks. The percentage at least one free block ensure that there is cluster; that is, there of each cluster to reserve for free calculation result is rounded up so that results. The calculation is adjusted to at least one allocated block in the cannot be 100Y. free blocks. FREEBlK defaults to zero. RSYBLK The percentage of the entries in each primary index block to reserve for cluster expansion. These reserved entries are used to point to new data blocks as they are taken from the free pool to expand the cluster. The resul t of the calculat ion is rounded up so that any non-zero specification indicates at least one reserved index entry. The calculation is adjusted to ensure that there is at least one allocated block in the cluster. Enter a null character (&) for this prompt i f you do not want initial reserved blocks and do not want the indexed access method to create reserved blocks as records are deleted and blocks become empty. Specify a value of zero for this prompt if you do not want initial reserved blocks but you do want the indexed access method to create reserved blocks as records are deleted and blocks become empty (See the DElTHR prompt). Note that the sum of the FREEBlK and RSVBLK prompts must be less than 100 or an error message is issued. This value defaults to null if the DYN parameter is not specified. If the DYN parameter is specified, this value defaults to zero. o RSYIX The percentage (0-99) of the entries in each second level index block to reserve for use in case of cluster splits. A cluster split is required when there is no room to insert a new record in a cluster. Each cluster split uses one reserved entry of the second-level index block to create a new cluster 'wi th blocks from the free pool. The result of this calculation is rounded up so that any non-zero specification indicates at least one reserved index entry. The calculation is adjusted so that there is at least one unreserved entry in each second level index block. This value defaults to zero. FPOOL The percentage (0-100) of the maximum possible free pool to allocate as determined by the RSVIX and RSVBlK parameters. The RSVBlK and RSVIX prompts result in a file structure set up to draw on the free pool for expansion. Chapter 8. The $IAMUT1 Utility IG-179 ( "~JI"\ (. ',,'I If insertion activity is evenly distributed throughout the file, every reserve entry of every index block can be used. The number of blocks drawn from the free pool to support thi s unlikely condition is the maximum free pool size needed for the file. In more realistic cases, insertion activity is not evenly distributed throughout the file, so fewer free blocks are needed. The percentage specified here represents the evenness of the di,stribution of inserted records. Specify a large number (90, for example) if you expect insertions to be evenly distributed. Specify a small number (20, for example) if insertions are anticipated to be concentrated in specific key ranges. If a null character (I) is specified for thfs prompt, a free pool is not created for this indexed file (you can use the DYN parameter to override this and create a free pool). If zero is specified, an empty free pool is created. Blocks can then be added to the free pool as records are deleted and blocks become empty (see the DElTHR prompt explanation). If you do not specify a null for this prompt, the RSVBlK must not be null and/or the RSVIX must be non-zero or an error is returned. Conversely, if the RSVBlK and/or RSVIX is non-zero, FPOOl must not be null or an error is returned. The default for FPOOl is a nUll; no free pool is created. DELTHR The percentage (0-99) of blocks to retai n in the cluster as records are deleted" and blocks made available. This is known as the delete threshold. When a block becomes empty, it is first determined if the block should be given up to the free pool by checking the response to this prompt. If the block is not given UP to the free pool, it is retained in the cluster, either as a free, block or as an active em~ty block. The result of this calculat ion is rounded up so that any non-zero spec; f; cat; on indicates at least one block. The calculation is adjusted to ensure that the cluster always contains at least one block. If the DElTHR parameter is specified as null (I) and DYN is not specified, DElTHR defaults to the number of allocated blocks in the cluster plus one half of the .value calculated by the FREEBlK prompt. If the DElTHR parameter is specified as null and a value is specified for the DYN parameter, DElTHR defaults to zero. DVM The number of blocks to be assigned to, or added to, the free pool. When DYN is used with other free pool parameters, the free pool size is calculated as specified by the FPOOl parameter plus the value specified for DYN. If DYN is specified without the FPOOl parameter, the free pool is the number of blocks specified for DYN. IG-180 SC34-0404 c o If DYN is speci fi ed, other parameters assume the followi ng default values when specified as null: BASEREC BlKSIZE RECSIZE KEYSIZE KEYPOS FREEREC FREEBlK RSVBlK RSVIX FPOOl DElTHR =1 =0 =0 =0 =1 =0 =0 = NUll =0 = NUll = NUll When you specify the number of blocks for the DYN parameter, remember that the Indexed Access· Method can store several data records in a block, depending on the record size and block size you specify. Each block contains a 16 byte header. The number of records that can be contained in each block can be calculated by the following formula: Records per block = (BlKSIZE-16)/RECSIZE In the above calculation, use the integer quotient only; discard any remainder. Blocks can be taken from the free pool for use as index blocks as well as for data blocks, ~o provide some extra blocks for these. A reasonabl e est i mate of the number of index blocks required is lOX. Thus, if you know the number of data records you would like to add to the file, you can calculate the number of blocks to specify for the DYN parameter as follows: o DYN = (Number of records to insert) x 1.1 (Records per block) Chapter 8. The $IAMUTI Utility IG-181 option 3 Option 3 issues a prompt to determine what existing file to obtain the parameters from. The parameters can be set exactly accordi ng to the parameters of the original file by replying V to the appropriate prompt. Otherwise, the parameters will be set .based on the current condition of the existing data set to reflect insert activity. SECONDARY INDEX CY/N)?: N NAME OF EXISTING INDEXED DATA SET (NAME,VOLUME): IAMFILE,EDX003 NEW PARAMETERS EXACTLY SAME AS ORIGINAL PARAMETERS (Y/N) ? V DATA SETSIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: 17 -1 -1 All Options For all three options, the prompts are followed by the option of entering the DF (define file) function directly from the SE command. This simplifies the file definition process. The prompt is as follows: CREATE/DEFINE FILE (Y/N) ? V ENTER DATASET (NAME,VOlUME): FIlEOl,EDX003 NEW DATASET IS ALLOCATED The immediate write-back option is then queried: I DO YOU WAHT IMMEDIATE WRITE-BACK? Y The next prompt allows you the option of invoking the load or reorganize functions as follows: INVOKE lOAD(l), REORGANIZECR) OR END(E) AFTER CURRENT FUNCTION? L DEFINE IN PROGRESS Size calculations are performed using the parameter values you specify. IG-182 SC34-0404 o After the values are entered, the following is displayed showing the size and structure of the defined indexed file. DATA SET SIZE IN EDX RECORDS: INDEXED ACCESS METHOD RETURN CODE: SYSTEM RETURN CODE: 17 -1 -1 CREATE/DEFINE FIlE_(V/N)?: c Chapter 8. The $IAMUTI Utility IG-183 UN - UNLOAD INDEXED FILE UN unloads an indexed file to a sequential file. Records are read from the indexed file with the Indexed Access Method GETSEQ request and written into the sequential file with the EDL WRITE instruction. If a secondary indexed file is specified, the primary file will be unloaded in secondary key sequence. You can unload a secondary index independent of its primary if you first use the UE subcommand of the DR command of $IAMUTl to set the independent indicator. You must turn the independent indicator off when the unload operation is completed. The record lengths of the two fi les need not be the same. Unloaded records are truncated or padded with zeroes if the records lengths of the two data sets differ. For further detail, see the LO command. Records are placed in the sequential file in ascending key sequence as i ndi cated by the indexed f1 Ie. Unloaded records ca'n be blocked or unblocked. For a descri pti on of blocked and unblocked data sets, see "Blocked and Unblocked Sequential Data Sets" on page IG-164. The UN command prompts you for the block size of the file to be unloaded. A null response or a value less than or equal to the record size causes the indexed file to be unloaded to an unblocked sequential file. The sequential file block size is calculated as the record size rounded up to the next 256-byte multiple value. If you want the file to be unloaded to a blocked sequential file, specify the actual block size value to the prompt "OUTPUT BLOCK SIZE". The record and block S1 zes of subsequent output sequential files are assumed to be the same as the initial output sequential fi Ie. If the indexed f1 Ie conta; ns more records than are allocated in the sequential file, you are given the option to continue unloading to another sequential file. If you choose to continue unloading, you are prompted for the name of the file and volume to use to continue the unload operation. The unload operation continues, putting the records read from the indexed file into the new sequential file. If the end of the output file is reached and you choose not to continue, the unload operation ends. Note: Do not specify the same file for input and output. "I C \. IG-184 SC34-0404 . The followi ng example shows the use of the UN command to put 80-byte records into a blocked sequential file. ENTER COMMAND (1): UN UNLOAD ACTIVE ENTER INPUT DATASET (NAME,VOLUME): EDXF02,AM4VOL ENTER OUTPUT DATASET (NAME,VOLUME): SEQOl,EDX003 OUTPUT RECORD ASSUMED TO BE 80 BYTES. OK?: Y ENTER OUTPUT BLOCK SIZE (NULL = UNBLOCKED): 256 UNLOAD IN PROCESS END OF INPUT DATASET 100 RECORDS UNLOADED UNLOAD SUCCESSFUL ENTER COMMAND (1): EN o Chapter 8. The $IAMUTI Utility IG-185 $IAMUTI COMPLETION CODES Completion Code -1 7 8 12 13 23 31 32 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 60 61 62 Condition Successful completion Link module in use Load error for $IAM Data set shut down Module not included in load module Get storage error - IACB FCB WRITE error during IDEF processing. check system return code Blocksize not multiple of 256 Data set is too small Invalid block size during file definition processing Invalid record size Invalid index size Record size greater than block size Invalid number of free records Invalid number of clusters Invalid key size Invalid reserve index value Invalid reserve block value Invalid free pool value Invalid delete threshold value • Invalid free block value Invalid number of base records Invalid key position Data set is already opened for exclusive use Data set opened in load mode Data set is opened, cannot be opened exclusively Invalid block size during PROCESS or LOAD Get storage for FCB error FCB READ error LOAD mode key is equal to or less than previous high key in data set End of file Duplicate key found Note: For completion codes number 37 through 49, check your parameters for consistency. c IG-186 SC34-0404 0 1 Completion Code 65 100 101 110 201 210 230 231 232 233 234 235 239 C~ >, Condition Inconsistent free space parameters, RSVIX/RSVBlK or FPOOl/DYN were specified without one or the other READ error, check system return code WRITE error, check system return coda WRITE error - data set closed Request failed because the primary file for this secondary could not be opened. Check system return code Request failed because $DISKUT3 could not be loaded Directory read error from $IAMDIR, verify that directory exists $IAMQCB not found, check sysgen for include of IIAMQCB Directory open error for $IAMDIR, verify that directory exists Directory related primary request is a primary entry Directory error - DSNAME,VOl not found in $IAMDIR Directory resource has not been requested Directory write error. Refer to previously displayed message .I o Chapter 8. The $IAMUT1 Utility IG-187 10·.··· "-."' IG-188 SC34-0404 o CHAPTER 9. THE tVERIFY UTILITY $VERIFY checks the validity of an indexed file and prints control block and free space information about the file on $SYSPRTR. This $VERIFY description contains the following topics: • $VERIFY Functions • Invoking $VERIFY • $VERIFY Example • $VERIFY Messages • $VERIFY Storage Requirements tVERIFY FUNCTIONS With $VERIFY you can: • Verify that all pointers in an indexed file are valid and that the records are in ascending sequence by key. • . Verify the conte~ts of a secondary index against the primary file and report any discrepancies. • Print a formatted File Control Block (FCB) listing, including the FCB Extension block. The FCB Extension block contains the original file definition parameters. Note: The FCB Extension block does not exist and file definition parameters are not saved in the FeB for indexed files defined prior to version 1.2 of the Indexed Access Method. The reorganize (RO) $IAMUT1 command can be used to reformat those files by adding an FCB Extension block to make use of all the $VERIFY facilities. • Print a report showing the distribution of free space in your file. • Determine if any space is available for inserts. o Chapter 9. The $VERIFY Utility IG-189 INVOKING $VERIFY $VERIFY can be invoked from either a terminal or a program coded in Event Driven Language. You supply the same input in either case. If you invoke $VERIFY from a terminal, supply the input required in response to prompts. If you invoke $VERIFY from a program, supply the input required as parameters passed to the program. $VERIFY INPUT This section describes the input required to execute $VERIFY. name, volume Data set and volume names for the primary index fi Ie or secondary index to be processed. (Endures that all chains within this data set are correct). Option The type of processi ng you want $VERI FY to do. The three opt ions are: Y - The FCB and the FCB Extension blocks are formatted and printed. The file is verified. A free space report is printed. N - The FCB and the FCB Extension blocks are formatted and pr i nted. The fi Ie is veri f1 ed. No free space report is printed. F - The FCB and the FCB Extension blocks are formatted and printed. No free space report is printed, but the '. OF AVAILABLE BLOCKS IN FREEPOOL' entry can be examined to determine if space is avai lable for inserts; if the value is greater than zero (>0), space is available. Cross verify option The type of check you want $VERIFY to do between the primary index files and secondary indexes. The options are: Y - a. If a primary index fi Ie was specified above as the data set name, this will check that all entries in the primary index ~ile are in the secondary index. b. If a secondary index was specified above as the data set name, thi s wi 11 check that all entries in the secondary index are in the associated primary indexed file. N - Do not perform any cross verification. IG-190 SC34-0404 o o Data set and volume names of the secondary index to be verified. Specify 'ALL' to verify all secondary indexes associated with the primary file. INVOKING $VERIFV FROM A TERMINAL Load the $VERIFY program as follows: I > $L $VERIFY When $VERIFY begi ns execut ion, you ara prompted for the parameters described previously. A complete example of a $VERIFY invocation from a terminal is shown under "$VERIFY Example" on page IG-192. INVOKING $VERIFV FROM A PROGRAM $VERIFY can be invoked by EDL programs with the LOAD instruction. The only required parameter is the address of a 30-byte area that contains: Hex Displacement Data set name Volume name Detail listing request (y, H, or F) Secondary file cross verify (Y or H) Secondary index file name Secondary index file volume Length (Bytes) 0 8 8 6 E 1 F 1 10 8 18 6 The next example shows the use of $VERIFY to verify a file named IAMFILE in the volume EDX002. A file verification and free space report'are requested. The secondary file named SECIAM in the volume EDX002 is also verified. o Chapter 9. The $VERIFY Utility IG-191 ()\ EXAMPLE START PROGRAM START EQU * LOAD WAIT PARMLIST DSNAME VOLUME DETAIL SECONDRY SECDSN SECVOL VERIFY $VERIFY,PARMLIST,EVENT=VERIFY VERIFY WAIT FOR POST COMPLETE PROGSTOP EQU * DC CL8'IAMFILE' DC CL6'EDXD02' DC CLl'Y' DC CLl'Y' DC CL8'SECIAM' DC CL6'EDXD02' -1 ECB ENDPROG END INDEXED DATA SET NAME VOLUME NAME PROCESSING OPTION SECONDARY FILE VERIFICATION SECONDARY FILE NAME SECONDARY FILE VOLUME EVENT CONTROL BLOCK $VERIFY EXAMPLE This section presents the input and output for an example run of $VERIFY, along with descriptions of the material presented. $VERIFY ;s invoked from the terminal as follows: [1] > $l $VERIFY [2] INDEXED ACCESS METHOD FILE VERIFICATION PROGRAM ACTIVE [3] ENTER NAME OF OUTPUT PRINTER. (BLANK = $SYSPRTR): [~] (NAME,VOLUME): DPRIHl,EDXIAM [5] DO YOU WANT DETAIL LISTING! (Y/N/F/!)!: Y [6] DO YOU WISH TO VERIFY SECONDARY VS PRIMARY INDEXES (Y/N):N [71 VERIFICATION COMPLETE, [81 $VERIFY o ERROR(S) ENCOUNTERED ENDED [11 In this example, the first line loads and executes $VERIFY. IG-192 SC34-0404 c [2] The second line is printed by the program to indicate that execution has begun. [3] This line allows you to direct the output to a particular printer or terminal. You can also press the Enter key without supplying a device name and the output will be printed on $SYSPRTR. [4] In the fourth line, the program prompts for the data set name and volume of the indexed file to be referenced by the program. In this example the reply indicates that the data set is DPRIMl, located on volume EDXIAM. [5] In the fifth line, the program prompts for the amount of detail to be provided as output. The response of Y indicates that maximu~ detail is to be provided. [6] In the sixth line, the program prompts for verification of secondary indexes. The response of N indicates that secondary indexes are not to be verified. As the program executes, it provides output to the printer, as shown in the example outputs that follow. [7] Finally, messages are displayed to indicate the number of errors found. [8] This information message is provided stating that the program has ended. FeB REPORT The first page of the example output from $VERIFY follows. always pri nted. This page ;s () , , '" 1,1 Chapter 9. The $VERIFY Utility IG-193 VERIFY REPORT. FILE: DPRIMI . FLAG1: FILE LOADED Y FILE TYPE 1 , VOLUME: EDXIAM (O:PRPQ, l:PP) ******************************M*MM****M**MM KEY SIZE : KEY POSITION : BLOCK SIZE = RECORD SIZE : INDEX ENTRY SIZE: RBN OF HIGH LEVEL INDEX BLOCK IN USE : RBN OF LAST DATA BLOCK IN USE : RBN OF FIRST DATA BLOCK IN USE : TOTAL'RECORDS PER DATA BLOCK: TOTAL ENTRIES PER INDEX BLOCK : LOAD POINT VALUE FOR A DATA BLOCK : LOAD POINT VALUE FOR AN INDEX BLOCK : 6 1 256 60 10 2 786 6 4 24 4 2~ *******M*********************************** FLAG2 : IMMEDIATE WRITE-BACK N SECONDARY INDEX FILE EN FILE FORMATTED Y ******************************************* VERSION NUMBER: DELETE THRESHHOLD (RECORDS) : • OF AVAILABLE BLOCKS IN FREEPOOL RBN OF 1ST FREE POOL BLOCK : RBN OF HIGHEST LOGICAL INDEX BLOCK : LEVEL OF HIGHEST INDEX BLOCK IN USE: CURRENT NO. OF RECORDS IN FILE: 2.0 0 30 787 2 3 3000 The preceding page of the example report is interpreted as follows: The first line shows the data set name and volume. FLAG1: These three lines show the significant bits of the first flag byte in the FCB. The first two of the three lines are a heading. The third line shows the bit value (1 : on and 0 = off or Y : on and N : off). The headings are defined as follows: FILE LOADED: Data set has been loaded flag. This flag is set when any record has been successfully loaded into the file in load mode. FILE TYPE: IG-194 SC34-0404 This flag indicates whether the indexed file was created wi th the Real time Programmi ng System Indexed Access Method PRPQ (bit=O) or either the Event Driven Executive or Realtime Programming System Indexed Access Method Program Product (bi t:l). o KEY SIZE: Shows the si ze of the key in bytes. KEY POSITION: Shows the byte di splaceme,nt of the key from the start of the record. BLOCK SIZE: Shows the byte length of blocks in the file. RECORD SIZE: Shows the byte length of records in the file. INDEX ENTRY SIZE: Shows the number of bytes in each index entry. Thi s length should be the key length plus 4, rounded up to a multiple of two bytes. RBN OF HIGH LEVEL INDEX BLOCKK IN USE: Shows which index block 1S to be used as the starting point when the index is to be searched. RBN OF LAST DATA BLOCK IN USE: Points to the last logical data block in the file which has been used. RBN OF FIRST DATA BLOCK IN USE: Points to the first logical data block in the file which has 'been used. It is used as the starting point when a sequential read operation is begun with no key specified. TOTAL RECORDS PER DATA BLOCK: Shows how many data records can be contained ina data block. c TOTAL ENTRIES PER INDEX BLOCK: Shows how many index entries can be contained in an index block. LOAD POINT VALUE FOR A DATA BLOCK: The number of records that can be placed in each data block while in load mode. This value is calculated at file definition time to provide the requested number of free records. LOAD POINT VALUE FOR AN INDEX BLOCK: The number of data blocks in each cluster to be used while in load mode. This value is calculated at file definition tim~ to provide the space requested by the RSVBlK, RSVIX and FREEBlK parameters. FLAG2: Another byte of flags described by a pair of lines: a heading line followed by a data line. The heading has the following meaning: IMMEDIATE WRITE-BACK: Immediate write back flag. If set CY), this flag indicates that the immediate write back option was specified when the indexed file was defi ned. SECONDARY INDEX FILE: A Y indicates that this is a secondary file. N indicates that this is a primary file. FILE FORMATTED: o Y i ndi cates that the fi Ie has been formatted. N indicates that only th~ parameters have bQen specified and the file allocated. The fi Ie has not been formatted.' Chapter 9. The $VERIFY Utility IG-195 VERSION NUMBER: Shows the version number and modification level of the Indexed Access Method that was used to define the indexed file. DELETE o THRESHHOLD (RECORDS): Indi cates the number of data blocks to retain in each cluster as records are deleted and blocks become empty. This value is calculated when the file is defined and is based on the DElTHR parameter . • OF AVAILABLE BLOCKS IN FREEPOOL: The number of available blocks in the free pool. Thi s count is updated as blocks are taken from or returned to the free pool. ~ RBN OF 1ST FREE POOL BLOCK: Points to the last block which was put in the free pool (which is the next block to be taken from the free pool). RBN OF HIGHEST LOGICAL INDEX BLOCK: Poi nts to the logi cal top of the index. In some cases (if the file has not been completely loaded), this RBN might not agree with the RBN OF HIGHEST lEVEL INDEX BLOCK IN USE. If it does not agree, then the file is structured with index blocks that are not yet needed because the file does not contain enough records. LEVEL OF HIGHEST INDEX BLOCK IN USE: Indi cates how many levels of the index are currently in use. CURRENT NO. OF RECORDS IN FILE: The current number of records that are now contained in the file. FCB EXTENSION REPORT The second page of the example output from $VERIFY follows. always pri nted. This page is This information is obtained from the FCB Extension block and shows the parameters that were specified when the file was defined. Some information (BlKSIZE, RECSIZE, KEYSIZE, KEYPOS) is duplicated on the FCB and FCB Extension report because it is contained in both control blocks. The values should correspond with each other. The word NUll for the value of a parameter indicates that no value was specified when the file was defined. o IG-196 SC34-0404 o VERIFY REPORT. FILE = DPRIMl VOLUME : EDXIAM INDEX FILE DEFINED WITH THESE PARAMETERS: BASEREC= BLKSIZE= RECSIZE= KEYSIZE= KEYPOS= FREEREC= FREEBLK= RSVBLK= RSVIX= FPOOL= DELTHR= DYN= 3000 256 60 6 1 0 0 NULL 0 NULL NULL 30 Note: The parameters are the file definition parameters that were specified using the SE command of the $IAMUTl utility when the file was defined. FREE SPACE REPORT A free space report of the example output from $VERIFY follows. The free space report is printed only if the $VERIFY option is specified as Y. o Chapter 9. The $VERIFY Utility IG-197 VERIFY REPORT. FILE = XMPLI , VOLUME = EDX002 TOTAL USED UNUSED RESERVE FREE AVAILABLE HIGH KEY RBN LVL ENTRIES ENTRIES ENTRIES ENTRIES BLOCKS RECORD SLOTS (FIRST 20 CHAR. --- --- ------- ------- ------- ------- ------ ------------ -------- 2 3 24 2 0 22 0 3 4 2 2 24 24 24 8 0 0 16 16 0 0 5 30 55 80 105 130 155 180 205 230 255 280 305 330 355 380 405 430 455 480 505 530 555 580 605 630 655 680 705 730 755 780 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 24 24 24 24 24" 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 VERIFICATION COMPLETE, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -- 143949 -- -- 130536 143949 0 044932 046750 048655 050527 052392 054225 056075 057930 059829 061640 063548 065389 067297 069166 071029 072887 074731 076586 078441 080329 082175 084006 085861 130536 132395 134205 136097 137929 139815 141655 143523 143949 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ERROR(S) ENCOUNTERED o IG-198 SC34-0404 o In this report, each printed line represents an index block. have the following meanings: The columns RBN: The relative block number within the indexed file, based on the block size specified when the file was defined. The first block in the file is relative block number zero. LVL: The level of the index block analyzed. lowest level (PIXB) is 1, second level (SIXB) is 2, etc. TOTAL ENTRIES: The maximum number of index entries that can fit in an index block. USED ENTRIES: The number of entries used in this index block. UNUSED ENTRIES: The number of entries in the index block which are neither used nor reserved. RESERVE ENTRIES: The number of reserve entries in this index block. This number represents the number of new index blocks that can be obtained from the free pool for creation of new blocks, provided there are enough blocks remaining in the free pool. FREE BLOCKS: The number of free blocks associated with this index block. ( '\ -' AVAILAB(~ RECORD SLOTS: The maximum number 9f records that can be inserted into this cluster without obtaining blocks from the free pool. HIGHEST KEV IN BLOCK: The first 20 bytes of the highest key in the block. o Chapter 9. The $VERIFY Utility IG-199 .VERIFY MESSAGES As $VERIFY executes, any errors encountered result in an error message being written describing the type of error and where the error occurred. FILE ERROR MESSAGES The following messages indicate that the indexed file contains errors: I BLOCKS IN FREEPOOL CHAIN DOES NOT MATCH FREE POOL COUNT IN FCB. BLOCK OUT OF SEQUENCE. RBN _ _ • HIGH KEY IN RBN _ _ DOES NOT MATCH INDEX ENTRY IN RBN _ _ • POINTERS IN HEADER OF HIGH INDEX BLOCK ARE NOT ZERO. RBN _ _ CONTAINS INVALID UPWARD POINTER. RBN _ _ CONTAINS INVALID BACKWARD POINTER. RBN _ _ CONTAINS INVALID FORWARD POINTER. RBN _ _ IS IN FREEPOOL CHAIN, BUT lS NOT A VALID FREEPOOL BLOCK. r--~. RECORD OUT OF SEQUENCE NEAR RBN _ _ • ~'n."; RECORD MATCH NOT FOUND FOR SEC INDEX. PRIMARY= SECONDARY= If any of these messages are printed, the indexed file has at least one error. Possible sources of the error include: • The data set is not an indexed file • Data in the file has been inadvertently destroyed • Secondary index is not auto-update • The Indexed Access Method has a program error ERROR RECOVERY PROCEDURE If any of the $VERIFY file error messages are printed, use the following procedure: • Dump the file or portion of the file which $VERIFY indicated has errors. .• Attempt to reorganize the file with the $IAMUTI utility RO command. IG-200 SC34-0404 c~ o • If reorganization fails, submit an APAR, including the file dump • • Secondary indexes may need to be regenerated. Invoke $VERIFY for each of the secondaries to determine if they are error free. If errors are indicated rebuild the index from the primary data sets after the problem has been corrected. OTHER MESSAGES Any other messages that are generated by $VERIFY can be found in the Messages and Codes. $VERIFY STORAGE REQUIREMENTS Work i ng storage space is needed requ i red for $VERI FY and the amount required varies, depending on the maximum number of blocks at the SIXB level and the block size of the file. USING DEFAULT WORKING STORAGE REQUIREMENTS c The default working storage specification is 4K bytes. For a file with a block size of 256,this default is sufficient to handle up to 896 blocks at the SIXB level. The larger the block size of the file, the fewer the maximum number of SIXBs that can be processed. The followi ng formula can be used to calculate the maximum number of blocks at the SIXB level that $VERIFY can process, given the block size of the indexed file: NS = (4096 - (2 * BlKSIZE» / 4 NS is the number of blocks at the SIXB level BlKSIZE is the block size of the indexed file MODIFYING WORKING STORAGE REQUIREMENTS The default working storage allocation is intended to satisfy the requirements of most indexed files. It may be necessary or desirable to modify the amount of working storage space available to $VERIFY. o The following formula can be used to calculate the amount of working storage requi red to process a fi le wi th a gi ven block si ze and number of blocks at the SIXB level. Chapter 9. The $VERIFY Utility IG-201 ~ B_l_KS_I_Z_E_)~ ____D_S__= __(_4_M__N_S_)__+__(2__M__ ____________________________ ~I Where: DS is the amount of dynamic storage required NS is the number of blocks at the SIXB level BlKSIZE is block size of the indexed file The number of SIXBs in a file can be determined by examining the free space report. You can override the default working storage size at load time (if loaded by a program), or with the 55 command of the $DISKUT2 utility. SUMMARY $VERIFY requires a variable amount of working storage which defaults to 4K bytes. Increase the working storage size if $VERIFY runs out of space during execution. Decrease the working storage size if the number of SIXBs is significantly less than that supported by the default working storage allocation (896 with a block size of 256) and your available storage is limited. c,","" " I ,'!-' IG-202 SC34-0404 o CHAPTER 10. STORAGE AND PERFORMANCE CONSIDERATIONS This chapter desc~ibes the storage required for the Indexed Access Method and suggestions for improving performance. The main topics are: • Determining Storage Requirements • Data Pag1ng • Other Performance Considerations DETERMINING STORAGE REQUIREMENTS The min1mum amount of storage required by the Indexed Access Method is dependent upon the package you choose to install, plus the link module and any error exit routine you may have wr1tten. The approximate sizes of the available packages are included here for planning purposes. THE INDEXED ACCESS METHOD PACKAGES C~ ,:1 The Indexed Access Method program product is shipped with four packages: • $IAM • $IAMRS • $IAMNP • $IAMRSNP You select the particular package to install on your system which meets your requirements for function, storage, and performance. The individual packages are described below: o 1. $IAM (18K), a full function Indexed Access Method package using overlay structure. It is expected to satisfy the needs of most users. 2. $IAMRS - (27K), a full function Indexed Access Method as a fully res1dent package. It requ1res more storage than $IAM, but offers maximum performance. 3. $IAMNP - (15K), th1s package 1s similar to $IAM (us1ng an overlay structure) but does not include data paging. It is designed for users who have severe storage limitations. 4. $IAMRSNP - (24K), this package is similar to $IAMRS (fully resident) but does not include data paging. This package provides the perform- Chapter 10. Storage and Performance Considerations IG-203 ance of a resident system but is intended for users who do not have sufficient storage to take advantage of the data paging feature. Notes: 1. The storage value~ above do not include Indexed Access Method control blocks, the central buffer (minimum of 2 X block size), and secondary index update buffers (minimum of 2 X record size). 2. To find the exact size of your Indexed Access Method package, load $IAM with the operator command $l. A message will be displayed about the loaded program. The number, followed by the letter P, indicates the siz~ of the program in 256-byte pages. Multiplying this number by 256 yields the size in bytes of $IAM, including control blocks, work areas and buffers. INDEXED ACCESS METHOD STORAGE ENVIRONMENT A single copy of the Indexed Access Method load module $IAM serves the entire system. Fi gure 12 on page 'IG-205 shows the components of the Indexed Access Method, and their relationship to the operating system. The Indexed Access Method control blocks, buffers and programs are contained in a single module, which can be loaded in any partition (but only one copy on the system). Application programs in any partitions (including the partition containing the Indexed Access Method> can invoke Indexed Access Method services us~ng the IBM supplied link module, which must be included in the application program. If the data paging feature of the Indexed Access Method is active, it uses storage in the partition(s) you select for performance improvement. This storage is in the form of a load module, $IAMSTGM. IG-204 SC34-0404 ···~ O ", I, "j o link Module EDX Supervisor Space Application Programs Calling the Indexed Access Method Data Paging Area Control Blocks --------------Central Buffer --------------Indexed Access Method Programs Partition 1 Figure 12. Partition 3 Indexed Access Method Storage Environment Because $IAM is loaded automaticallY when the first Indexed Access Method request is issued, it does not need to be ex~icitly loaded before being used by any program. When loaded automati cally on the fi rst Indexed Access Method request, $IAM is loaded into partition 1 if enough storage is available there. If not, attempts are made to load $IAM into successi vely hi gher numbered parti ti ons unti I space is found or no more partitions are available. Once loaded, the Indexed Access Method remains in storage until cancelled with the $C operator command. The Indexed Access Method can also be loaded manually by using the $l operator command or automatically at IPl time through the automatic initialization capability (refer to the System Guide for a description of the automatic initialization capability.). $IAM can be loaded into any partition, including partition one. It can be invoked (through the link module) from application program in any partition. PERFORMANCE Performance can be improved by various factors and the performance will be different for each application. One performance consideration has been described previously, the resident Indexed Access Method packages $IAMRS and $IAMRSNP. Another supplied performance feature is data paging. Chapter 10. Storage and Performance Considerations -", IG-205 DATA PAGING ' , G " '-;~} Data paging is a performance feature that uses main storage space for a paging area (a cache) to improve the performance of the Indexed Access Method. This paging area retains recently used index and data blocks whi ch have been retri eved for processi ng. As blocks are read from an indexed file, they are retained in the paging area on the assumption that they will probably be requested again. When a block is requested again, if it is in the paging area, no I/O operation is required; the block is moved directly into the central buffer. The paging area is divided into 2K-byte (2048-byte) pages. Each indexed file can also be thought of as being divided into 2K-byte pages. When data is read from the file, a 2K-byte page is read and saved in the paging area. When data is written to the file, only the modified block (not the 2K-byte page) is written. When the pagi ng area becomes full, pages are overla i d accordi ng to a least.-recently-used algori thm. The Indexed Access Method data pagi ng algorithm handles direct access records differently from the way it handles sequential access records. SEQUENTIAL ACCESS AND DATA PAGING: All of the pages in the page area can be used for direct access. However, because sequential access can cause the page area to be flushed out (negating the advantages of data paging), only 25~ of the pages are set asi de for use in sequent i al mode. Th~refore, pages referenced in sequential mode will only use a small portion of the page area. This causes the pages to tend to preempt themselves instead of flushing out the page area. r", \l-"-.J) REMOVAL OF STORAGE MODULES: The data paging area is obtained by loading a copy of $IAMSTGM into one or more partitions. Each copy of $IAMSTGM remai ns in storage, even if you cancel $IAM. Cancell i ng $IAM is not recommended unless you have ascertained that no files are currently open and 'no requests are about to be issued. If you have cancelled $IAM you can use the $C $IAMSTGM operator command to remove the data paging storage module from each ~artition. $IAMSTGM should never be cancelled until you have first cancelled $IAM. Adjusting the Size of the paging Area Because every application is different you should not regard any information relative to the following described example as being directly applicable to your application. However, the general principles should apply to most applications. Fi gure 13 on page IG-208 shows the effect of vari ous data pagi ng area sizes on the percentage of times a requested block was in th~ paging area ("Hit Ratio") and the resultant performance (response time indicator) for one application. The data was acquired by measuring the performance, and printing data paging statistic, while the application was running. The total size of all indexed files being accessed during the run was 36592 IG-206 SC34-0404 c sectors (9.3M-bytes). It must be stressed that this is only one application, and your application may not behave in the same manner. The three variables considered in data paging described in this example are: • storage size dedicated to data paging • the percentage of times that the block requested is in the paging area ·("Hit Ratio") • read/write ratio STORAGE SIZE: The figure shows general trends for various storage sizes. Note that there is a ml n1 mum amount of storage whi ch can prov i de a benefit. In this example the minimum storage to acquire a performance improvement is approximately 20k-bytes. This is because the data paging algorithms in the Indexed Access Method require a certain amount of processing, which is additional overhead. Your application may have a different minimum. If you cannot supply enough storage to provide a benefit, you are better off not to use data paging. Within certain limits, the more storage you supply, the better the performance. However, there are optimal minimum and maximum limitations. Figure 13 on page IG-208 shows that, for this example application, the minimum amount is about 20k-bytes. c The optimal maximum amount of storage, beyond which the benefit of using more storage becomes less pronounced, is about 70k-bytes for the example shown in Figure 13 on page IG-208. You must determine, based on your own storage/performance tradeoff requirements, how much storage to dedicate to data paging for the performance improvement you receive. Larger files require a proportionately larger paging area to attain the same hit ratio. THE "HIT RATIO": The values shown at the left side of Figure 13 on page IG-208 is called a "Hit Ratio". This fatio is a percentage of how often an index block or data block requested is alreadY in the paging area. Most applications tend to concentrate activity in a few areas of the file for a time, then move on to other areas of the file. These applications can use data paging to good advantage because there is a probability that the data being requested has been recently requested. If your application references data in a completely random manner, data paging will be less efficient. Random applications result in a smaller hit ratio for a given paging area size than applications that concentrate on certain areas of the file. Therefore, larger paging area is required to obtain the same hit percentage. THE READ/WRITE RATIO: The data paging function is optimized for read operations. In order to insure file integrity, write operations cause a write-through to the file. This means that there is no benefit in using data paging for write operations. In fact, due to paging overhead, write operations are less efficient with data paging than without data paging. The higher your ratio of reads to writes, the more efficiently the data paging algorithm works, thus the better your performance improvement. In Chapter 10. Storage and Performance Considerations IG-207 the example shown in Figure 13 on page IG-208, reads, 20~ were writes. 80~ of the requests were 100 90 28 · 36 I- R 44 e H i 80 t 70 5 R 60 a t 50 • • • • 30 -• 20 • _ No Paging · 60 n · 68 e · 76 · 84 T m 92 e 100 I o o 52 p 5 . . · 0 • o 40 10 • I- I I I I I I I I I lOOK lS0K 200K 2S0K 300K Data Paging Area Size Plot of Data Paging Area Sizes. This graph shows how the size of the data paging area (shown across the bottom) affects the hit ratio (shown on the left margin), are the results in the response time (shown on the right margin). The unit of time for the response time scale is not given because it is application dependent. For this application, a hit ratio of at least 28X (which can be achieved with a paging area size of about 20K) is required to attain performance equal to that without data paging active. This is due to data paging processing overhead. Also note that a paging area size of greate~ than about 70K provides relatively little response improvement for the amount of storage dedicated. 50K Figure 13. Using Data Paging The Indexed Access Method is distributed with the paging area size set to zero; therefore, the data paging function is not enabled. To use paging, use the $IAMUTI PP command to set the paging area size for ~ach partition and the $IAMUTI PG command to activate paging. When $IAM is loaded, the loader attempts to obtai n storage in the requested partition. When storage i~ requested in a particular partition to activate paging, you are informed of the results with appropriate messages. The messages returned to inform you of the paging status are written to the $SYSLOG device. If $SYSLOG is not available, the messages are IG-208 SC34-0404 () o wri tten result: to $SYSPRTR dev ice. Followi ng are the condi t ions whi ch can 1. Data paging is successfully initialized. The storage you requested or the default amount of storage required for data paging is available. The following message is displayed: "DATA PAGING ACTIVE." 2. Data paging is unsuccesful. a. If you have attempted to activate paging and you requested zero for the storage amountt or the minimum amount of storage necessary for paging is not available in the partition you specified, the following message is displayed: "NOT ENOUGH STORAGE AVAILABLE FOR DATA PAGING." "DATA PAGING NOT ACTIVE." b. If you have requested more storage for paging than is available in the partition you specified, the following message is displayed LOAD FAILED FOR $IAMSTGM RC=xxx, PTN= Y, SIZE= zz where: xxx y zz represents the return code from the LOAD instruction represents the partition number requested represents the size in 2048-bytes of storage you requested OTHER PERFORMANCE CONSIDERATIONS Following is a list of subjects followed by some ideas you might use to affect the performance of your application: • looking at the File Structure • Controling the File size • Reducing the Number of Index Levels • Increasing the Buffer Size • Avoiding Resource Contention LOOKING AT THE FILE STRUCTURE: Performance of the Indexed Access Method is primarily determined by the structure of the indexed file being used. This structure is determined by parameters you specify when you create the file. The best performance from an indexed file is attained when the file structure is well planned and the free pool is rarely used, if it exists at all. For descri tJti ons of the fi Ie parameters, see "Chapter 12. Installing the Indexed Access Method." For examples of the affects of parameter values, see "Chapter 3. Defining Primary Index Files." o Use the $IAMUTI utility to see the effects of the various parameters on the file structure. Chapter 10. Storage and Performance Considerations IG-209 FILE SIZE: A large file spans more cylinders of the direct access device, so the average seek to get the record you want is longer. Splitting files into smaller files according to application type, or moving seldom used records to a "history file" might be viable solutions for file size reductions. (.~J -~ \" ", If your records contain unused or unnecessary fields, delete those fields and reduce your record length before defining and loading your file. The Sort/Merge Program Product contains facilities to accomplish this while sorting your records by key. REDUCING THE NUMBER OF INDEX LEVELS: A file with many. index levels requires more accesses to get to the desired data record, thus degrading performance. Factors which influence the number of index levels are: • Number of records in file - see "File Size" previously described • Amount and type of free described • Block size - when defining your indexed file, remember larger block sizes usually require fewer I/O operations • Key size - shorter keys are more efficient than long keys. If only a portion of your key field provides uniqueness, set your key position and key length to that portion of the field when you define the file. space - see "Fi Ie Structure" previ ouslv (~ \ INCREASING THE BUFFER SIZE: The buffers required for I/O operations for all Indexed Access Method requests throughout the system are taken from a single buffer pool. The size can be changed at any time (to become effective during the next load of $IAM) as described under "RE - Reset Parameters" on page IG-170. If you provide a large buffer when you install the Indexed Access Method, it is more likely that blocks (especiallv high-level index blocks) needed are already in storage and need not be recalled from the file. I \l.~.Jj/ AVOIDING RESOURCE CONTENTION: Application programs that use the Indexed Access Method are executed the same as other appl i cat i on programs. Because the Indexed Access Method and the indexed files are resources available to all tasks, delays can occur. When more than one task uses the Indexed Access Method, contention can occur between tasks for any of the following resources: • • • • • An entire indexed file An index block in the file A data block ;n the file A'data record in the file Buffer space from the system buffer pool For example, during the execution of a request from task A, some buffer space is required and an index block, data block, or record is locked (made unavailable to other requests). A request from task B requires more buffer space than is available or attempts to retrieve a block or record IG-210 SC34-0404 () o that was locked by task A. becomes available. Task B must wait until the required resource Resources required by the Indexed Access Method are allocated only for the duration of a request except under the following circumstances: • During an update, when control returns to the task after a GET or GETSEQ for update, the subject record is locked. The lock is released when the update is completed with a PUTUP, PUTDE, RELEASE, or DISCONN. • During sequential processing, when control returns to the task after a GETSEQ, the block containing the subject record is locked and held in the buffer. Subsequent GETSEQ requests pick up records directly from the buffer. When a GET requires a record from the next block, the current block and buffer are released. Pending requests for a buffer area are satisfied and the next block is locked and held in the buffer. Except for momentary release of the buffer area between blocks, a block is locked while it is being processed. Processing is terminated by an end-of-data condi t ion, an ENDSEQ request, a DISCONN request, or an error condition. Use the following guidelines to avoid resource contention: c" o • Disconnect all indexed files before. task termination. The DISCONN request releases locked records or blocks and writes records that have not already been written. • Use conditional requests whenever possible so that your application can be productive while a resource is unavailable. • Try to schedule applications so that they do not execute at the same time. • If a file is used for "read only" by more than one application, consider multiple copies of the fi Ie using unique fi Ie names. • With multiple Indexed Access Method applications, use direct access to retrieve a group of records. A suggested method is the following: 1. Retrieve the first record by key. 2. Extract the retrieval. 3. Retrieve the next record using the saved key and a greater than key relational operator (GT or UPGT). 4. Repeat the second and third steps until processing is complete. key from the record and save it for Chapter 10. Storage and Performance Considerations the next IG-211 Secondary Index Functions Usi ng secondary indexes affects the performance of the Indexed Access Method. Some of those reasons are described here. DIRECT RETRIEVAL: Direct retrievals are somewhat slower when using a secondary index because of the extra accesses required to retrieve the data record from the primary file. SEQUENTIAL RETRIEVAL: Sequential Retrievals are slower when using a secondary index because the records are returned in order by secondary key. The primary file containing the data records is in order by the primary key. Therefore, the records are not stored in the same sequence that they are retrieved. This requires random accesses to obtain the records. RECORD INSERTS: Record inserts are slower if any associated secondary indexes. have the auto-update indicator on. A new record must be inserted into each auto-update secondary index, as well as the primary, whether the original insert was a primary or a secondary. RECORD DELETE: Record deletes are slower for the sama reason as for inserts; records must be deleted from secondary i nde)(es that have the auto-update indicator on. However, the impact for deletion is more severe than for insertion. This is because a search is required when multiple records have the same value for their se~ondary key as the record being deleted. The group of records having the same key must be sequentiallY searched until the record with the required primary key is found. This time could be quite significant if you have large groups of duplicate keys. RECORD UPDATE: Record updates that modify the secondary key must also , update any associated secondary index which has the auto-update indicator on. The secondary index is updated by deleting the old key and inserting the new key. DATA RECORD MOVEMENT: Each record in a secondary index contains a pointer to the RBN where the record is located in the primary index file. If a data record has been moved, due to i~sert/delete activity in nearby areas of the primary file, the RBH in the secondary index record will be wrong. When the affected data record is retrieved through the secondary inde)(, the error is detected. A full retrieval is then performed, using the pri-' mary key to obtain the data record. The RBN in the secondary index record is then updated for the benefit of future retrievals. This activity will affect the performance. $VERIFY PERFORMANCE: The $VERIFY performance will be slower when the primary fi Ie bei ng veri fi ed has a secondary index wi th large numbers of duplicate secondary keys. This is because the entire group of duplicate keys must be searched for the proper record. Because $VERIFY retrieves all records in the file, these impacts accumulate and the total execution time can be longer than e)(pected. JG-212 SC34-0404 o o CHAPTER II. ERROR RECOVERY This chapter describes how to handle Indexed Access Method errors and how to diagnose application program errors. HANDLING ERRORS All Indexed Access Method requests return a code in the task code word of the Task Control Block (TCB). The task code word is the same name as the task name. The return code reflects the condition of the requested function. Return codes are grouped in the following categories: • -1 - Successful completion • Positive - Error • Negative (other than -1) - Warning ERROR EXIT FACILITIES C '~"'\ There are three types of error exits for your application: • Task error exit, provided by the supervisor • Error exit, provided by the Indexed Access Method • The task error exit used by the Indexed Access Method itself in case of an error Task Error Ex i t You can specify a task error exit routine that will receive control if your application program causes a soft exception or if a machine check occurs during the execution of, your application. Because your application may have requests pending (for example, a record is being held for update or a file is being processed sequentially), you should issue a DISCONN request before terminating your application. The task error exit allows you to release records, disconnect from any file you are connected to, and make your resources available to other applications. Use of the task error exit facility helps to ensure data integrity and allows proper termination or continuation of your application. o Implementi ng the task error ex; t Guide. faci Ii ty is descr,i bed in the System Chapter 11. Error Recovery IG-213 Error Exit In PROCESS and LOAD requests. the address of an error exit routine can be specified by the ERREXIT parameter. If specified, this routine is executed whenever an Indexed Access Method request terminates with a p~sitive return code. , ' , If the exit routine is not specified, the next sequential instruction after the request is executed regardless of the valu~ of th~ return code. $IAM Task Error Exit The Indexed Access Method itself has a task error exit. If this er~or exit is given control by the supervisor, it writes these messages to the $SYSLOG device: $IAM HAS INCURRED A SEVERE ERROR $IAM CENTRAL BUFFER ADDRESS IS xxxx - PARTITION n PSW LSB yyyy zzzz zzzz zzzz zzzz zzzz zzzz zzzz zzzz zzzz zzzz zzzz Where xxxx is the address. and n is the partition containing $IAM. The PSW (yyyy), and LSB contents (zzzz), are also listed. For an explanation of the PSW (program status word) and the LSB (level status block), refer to the Operator's Reference. $IAM then goes into an unrecoverable wait and will not process any access requests. You can dump the central buffer with the $D system command and take appropriate action to quiesce your application (refer to the Operator' 5 Reference for a descri pti on of the $D command). You can use the recovery and backup procedures, described under "File Backup and Recovery" on page IG-94, to restore the file, or you can resume execut i on of your appl i cat ion. To restart your appl i cat ion, you can either IPl or cancel $IAM and reload it. If you wish to extend the logic of the error exit, code your own exit to replace the $IAM task error exit. Then rename CDIERR (the $IAM task error exit), name your error exit CDIERR, and rebuild $IAM. IG-214 SC34-0404 SVSTE" FUNCTION RETURN CODES If a system function called by an Indexed Access Method request terminates with a positive return code. the return code is placed in a location named by the SYSRTCD parameter in the PROCESS or LOAD request. This location is used until a DISCONN is issued. For example, the GET r~que5t uses the supervisor read function. If the read terminates with a positive return code, that return code is saved in the location named by the SYSRTCD parameter in the PROCESS request associated with the GET request. The GET request also terminates with a positive return code in the task control word. The positive return code indicates that a read error has occurred. The cause of the read error can be determined by examining the location named by the SYSRTCD parameter. Note: When analyzing errors, the Indexed Access Method return code in the task code word would be checked prior to the system return code. The following example is a method of obtaining the return code value from the location SYSRTCD. This routine gets the task SYSRTCD. and compares it to the EDX successful return code, negative one (-1). YOURPRGM PROGRAM START SUBROUT MOVE IF ERRTEST TASKRC,SYSRTCD (TASKRC.EQ.-l) get system return code if -1, return now if not -1 then perform your diagnosis ENDIF RETURN TASKRC DATA F'O' saved system return cods THE DATA-SET-SHUT-DONN CONDITION Someti mes an I/O error occurs that ; s not as.soci ated wi th a speci fi c request. For example, task A issues a GET on file X. To secure buffer space to satisfy the request, the Indexed Access Method attempts to write a block to file Y and, in writing the record, an error occurs. Data set Y is damaged but there is no requesting program to accept an error return code. The error is i ndi cated by sett i ng the data-set-shut-down condi t i on for file Y. After this condition occurs, no requests except a DISCONN are accepted for file Y. 0'· · ., I later, if task B issues a GET on file Y, the request is terminated with a data-set-shut-down return code. Task B should issue a DISCONN and use recovery and backup procedures as described under "File Backup and RecovChapter 11. Error Recovery IG-21S ery" on page IG-94, to reconstruct the fi Ie. To cancel the data-set-shut-down condition, initial program load (IPL) or cancel $IAM. $ILOG - ERROR LOGGING FACILITY You can have the Indexed Access Method to log errors in the system error log data set. To use the error logging ficility, allocate a system error log data set. The data set must be a minimum of 3 256-byte EDX records. The first two records are used for control, and this would allow one error log entry. The error log entries are entered in the log data set one after the other as they occur. When the data set becomes full, the new entries overlay the old entries starting at the front of the data set again. Therefore the size of the d~ta set should be based on the frequency of errors, and the frequency with which the data set is listed or examined. Each error log entry requires a 256-byte EDX record. Yoy can load $LOG into any partition. Using the system command LOGINIT, will initialize and activate error logging for any Indexed Access Method errors. The following format is used to record Indexed Access Method associated errors in the error log data set: Displacement into each EDX $IAM error log entry Hex (Dec) Field 00 (0) Indexed Access Method entry identifier 'CDIIAM' 06 (6) User TCB Address 08 (8) Data Set Name (16) 10 Volume (22) 16 Original Function Byte (23) 17 Current Function Byte (24) 18 Indexed Access Method Return Code (26) 1A System Return Code (28) lC User AKR Value To list the Indexed Access Method error log entries currently in the system error log, you can load $ILOG using the system command $L. Respond to the prompt "(DSNAME,VOLUME):" with system error log data set and volume name. The list will be directed to the terminal which was used to load $ILOG. c IG-216 SC34-0404 o Follow; ng ; 5 a sample of the prj ntad error report show; ng two error records: INDEXED ACCESS METHOD LOG REPORT PROGRAM ACTIVE TCB PTN ADDR 2 2 1F64 IF64 DSNAME VOLUME ORIG FNCTH CURR FNCTN IAMFILE IAMFILE EDX002 EDX002 PUTNW PUTHW PUTNW PUTHW $IAM SYSTEM RTCODE RTCODE 62 62 -1 -'1 DATE TIME 00/00/00 00:00:00 00/00/00 00:00:00 2 INDEXED ACCESS METHOD LOG ENTRIES LOCATED $ILOG ENDED o Chapter 11. Error Recovery IG-2i7 DEADLOCKS AND THE LONG-LOCK-TIHE CONDITION Because the Indexed Access Method uses record and block locks to preserve file integrity, deadlock and long-lock-time conditions may occur. The deadlock condition occurs when two or more tasks interact in such a way that one or more resources becomes permanently locked, making further progress impossible. A deadlock can also occur when two requests from the same task require a lock on the same record or a lock on the same block in sequential mode. A long-lock-time condition occurs when your program acquires a record for update and does not return the record to $IAM for a long time. Application tasks should avoid using the Indexed Access Method in such a way that a record or block remains locked for a long period of time, because other tasks may attempt to use the same record or block. In a terminal-oriented system, make every effort to ensure that a record or block is not locked during operator "think" time. Specifically, you should attempt to follow these rules: • Do not retrieve a record for update, display the record at the terminal, and wait for the operator to modify it. • Do not retrieve a record in sequentiai mode, display the record at the terminal, and wait for an operator response. (' In both of these cases, a record or block is locked duri ng operator "think" time and could be locked indefinitely. A deadlock cannot be broken except by freeing the locks (records) that are being waited on. If your application uses more than one IACB, deadlocks are possible. For example, one task has read record A and attempts to read record B, while another task has read record B and attempts to read record A. If you are using more than one IACB per task, such as in Multiple Torminal Manager applications, use ENQ/DEQ and interprogram communications to avoid the deadlocks. You can avoid the long-lock-time two methods: ~ondition by using one of the following 1. a. Retrieve the desired record without specifying update. b. Perform processing in a work area. c. Retrieve the record, specifying update. d. Compare the record read in step 1 with the record read in step 3. IG-218 SC34-0404 '"" \'~.,~J o e. 2. If the records are identical, issue a PUTUP request, specifying the address of the copy in the work area. If they are not identical, issue a RELEASE request for the record read in step 3, and repeat steps 1 through 5. Use conditional requests which do not wait for locks. (See "Chapter 7. Coding the Indexed Access Method Requests" for descriptions of coding conditional requests.) To retrieve records in sequential mode, use the technique described in "Avoiding Resource Contention" on page IG-2l0. VERIFYING REQUESTS AND FILES Following are two steps you can take to help you isolate and correct malfunctions in your Indexed Access Method application program. • Request verification - to determine that requests are correct check all parameters specified or defaulted on the Indexed Access Method CALL statements: PROCESS/LOAD requests - When issuing a PROCESS or LOAD, check that the specified file name is the correct file control block (DSCB) for the file you are verifying. c GET-PUT-DELETE-RElEASE requests - For these requests, carefully check the key, its position, length, and the relational operator (if used). Ensure that the correct address for the indexed access control block (IACB) is passed from the PROCESS or LOAD request, and that the rec~rd area address is correct. • File verification - read your $VERIFY report or indexed file dump to determine whether data or index records are missing or incorrect. Note: Be sure that the combination of parameters specified by the SE command of the $IAMUTl utility to define your file is correct (see the "Chapter 8. The $IAMUTl Utility" on page IG-141 for a description of the $IAMUTI parameters). o Chapter 11. Error Recovery IG-219 o o IG-220 SC34-0404 o CHAPTER 12. INSTALLING THE INDEXEP ACCESS "ETHOD This chapter presents an overview of how to install the Indexed Access Method. The Indexed Access Method is distributed on two double surface diskettes with external ID AM4001- and AM4002-YIM2BASYOlOI. The diskettes are formatted are 256 bytes per sector. INSTALLATION PROCEDURES The installation information which follows is for planning purposes only. The specific details for installing the product is included in the "Program Directory", which is shipped with the product. INSTALLING THE INDEXED ACCESS "ETHOD Installing the Indexed Access Method consists of two steps: o 1. step 1 a. Ensure that adequate space is ava i labl e for the i nstallat ion according to the requirements shown in Figure 14. Volume Data Sets EDX002 ASMlIB ASMlIB 3 2 1 Figure 14. 2. o EDX Records 265 145 6 Contents load Modules Source Modules link Module Volume Space Requirements Step 2 a. Copy the Indexed Access Method load module ($IAM), the utility program ($IAMUT1), the file verification program ($YERIFY), and the log report program ($IlOG), to the EDX002 volume. b. Copy the following source modules to the ASMlIB volume. • • • IAMEQU FCBEQU lAM Chapter 12. Installing the Indexed Access Method IG-221 ASSEMBLING AND EXECUTING THE INSTALLATION VERIFICATION PROGRAM To assemble and execute the installation verification program: 1. o Submit to the $JOBUTll utility, the 'proc' $SAMPROC provided on volume AM4001 to assemble and link edit the verification program. The source statements for the installation verification program are contained in a data set named SAMPLE on volume AM4001. 2. Use $IAMUTI to define and allocate an indexed file to be used by the installation verification program. Respond to the SE option 2 ,prompts with the indicated values: BASEREC BLKSIZE RECSIZE KEYSIZE KEYPOS FREEREC 3. 10 256 80 28 1 1 FREEBLK RSVBLK RSVIX FPOOl DElTHR DYN 10 0 0 0 0 10 Load $SAMPLE and when prompted for the data set and volume, respond with the name for the file allocated in the previous step (SAMPFILE). Note: The sets exist exist with Operator's procedure $SAMPROC assumes that ASMWORK and LINKWORK data on EDX002. Allocate these data sets if they don't already the $DISKUTI Event Driven Executive Utility. CRefer to the Reference for details on allocation of these data sets.) o IG-222 SC34-0404 APPENDIX A. SUMMARY OF CALCULATIONS The following calculations can be used to define an indexed data set. For a more detailed description of these calculations, see "Chapter 3. Defining Primary Index Files" on page IG-17. In the calculations requiring division, results with non-zero remainders are either: truncatC!d 8. or roundC!d up 0. To truncate ; s to dro'p the rema; nder; to round up is to add one (only if the remainder is non-zero), and truncate. Data Block tl] Records per data block = block si~e minus 16, divided by record size; result truncated. 111 = (BLKSIZE-16)/RECSIZE [2] Free records per block. t21 = FREEREC t3] = til [4] = KEYSIZE [5] = (BlKSIZE-16) [6] = FREEBlK 13] Allocated records per data block = Records per block minus free records per block. Index Block (General) 14] Index entry size = key length plus 4; must be even; add 1 if odd. [5] Total entries per index block = block size 16, divded index entry si~e; result truncated. Index-Block (PIXB) [6] Free entries per primary index block (PIXB) = specified percentage of total entries per index block; result rounded up. C "i, ' - t2] + 4 (+1 if odd) ~ / [4] of [5J , 1''-' Appendix A. Summary of Calculations IG-223 [7] Reserve entries per PIXB = specified percentage of total entries per index block; result rounded up. If free entries per PIXB and reserve entries per all PIXB entries, subtract one from reserve entries per PIXB. [8J Allocated entries per PIXB = total entries per index block minus free entries per PIXB, minus reserve entries per PIXB. Index Block (SIXB) [9] Reserv~ entries per secondary index block (SIXB) = specified percentage of total entries per index block; relult rounded up. If reserve entries per SIXB require all SIXB entries, subtract one. [10J Allocated entries per SIXB = total entries per index block ~inus reserve entries per SIXB. E7] = RSVBLK ~ of [5] (-1 if E6] + [7[ E8J = E5J E9J = RSVIX - [6J = [SJ [llJ = [5J [7] X of [5J (-1 if [9J EI0J ~ = [5J) - [9J Delete Threshold [Ill The number of blocks to retain in cluster (delete threshold) is calculated in one of three ways: a. If the RSVBLK parameter was not specified: Number of blocks to retain in cluster = total entries per index block. b. If the RSVBlK parameter [11] was specified. but the DElTHR parameter was not specified: Number ~f blocks to retain in the cluster = allocated entries per PIXB, plus one-half of free entries per PIXB; rusult rounded up. IG-224 SC34-0404 or = [8J or + [6J / 2 = [5J) c c. If the RSVBlK parameter was specified, and the DElTHR parameter was specified: Number of blocks to retain in the cluster = specified [11] = DElTHR X of [5] (If 0, set [11] to 1) percentage of total entries per index block; result rounded up. If the result is zero, set it to 1. Data in Data Set [12] Initial allocated data blocks = base records divided divided by allocated records records per data block; result rounded up. [13] Number of clusters in data set = initial allocated data blocks, divided by allocated entries per PIXBi result rounded up. C',~ / [14] Total number of free blocks in data set = number of clusters in data set, times free entries per PIXB. Indexes in Data Set [15] Number of primary index blocks (PIXBs) = number of clusters in data set. [16]aNumber of secondary index blocks (SIXBs) = number of PIXBs, divided by allocated entries per SIXB; result rounded up. [12] = BASEREC [13] = [12] [14] = [13] * [15] = [13] [16] = [15] I I I [3] [8] [6] [10] [17]aCalculate the number of index blocks for levels 3 to n. Note that levels 1 (PIXB) and 2 (SIXB) have already been calculated. When the number of index blocks at a level is 1, n has been reached and the calculation is finished. o Appendix A. Summary of Calculations IG-225 ···~ Number of index blocks at level i (i=3 to n)'= number of index blocks at next lower level, divided by total entries per index block; result rounded u.p. [18] Total number of index blocks = sum of index blocks at each level until a level containing asingle index block is attai ned. Free Pool [19] Number of new data blocks which can be assigned to existing clusters = reserve entries per PIXB, times number of PIXBs. E171 = [171 / [Sl [181 = [IS] + [16J [21] Number of new data blocks which can be assigned to new clusters = total entries per index block, times number of new clusters which can be created. [22] Maximum possible free pool = number of new data blocks data blocks which can be assigned to existing clusters, plus number of new clusters (PIXBs) which can be created, plus number of new data blocks which can be assigned to new clusters. [23] Actual number of free pool blocks = specified percentage of maximum possible free pool; result rounded up. IG-226 SC34-0404, ' \ ....... + (Sum of all (1715) [191 = [71 * [201 = [9J * [161 [20] Number of new clusters (PIXBs) which can be crested = reserve entries per SIXB, times number of SIXBs. r, ,I [ISJ [21J = [SJ * [20J (22J = (19J [23J + [20J + (21J = FPOOL ~ of [22J //11'" -"'\ I~; "i o Size of Data Set [24] Total number of blocks ;n data set = 1 (for f;le control block), plus total number of ;ndex blocks, plus ;n;t;al allocated data blocks blocks, plus total number of free blocks ;n data set, plus actual number of free pool blocks. [24] =1 + [18] + [121 + [14] + [23] C~ / o Appendix A. Summary of Calculations IG-227 () IG-228 SC34-0404 o APPENDIX B. PREPARING INDEXED ACCESS METHOD pROGRAMS To prepare an appl i cat i on program that requests, perform the following steps: issues Indexed Access Method 1. Enter your source program statements, using one of the Event Driven Executive text editors ($FSEDIT, $EDIT1, or $EDITIH). 2. Create the $EDXLIHK control statements required to combine your program with $IAM (the link module) and any other object modules you may need in your appl i cat ion. Use one of the text edt tors to perform thi s operation. 3. Assemble or compile your source program. 4. Use the linkage editor, $EDXLIHK, to combine the object modules into a single load module, using the control statements prepared in Step 2. When the preceding steps are completed, the program is ready to be executed. C 'iI,\ ,.I Refer to the Program Preparation Guide for mora information on program preparation. o Appendix B. Preparing Indexed Access Method Programs IG-229 A SAMPLE $JOBUTIL PROCEDURE AND LINK-EDIT CONTROL. DATA SET. The following are examples of a $JOBUTIL procedure and a link-edit control file used to prepare a program. Sample $JOBUTIL Procedure The follow; ng $JOBUTIL procedure is an example of prepari ng an EDL program. ********************************************************* ** THESE STATEMENTS WILL COMPILE, LINK, AND UPDATE THE * APPLICATION. ********************************************************** JOB COMPILE *** COMPILE USERPROG SOURCE LOG $SYSPRTR PROGRAM $EDXASM,ASMLIB DS USERPROG,EDX002 DS ASMWORK,EDX002 DS USEROBJ,EDX002 PARM LIST $SYSPRTR EXEC JUMP END,GT,4 JOB LINK $SYSPRTR LOG PROGRAM $EDXLINK,EDX002 DS LINKWORK,EDX002 *PARM LINKCNTL,EDX002 EXEC LABEL EOJ END *** SOURCE MODULE ASSEMBLER WORK DATA SET ASSEMBLER OUTPUT WORK DSNAME LINK-CONTROL DATA SET &SYSPRTR o IG-230 SC34-0404 ~· O ,'.I L;nk Edit control Data set Example The fo llowi ng Ii nk-edi t control records can be used to Ii nk-edi t an Indexed Access Method appl i cat 1on wi th the Indexed Access Method. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M M LINK EDIT CONTROL DATA SET (LINKCTL) M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM INCLUDE USEROBJ,EDX002 INCLUDE APPLICATION PGM OBJECT INCLUDE IAM,ASMLIB INCLUDE INDEXED ACCESS METHOD LINK USERPROG,EDX002. REPLACE END END 0 '· '. Appendix B. Preparing Indexed Access Method Programs IG-231 ,(--,,\ i.l! ~."Y IG-232 SC34-0404 I o APPENDIX C. CODING EXAMPLES This chapter functions by language CAll third example demonstrates how to code the Indexed Access Method request means of sample programs. This example uses Event Driven functions. The second example uses the CaBOl language. The in this chapter is coded using Pl/I language. EDL INDEXED ACCESS METHOD CODING EXAMPLE This program gives an example for each of the Indexed Access Method function calls. The indexed file is opened first in load mode and ten base records are loaded followed by a DISCONNECT. Next, the same fi Ie is opened for processing. A GET request is performed for the first record whose key is greater than 'JONES PW'. Two more records are retrieved sequentially and then the ENDSEQ call releases the file from sequential mode. A record is then retrieved directly by key and updated. Another record is retrieved sequentially and deleted. A new record is inserted and another one is deleted by their unique keys. ,Finally, an example of extracting information from the'file control block is shown. Upon successful completion the message "Verification Complete" is displayed on the console. Although using secondary keys are not demonstrated in this example the requests are coded the same for secondary keys as they are for primary keys. When accessing secondary keys use the secondary index file name instead of the primary index file name. The Indexed Access Method will open the primary index file and retrieve the data record according to the secondary key requested. This program requires that an Indexed Access Method file has been defined with the $IAMUTl utility with the following specifications: 0 BASEREC BlKSIZE RECSIZE KEYSIZE KEYPOS FREEREC FREEBlK RSVBlK RSVIX FPOOl DElTHR DYN 10 256 80 28 1 1 10 0 0 0 0 0 Appendix C. Coding Examples IG-233 EDL INDEXED ACCESS HETHOD CODING EXAHPLE SAMPLE START PROGRAM START,DS=??,ERRXIT=TEECB EQU * ENQT PRINTEXT LOGON,LINE=O DEQT * IAM,(LOAD),IACB,(DS1),(OPENTAB),(SHARE) LOAD THE INDEXED ACCESS METHOD DATA SET MOVEA POINTER,RECORDl POINTER <== A(RECORD1) DO RECNUM,TIMES CALL IAM,(PUT),IACB,(*),P4=~OINTER ADD POINTER,80 POINT TO NEXT RECORD ENDDO GET OUT OF LOAD MODE CALL IAM,(DISCONN),IACB EJECT '* * PRINT LOGON MESSAGE OPEN THE INDEXED ACCESS METHOD DATA SET FOR LOADING CALL * o OPEN THE INDEXED FILE FOR PROCESSING * CALL IAM,(PROCESS),IACB,(DS1),(OPEHTAB),(SHARE) * PERFORM A DIRECT RETRIEVAL OF THE FIRST RECORD WHOSE KEY IS * GREATER THAN 'JONES PW'. THE KEY FIELD WILL BE MODIFIED TO * REFLECT THE KEY OF THE RECORD RETRIEVED. CALL MOVE IF IAM,(GET),IACB,(BUFF),(KEY3),(GT) RTCODE,SAMPLE (SAMPLE,NE,-l),GOTO,IAMERR * PERFORM A SEQUENTIAL RETRIEVAL OF THE FIRST TWO RECORDS * WHOSE KEYS ARE GREATER THAN OR EQUAL TO 'JONES PW' CALL MOVE IF CALL MOVE IF CALL IAM,(GETSEQ),IACB,(BUFF),(KEY1),(GE) RTCODE,SAMPLE (SAMPlE,NE,-l),GOTO,IAMERR IAM,(GETSEQ),IACB,(BUFF) RTCODE,SAMPLE (SAMPLE,NE,-l),GOTO,IAMERR IAM,(ENDSEQ),IACB,(BUFF) END SEQUENTIAL MODE c IG-234 SC34-0404 o * UPDATE THE RECORD WHOSE KEY IS 'JONES PW' BY A DIRECT UPDATE CALL MOVE IF c IAM,(GET),IACB,(BUFF),(KEY1),(UPEQ) RTCODE,SAMPLE (SAMPLE,NE,-l),GOTO,IAMERR ** * MAKE THE DESIRED MODIFICATIONS TO THE RECORD NOW IN BUFFER ** * * DELETE THE RECORD WHOSE KEY IS 'JONES PW' BY A SEQUENTIAL UPDATE ** * ** MOVE CALL CALL MOVE IF CALL CALL BUFF+30,O IAM,(PUTUP),IACB,(BUFF) IAM,(GETSEQ),IACB,(BUFF),(KEY1),(UPEQ) RTCODE,SAMPLE (SAMPlE,NE,-1),GOTO,IAMERR IAM,(PUTDE),IACB,(BUFF) IAM,(ENDSEQ)~IACB END SEQUENTIAL MODE INSERT A NEW RECORD WITH A KEY OF 'MATHIS GR' CALL IAM,(PUT),IACB,(NEWREC) DELETE THE RECORD WHOSE KEY IS 'LANG lK' CALL IAM,(DELETE),IACB,(KEY2) MOVE RTCODE,SAMPLE (SAMPLE,NE,-1),GOTO,IAMERR IF EJECT ** EXTRACT THE FILE CONTROL BLOCK INTO THE EXTRACT BUFFER CALL MOVEA MOVE SPACE ** * IAM,(EXTRACT),IACB,(EXTBUF),(FCBSIZE),128 11,EXTBUF 11 <-- A(EXTRACT BUFFER) FLAGBYTE,(O,11),BYTE OBTAIN FCB FLAG BYTE 5 WRITE VERIFICATION COMPLETE MESSAGE TO THE OPERATOR ENQT PRINTEXT SKIP=1 PRINTEXT VERIF,SPACES=O SYSERR DEQT GOTO EQU FINISH * JUMP AROUND ERROR ROUTINES GETS CONTROL ON SYSIPGM CHECK o Appendix C. Coding Examples IG-235 M M M M * WHEN A TASK "ERROR EXIT IS SPECIFIED IN AN INDEXED ACCESS METHOD PROGRAM, YOU CAN RELEASE ALL ACTIVE RECORD AND BLOCK LEVEL LOCKS AS WELL AS DISCONNECT THE FILE ITSELF BY ISSUING THE 'DISCONN' CALL FOR EACH FILE THAT IS OPEN. M IAMERR GOTO FINISH EJECT EQU M MOVE ENQT RTCODE,SAMPLE PRINTEXT PRINTEXT PRINTHUM PRINTEXT PRINTEXT FINISH GETS CONTROL UPON INDEXED METHOD ERRORS SKIP=2 RTCODMSG RTCODE,TYPE=S,FORMAT=(3,0,I) SKIP=l ERRMSG,SPACES=O DEQT EQU * CALL IAM,(DISCONN),IACB PROGSTOP EJECT M * DATA DEFINITION AND STORAGE AREAS * RECNUM RTCODE OPENTAB DATA DATA DATA DATA DATA RECORDl DATA RECORD2 DATA RECORD3 DATA RECORD4 DATA RECORDS DATA RECORD6 DATA RECORD7 DATA RECORD3 DATA RECORD9 DATA RECORDlO DATA FlAGBYTE DATA DATA 10-236 NUMBER OF RECORDS TO LOAD F'lO' INDEXED ACCESS METHOD RETURN CODE F'O' SYSTEM RETURN CODE ADDRESS F'O' A(IAMERR) ERROR EXIT ROUTINE ADDRESS END OF DATA ROUTINE ADDRESS F'O' CL80'BAKER RG' Cl80'DAVIS EN' CL80'HARRIS SL' CL80'JONES PW' CL80'JONES TR' CL80'LAHG LK' CL80'PORTER JS' CL30'SMITH AR' CL30'SMITH GA' Cl80'THOMAS SN' FCB FLAG BYTE H'O' H'O' SC34-0404 o o NEWREC BUFF KEY1 KEY2 DATA DATA TEXT TEXT DATA DATA KEY3 DATA IACB DATA EXTBUF DATA LOGON TEXT VERIF TEXT ERRMSG TEXT RTCODMSG TEXT EJECT ** THE FOLLOWING STORAGE IS USED BY TASK ERROR EXIT HANDLING *TEECB c~'\ / CL80'MATHIS GR' CL80' , 'JONES PW',LENGTH=28 'LANG LK',LENGTH=28 X'lC' X'OO' CL28'JONES PW' ADDR OF IACB PUT HERE F'O' FCB PUT HERE BY EXTRACT 64F'O' 'INSTALLATION VERFICATION PROGRAM ACTIVE' 'VERIFICATION COMPLETE' 'VERIFICATION INCOMPLETE DUE TO BAD RETURN CODES' 'INDEXED ACCESS METHOD RETURN CODE: , EQU DATA DATA DATA *F'2' ACSYSERR) ACHSA) TASK ERROR EXIT CONTROL BLOCK I OF DATA WORDS THAT FOLLOW ADDRESS OF EXIT ROUTINE ADDRESS OF HARDWARE STATUS AREA * STATUS AREA. THIS STORAGE WILL BE FILLED * HARDWARE HARDWARE UPON SYSTEM OR PROGRAM CHECK INTERRUPT * * HSA EQU * HSALSB DATA F'O' EQU * DATA F'O' DATA F'O' DATA F'O' DATA 8F'0' COpy IAMEQU COpy FCBEQU ENDPROG END IN BY PROCESSOR STATUS WORD LEVEL STATUS BLOCK: ADDRESS KEY REGISTER INSTRUCTION ADDR REGISTER LEVEL STATUS REGISTER GENERAL REGISTERS 0-7 o Appendix C. Coding Examples IG-237 COBOL INDEXED ACCESS METHOD CODING EXAMPLE This coding example inserts, deletes, and updates records in an indexed file, using primary and secondary keys to retrieve the records. The indexed file description is described below under "Input File". o Program Description Thi s program reads a record and based on a transact; on code, e; ther updates, deletes, or inserts records to a current Indexed Access Method file. The transaction type also determines whether indexing is done using a secondary or primary key. Input Fi Ie I. TRANSACTION FILE. TRANSACTION RECORD FORMAT: EMPLOYEE NUMBER 1-6 LAST NAME 7-21 FIRST NAME 22-31 ADDRESS 32-56 CITY 57-68 STATE 69-70 AGE 71-72 START DATE 73-78 TYPE 79 ACTION 80 (6) (15) (10) (25) (12) (2) (2) (6) (1 ) (1 ) II. UPDATE FILE A. MASTER FILE. PRIMARY. KEY IS EMPLOYEE NUMBER B. NAME FILE SECONDARY. KEY IS LAST 'NAME. EMPLOYEE RECORD FORMAT EMPLOYEE NUMBER 1-6 (6) LAST NAME 7-21 (15) FIRST NAME 22-31 (10) ADDRESS 32-56 (25) CITY 57-68 (12) STATE 69-70 (2) (2) AGE 71-72 (6) START DATE 73-78 (2) FILLER 79-80 c IG-238 SC34-0404 o C~ I IDENTIFICATION DIVISION. PROGRAM-ID. COBOll. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-Sl. OBJECT-COMPUTER. IBM-Sl. SPECIAL-NAMES. SYSOUT IS PRINTER. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMPLOYEE-MASTER ASSIGN TO DS2 "EMPMAST" "EDXTST" ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS EMPLOYEE-NUMBER FILE STATUS IS SKI SELECT EMP-NAME-FILE ASSIGN TO DS3 "EMPNAME" "EDXTST" ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS E-LAST-NAME FILE STATUS IS SKi SELECT TRANSACTION-FILE ASSIGN TO DS4 "TRANSF" "EDXTST" ORGANIZATION IS SEQUENTIAL, ACCESS MODE IS SEQUENTIAL FILE STATUS IS SKI DATA DIVISION. FILE SECTION. FD EMPLOYEE-MASTER LABEL RECORDS ARE STANDARD BLOCK CONTAINS 3 RECORDS. 01 MASTER-RECORD. 05 EMPLOYEE-NUMBER PICTURE X(06). 05 FILLER PICTURE X(74). FD 01 FD 01 EMP-NAME-FILE LABEL RECORDS ARE STANDARD BLOCK CONTAINS 3 RECORDS. EMP-NAME-RECORD. 05 FILLER PICTURE X(06). 05 E-lAST-NAME PICTURE X(15). 05 FILLER PICTURE X(59). TRANSACTION-FILE LABEL RECORDS ARE STANDARD BLOCK CONTAINS 3 RECORDS RECORD CONTAINS SO CHARACTERS. TRANS-ACTION-RECORD PICTURE X(SO). o Appendix C. Coding Examples IG-239 (~ ,oJ) , \ I WORKING-STORAGE SECTION. 77 EOF 77 ERR-SWITCH 77 SK 01 EMPLOYEE-RECORD. 05 MAN-NUMBER 05 NAME. 10 LAST-NAME 10 FIRST-NAME OS STREET-ADDRESS OS CITY 05 STATE OS AGE OS START-DATE OS FILLER 01 PICTURE 9(01) VALUE ZERO. PICTURE X(01) VALUE ZERO. PICTURE X(02) VALUE ZERO. PICTURE X(06). PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE X(1S). X(10). X(25). X( 12). X(02). X(02). X(06). X(02). TRANSACTION-RECORD. PICTURE X(06). 05 T-NUMBER OS T-NAME. PICTURE X(1S). 10 T-LAST-NAME PICTURE X(10). ·10 T-FIRST-NAME PICTURE X(2S). OS T-STREET-ADDRESS PICTURE X( 12). OS T-CITY PICTURE X(02). 05 T-STATE PICTURE XC 02). OS T-AGE PICTURE X(06). OS T-START-DATE 05 TRANSACTION-CODE. PICTURE X(O!). 10 TRANS-TYPE PICTURE xeo!). 10 TRANS-ACTION /~ ""\ 1". ./ PROCEDURE DIVISION. BEGIN-PROCESSING. PERFORM FILE-OPEN1. IF SK = "00" PERFORM PROCESS-SECTION UNTIL EOF = 1. PERFORM CLOSE-UP. DISPLAY" CLOSE UP PROC COMPLETE" UPON PRINTER. STOP RUN. PROCESS-SECTION. READ TRANSACTION-FILE INTO TRANSACTION-RECORD AT END MOVE 1 TO EOF DISPLAY "TRANSACTION FILE PROCESSING COMPLETE" UPON PRINTER. IF EOF NOT = 1 DISPLAY " " TRANSACTION-RECORD UPON PRINTER PERFORM CONTROL-SECTION. c IG-240 SC34-0404 CONTROL-SECTION. IF TRANS-ACTION NOT = "2" PERFORM READ-SECTION. IF TRANS-ACTION = 1 PERFORM DELETE-PROC ELSE IF TRANS-ACTION = 2 PERFORM ADD-PROC ELSE PERFORM UPDATE-PROC. READ-SECTION. IF TRANS-ACTION : "PH PERFORM READ-PRIMARY ELSE PERFORM READ-SECONDARY. READ-PRIMARY. DISPLAY " DURING PRIMARY READ" UPON PRINTER. DISPLAY" KEY: " T-NUMBER UPON PRINTER. MOVE T-NUMBER TO EMPLOYEE-NUMBER. READ EMPLOYEE-MASTER INTO EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID PRIMARY KEY" T-NUMBER UPON PRINTER. IF SK NOT = "00" DISPLAY "PRIMARY READ FAILED " T-NUMBER " " SK UPON PRINTER. READ-SECONDARY. DISPLAY " DURING SECONDARY READ" UPON PRINTER. DISPLAY" KEY: " T-LAST-NAME UPON PRINTER. MOVE T-LAST-NAME TO E-LAST-NAME. READ EMP-NAME-FILE INTO EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID SECONDARY KEY" T-LAST-NAME UPON PRINTER. IF SK NOT = "00" DISPLAY "SECONDARY READ FAILED" T-LAST-NAME " " SK UPON PRINTER. UPDATE-PROC. IF T-lAST-NAME NOT : SPACES MOVE T-lAST-NAME TO LASX-HAME. IF T-FIRST-NAME NOT = SPACES IF T-STREET-ADDRESS NOT = SPACES MOVE T-STREET-ADDRESS TO STREET-ADDRESS. 0" , ~I Appendix C. Coding Examples " IG-241 IF T-CITY NOT = SPACES MOVE T-CITY TO CITY. IF T-STATf NOT = SPACES MOVE T-STATE TO STATE. IF T-AGE NOT = SPACES MOVE T-AGE TO AGE. IF T-START-DATE NOT = SPACES MOVE T-START-DATE TO START-DATE. IF TRANS-TYPE = "PH PERFORM PRIMARY-REWRITE ELSE PERFORM SECONDARY-REWRITE. PRIMARY-REWRITE. DISPLAY " BEGIN PRIMARY REWRITE KEY = " T-NUMBER UPON PRINTER. MOVE T-NUMBER TO EMPLOYEE-NUMBER. REWRITE MASTER-RECORD FROM EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID ~RIMARY KEY" T-NUMBER UPON PRINTER. IF SK NOT = "00" DISPLAY "PRIMARY WRITE FAILED" T-NUMBER " " SK UPON PRINTER. DISPLAY" PRIMARY REWRITE COMPLETE" UOPN PRINTER. SECONDARY-REWRITE. DISPLAY " BEGIN SECONDARY REWRITE KEY = " T-LAST-NAME UPON PRINTER. MOVE T-LAST-NAME TO E-LAST-HAME. REWRITE EMP-NAME-RECORD FROM EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID SECONDARY KEY" " " T-LAST-NAME UPON PRINTER. IF SK NOT = "00" DISPLAY "SECONDARY WRITE FAILED" T-LAST-NAME " " SK UPON PRINTER. DISPLAY" SECONDARY REWRITE COMPLETE" UPON PRINTER. DELETE-PROC. IF TRANS-TYPE = "PH PERFORM PRIMARY-DELETE ELSE PERFORM SECONDARY-DELETE. IG-242" SC34-0404 o PRIMARY-DELETE. MOVE TRANS-ACTION-RECORD TO MASTER-RECORD. DISPLAY" PRIMARY DELETE STARTED" UPON PRINTER. DELETE EMPLOYEE-MASTER RECORD INVALID KEY DISPLAY "INVALID PRIMARY KEY" T-NUMBER UPON PRINTER. IF SK NOT = "00" DISPLAY "PRIME KEY FOR DELETE NOT FOUND" UPON PRINTER. DISPLAY" PRIMARY DELETE FINISHED" UPON PRINTER. SECONDARY-DELETE. MOVE TRANS-ACT ION-RECORD TO EMP-NAME-RECORD. DISPLAY" SECONDARY DELETE STARTED" UPON PRINTER. DELETE EMP-NAME-FIlE RECORD INVALID KEY DISPLAY "INVALID SECONDARY KEY" T-lAST-NAME UPON PRINTER. IF SK NOT = "00" DISPLAY "SECONDARY KEY FOR DELETE NOT FOUND" UPON PRINTER DISPLAY TRANSACTION-RECORD UPON PRINTER. DISPLAY" SECONDARY DELETE FINISHED" UPON PRINTER. c ADD-PROC. MOVE TRANSACTION-RECORD TO EMPLOYEE-RECORD IF TRANS-TYPE = "PH PERFORM PRIMARY-ADD ELSE PERFORM SECONDARY-ADD. PRIMARY-ADD. WRITE MASTER-RECORD FROM EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID PRIMARY KEY" T-NUMBER UPON PRINTER. IF SK NOT = "00" DISPLAY "INSERT FAILED FOR PRIME FILE" UPON PRINTER DISPLAY TRANSACTION-RECORD UPON PRINTER. SECONDARY-ADD. WRITE EMP-NAME-RECORD FROM EMPLOYEE-RECORD INVALID KEY DISPLAY "INVALID SECONDARY KEY" T-LAST-NAME 'UPON PRINTER. IF SK NOT = "00" DISPLAY "INSERT FAILED FOR SECONDARY FILE" UPON PRINTER. o Appendix C. Coding Examples IG-243 FILE-OPEN!. OPEN 1-0 EMPLOYEE-MASTER. IFSK NOT = "00" DISPLAY "OPEN FAILED FOR EMPMAST" SK UPON PRINTER ELSE OPEN 1-0 EMP-NAME-FILE IF SK NOT = "00" DISPLAY "OPEN FAILED FOR EMPNAME" SK UPON PRINTER ELSE OPEN INPUT TRANSACTION-FILE IF SK NOT = "00" DISPLAY "OPEN FAILED FOR TRANSACTION-FILE" SK UPON PRINTER. DISPLAY" FILE OPEN COMPLETE" UPON PRINTER. CLOSE-UP. DISPLAY" BEGIN CLOSE UP PROC " UPON PRINTER. CLOSE TRANSACTION-FILE. CLOSE EMP-NAME-FILE. IF SK NOT = "00" DISPLAY "CLOSE FAILED FOR EMPNAME, RC= " SK UPON PRINTER. ELSE DISPLAY" EMP-NAME-FILE CLOSED" UPON PRINTER. CLOSE EMPLOYEE-MASTER. IF SK NOT = "00" DISPLAY "CLOSE FAILED FOR EMPMAST, RC= " SK UPON PRINTER. ELSE DISPLAY" EMP-MAST-FILE CLOSED" UPON PRINTER. o ('~, V c IG-244 SC34-0404 o PL/I INDEXED ACCESS METHOD CODING EXAMPLE Thi s PL.lI codi ng example inserts, deletes, and updates records in an indexed file, using primary and secondary keys to retrieve the records. The indexed file description is described below under "Input File". PrOgraM Descr;pt;on Thi s program reads a record and based on a transact i on code, ei ther updates, deletes, or inserts records to a current Indexed Access Method file. The transaction code also determines whether index access is done using a sec~ndary key or primary k~y. Input F;le. I. INPUT FILE A. TRANSACTION FILE, TRANSACTION RECORD FORMAT: EMPLOYEE NUMBER LAST NAME FIRST NAME ADDRESS CITY STATE AGE START DATE TYPE ACTION 1-6 7-21 22-31 32-56 57-68 69-70 71-72 73-78 79 80 (6) (15) (10) (25) (12) (2) (2) (6) (1) (1) II. UPDATE FILE A. MASTER FILE. PRIMARY. KEY IS EMPLOYEE NUMBER B. NAME FILE SECONDARY. KEY IS LAST NAME. EMPLOYEE RECORD FORMAT (6) EMPLOYEE NUMBER 1-6 (15) LAST NAME 7-21 FIRST NAME 22-31 (10) 32-56 (25) ADDRESS CITY 57-68 (12) (2) 69-70 STATE (2) 71-72 AGE (6) 73-78 START DATE (2) 79-80 FILLER o Appendix C. Coding Examples IG-245 PlITEST: PROCEDUREOPTIONS(MAIN); DCl EMPMAST 1* EMPLOYEE MASTER FILE FILE RECORD 1* PRIMARY DIRECT 1* KEY IS EMPLOYEE NUMBER UPDATE KEYED ENVCFB BlKSIZE(256) RECSIZECSO) INDEXED KEYlENGTH(6) KEYlOCCl»; o *1 *1 *1 DCl EMPNAME 1* EMPLOYEE NAME FILE FILE RECORD 1* SECONDARY DIRECT 1* KEY IS EMPLOYEE NAME UPDATE KEYED ENVCFB BlKSIZE(256) RECSIZECSO) INDEXED KEYlENGTH(15) KEYlOC(7»; *1 *1 *1 DCl TRANSFl 1* TRANSACTION FILE 1* INPUT FILE FILE RECORD SEQUENTIAL INPUT ENVCFB BlKSIZE(240) RECSIZECSO) CONSECUTIVE); *1 *1 OCl SYSPRINT 1* STANDARD OUTPUT FILE *1 DCl 1 $FCBlST STATIC EXTERNAL, 2 $FCBCNT FIXED BIN(15) INIT(4), 2 $FCBFl CHARCS) INITC'EMPMAST'), 2 $FCBDI CHARCS) INITC'EMPMAST'), 2 $FCBVI CHAR(6) INITC'EDXTST'), 2 $FCBF2 CHAR(S) INITC'EMPNAME'), 2 $FCBD2 CHAR(S) INITC'EMPNAME'), ;f"-"" ~.;) FILE PRINT EHVCF BlKSIZE(121»; 1* FILE CONTROL BLOCK lIST *1 1* FILE COUNT *1 1* FILE 11 NAME 1* FILE 11 DATA SET *1 1* FILE 11 VOLUME *1 1* FILE 12 NAME 1* FILE #2 DATA SET c IG-246 SC34-0404 0 ("'" ",/ 2 $FCBV2 CHAR(6) INITC'EDXTST'), $FCBF3 2 CHAR(8) INITC'TRANSFl'), 2 $FCBD3 CHAR(8) INITC'TRANSFl'), $FCBV3 2 CHAR(6) INITC'EDXTST'), $FCBF4 2 CHAR(8) INITC'SYSPRINT'), 2 $FCBD4 CHAR(8) INITC'SYSPRINT'), 2 $FCBTL4 FIXED BINC!5) INIT(1), 2 $FCBBL4 FIXED BINCI5) INIT(66), 2 $FCBHL4 FIXED BINCI5) INITCOO); DCl ! EMP_RECORD STATIC, 2 EMP_NUMBER CHAR(6), 2 NAME, 3 LAST_NAME CHARCI5), 3 FIRST_NAME CHARCI0), 2 STREET_ADDRESS CHAR(25), 2 CITY CHARCI2), 2 STATE CHAR(2), 2 AGE CHAR(2) " 2 START_DATE CHAR(6), 2 FILLER CHAR(2); 1M FILE 12 VOLUME MI 1M FILE 13 NAME MI 1M FILE 13 DATA SET MI 1M FILE 13 VOLUME MI 1M FILE 14 NAME MI 1M FILE 14 DEVICE NAME MI 1M FILE 14 TOP LINE MI 1M FILE 14 BOTTOM LINE MI 1M NOT USED MI 1M lAM BUFFER FORMAT MI 0 Appendix C. Coding Examples IG-247 DCL 1 TRANSACTIONR STATIC, 2 TEMP_NUMBER CHAR(6), 2 TNAME, 3 TLAST_NAME CHAR(!S), 3 TFIRST_NAME CHAR(lO), 2 TSTREET_ADDRESS CHAR(2S), 2 TCITY CHAR(12), 2 TSTATE CHAR(2), 2 TAGE CHAR(2), 2 TSTART_DATE CHAR(6), 2 TRANSACTION_CODE, 3 TRANS_TYPE CHAR(!), 3 TRANS_ACTION CHAR(!); DCL BLANK STATIC CHAR (6) INITC' '); /M /M 'P' TRANSACTION RECORD FORMAT = PRIMARY 'S' = SECONDARY M/ /M ! = DELETE 2 = INSERT /M 3 = UPDATE /M FIELD OF BLANKS DCL (IOERR, FOERR) STATIC CHAR(!) INITC'F'); /M INPUT/OUTPUT ERROR FLAG /M OPEN ERROR FLAG DCL TRUE STATIC CHAR(!) INITC'T'), FALSE STATIC CHAR(!) INITC'F'); /M·TRUE VALUE FOR FLAGS DCL R_CODE STATIC FIXED BIN(lS) INITCO); M/ /M FALSE VALUE FOR FLAGS /M RETURN CODE c IG-248 SC34-0404 o DCL ONCODE /M ON CONDITION CODE BUILTIN; DCL EOF /* END OF FILE FLAG STATIC CHARCl) INITC'F'); /***********************MM*M MAIN PROGRAM M*MMMMMM*MM******M*M*MM/ /* M/ /**MM**MM*MM*M*M**M**M*M ON CONDITION FOR EOF MM*MMMM*M*MMMMMMMMM/ ON ENDFILECTRANSFl) BEGIN; PUT lISTC'M** TRANSACTION FILE PROCESSING COMPLETE MMM'); EOF = TRUE; CLOSE /M CLOSE All FILES M/ FIlECEMPMAST), FIlECEMPNAME), FIlECTRANSFl); STOP TASK; END; /****M*****M***** ON CONDITIONS FOR FILE OPEN ERRORS ******MM*MMM/ ON UNDFCEMPMAST) FOERR = TRUE; ON UNDFCEMPNAME) FOERR = TRUE; ON UNDFCTRANSFl) FOERR = TRUE; /**M*******MM*M*M*M** ON CONDITIONS FOR I/O ERRORS MMM***MMM*****/ ON KEYCEMPMAST) IOERR = TRUE; ON KEYCEMPNAME) IOERR = TRUE; /* /MMMMMMMMMMM*MMMMMMMM*MMMMMM OPEN All FILES *MMMMMMMMM*MMMMMMMMMM/ /M M/ CAll OPEN; /M**M*MM INITIATE PROCESSING UNTIL EOF CONDITION IS REACHED MMMMM/ DO WHILE CEOF ~= TRUE); IOERR = FALSE; FOERR = FALSE; CAll PROCESS; /M INVOKE PROCESS SUBROUTINE M/ END; /M_END DO WHILE M/ /MMMMMMMMMMMMMMMMMMMMM END MAIN PROGRAM MMMMM*MMMMMMMMMMMMMMMMMMM/ /M M/ OPEN: PROC; OPEN FILECEMPMAST) UPDATE; IF FOERR = TRUE THEN DO; R_CODE = ONCODE; /M SET RETURN CODE M/ PUT lISTC'OPEN FAILED FOR EMPMAST') SKIP; PUT lISTC'ON CODE = ',R_CODE) SKIP; END; O'~ " Appendix C. Coding Examples IG-249 IF FOERR = FALSE THEN DO; OPEN FILECEMPNAME) UPDATE~ IF FOERR = TRUE THEN DO; R_CODE = ONCODE; /* SET RETURN CODE */ PUT LIST('OPEN FAILED FOR EMPNAME') SKIP; PUT LISTC'ON CODE = ',R_CODE) SKIP; END; END; /* IF FOERR = FALSE THEN DO; OPEN FILE(TRANSFL); IF FOERR = TRUE THEN DO; R_CODE = ONCODE; /* SET RETURN CODE */ PUT lISTC'OPEN FAILED FOR TRANSFL') SKIP; PUT LISTC'ON CODE = ',R_CODE); END; END; .1* IF FOERR = TRUE THEN STOP TASK; (r "", \~./ .1* END; /* END OPEN PROCEDURE *.1 .1********************* PROCESS PROCEDURE ************************/ .1* .1* .1* .1* .1* .1* *.1 1) READS IN A TRANSACTION RECORD */ 2) IF ACTION = 1 DELETES RECORD WITH CORRESPONDING KEY. */ */ - 2 INSERTS RECORD ONTO lAM FILE. 3 READS RECORD WITH CORRESPONDING KEY, */ = ALLOWS UPDATE, REWRITES RECORD. */ 3) IF TYPE = 'P' All INDEXING IS DONE WITH A PRIMARY KEY */ /* .1* = 'S' ALL INDEXING IS DONE WITH A SECONDARY KEY*/ 4) ALL IDENTIFIERS, FILES AND RECORDS USED ARE GLOBAL */ .1* */ .1* /****************************************************************/ PROCESS: PROCEDURE; READ FILECTRANSFL) INTO (TRANSACTIONR); IF IOERR = TRUE THEN DO; R_CODE = ONCODE; PUT LIST('READ HAS FAILED FOR TRANSFl') SKIP; PUT LISTC'ON CODE = ',R_CODE) SKIP; END; IG-250 " SC34-0404 o IF TRANS_ACTION = , 1 ' CALL DELETE; IF TRANS_ACTION = '3' CALL UPDATE; IF TRANS_ACTION = '2 ' CALL INSERT; END; 1'* & IOERR = FALSE THEN 1'* BEGIN DELETE IOERR = FALSE THEN & IOERR = FALSE THEN & *1' END PROCEDURE PROCESS *1' DELETE: PROC; IF TRANS_TYPE = 'P' THEN DELETE FILECEMPMAST) KEYCTEMP_NUMBER); ELSE DELETE FILECEMPNAME) KEYCTLAST_NAME); END; 1'* END DELETE *1' 1'* UPDATE: PROC; IF TRANS_TYPE = -P' THEN CALL PRIM_READ; ELSE CALL SEC_READ; IF IOERR = FALSE THEN DO; . IF TLAST_NAME ~= BLANK THEN LAST_NAME = TLAST_NAME; IF TFIRST_NAME ~= BLANK THEN FIRST_NAME = TFIRST_NAME; IF TSTREET_ADDRESS ~= BLANK THEN STREET_ADDRESS = TSTREET_ADDRESS; IF TCITY ~= BLANK THEN CITY = TClTY; IF TSTATE ~= BLANK THEN STATE = TSTATE; o Appendix C. Coding Examples IG-251 o IF TAGE ... = BLANK THEN AGE = TAGE; IF TSTART_DATE ... = BLANK THEN START_DATE = TSTART_DATE; CALL REWRITE; END; END; /* END UPDATE /M PRIM_READ: PROC; READ FILECEMPMAST) INTOCEMP_RECORD) KEYCTEMP_NUMBER); IF IOERR = TRUE THEN DO; R_CODE = ONCODE; PUT LIST('EMPMAST PRIMARY READ HAS FAILED') SKIP; PUT LIST('KEY = ',TEMP_NUMBER); PUT LIST('ONCODE = ',R_CODE); END; END; /* END PRIMARY READ /* SEC_READ: PROC; READ FILE(EMPNAME) INTOCEMP_RECORD) KEY(TLAST_NAME); IF IOERR = TRUE THEN DO; R_CODE = ONCODE; PUT LIST('EMPMAST SECONDARY READ HAS FAILED') SKIP; PUT LIST('KEY = ',TLAST_NAME); PUT LIST('ONCODE = ',R_CODE); END; END; /* END SECONDARY READ REWRITE: PROC; IF TRANS_TYPE = 'P' /* BEGIN REWRITE THEN REWRITE FILECEMPMAST) FROMCEMP_RECORD) KEYCTEMP_NUMBER); ELSE REWRITE FILECEMPNAME) FROMCEMP_RECORD) KEYCTLAST_NAME); END; M/ */ o IG-2S2 SC34-0404 o c INSERT: PROC; IF TRANS_TYPE = 'P' THEN DO; WRITE FILE(EMPMAST) FROMCTRANSACTIONR) KEYFROMCTEMP_NUMBER); IF IOERR = TRUE THEN DO; R_CODE = ONCODE; PUT LIST('EMPMAST SECONDARY INSERTION HAS FAILED') SKIP; PUT LISTC'KEY = ',TEMP_NUMBER); PUT LISTC'ONCODE = ',R_CODE); END; END; ELSE DO; WRITE FILECEMPNAME) FROMCTRANSACTIONR) KEYFROMCTLAST_NAME); IF IOERR = TRUE THEN DO; R_CODE = ONCODE; PUT LISTC'EMPMAST SECONDARY INSERTION HAS FAILED') SKIP; PUT LISTC'KEY = ',TNAME); PUT LISTC'O~CODE = ',R_CODE); END; END; END; END PLITEST; o Appendix C. Coding Examples IG-·253 o SC34-0404 o BIBLIOGRAPHY This bibliography lists and summarizes the Event Driven Executive Version 3 library; it should assi st you in usi ng the library as a whole as well as direct you to the individual books you require. See the pUblication IBM Serjes!1 Publications Directory, GC34-0361 for a complete list of Series!1 hardware and programming manuals. This publicat ion lists each vers; on of the Event Dri ven Execut i ve and its ralated licensed programs, and shows which manuals apply to each version. EVENT DRIVEN EXECUTIVE LIBRARY The IBM Series!1 Event Driven Executive library consists of nine full-sized books, six specialized internals books, and a quick reference pocket book: • IBM Seri es!1 System Guide) • IBM Series/1 Event Driven Executive (or Operator's Reference) • -IBM Series!1 Event Driven Executive (or language Reference) • IBM Seri es!1 Event Dri ven Executi ve Communi cat ions and Termi nal Applications Guide, SC34-170S (or Communications and Terminal Applicati ons Gui de) • IBM Series/1 Event Driven Executive Commercial Applications Development Guide, SC34-0381 (or Commercial Applications Development Guide) • IBM Series!1 Event Driven Executive SC34-1704 (or Program Preparation Guide) • IBM Series/1 Event Driven Executive (or Messages and Codes) • IBM Series/! Event Drjven Executive Systems Network Architecture and Remote Job Entry Guide, SC34-0402 (or Systems Network Architecture and Remote Job Entry Guide) • IBM Series!1 Event Driven Executive Indexed Access Method Version 2 Guide, SC34-0404 (or Indexed Access Method Version 2 Guide) • IBM Series/! Event Driven Executive Internal Design) Event Driven Executive System Guide, SC34-1702 (or Operator's Reference, SC34-1703 Language Reference. SC34-1706 Program Preparation Guide, Messages and Codes, SC34-0403 Internal Design, lY34-0212 (or Bibliography IG-255 • IBM Serjes/1 Event Driven Executive System/370 Channel Attach Program Internal Desi gn, l Y34-0215 (or System/370 Channel Attach Program Internal Design), • IBM Series/l Event Driven Exec~tive Multiple Terminal Manager Internal Design, LY34-0190 (or Multiple Terminal Manager Internal Design), • IBM Ser;es/l Eyent Driven Executiya Indexed Access Method Internal Design, lY34-0189 (or Indexed Access Method Internal Design), • IBM Series/1 Event Driven Executive Indexed Access Method Version 2 Internal Design, LY24-0238 (or Indexed Access Method Version 2 Internal Design) • IBM Seri es/1 Event Dri ven Execut i ve Systems Network Arch; tecture Internal Design, lY34-0615 (or Systems Network Architecture Internal Design) • IBM Series/l Event Drjven Executive Referenca Summary, SX34-0038 (or Reference SummarY), IG-256 SC34-0404 o SUMMARY OF LIBRARY The System Guide has four parts: Concepts and Facilities, System Generation, Problem Determination, and Data Management. The concepts and facilities part describes the Event Driven Executive system and its related products and introduces the capabilities of these products. . The system generat i on part presents step-by-step procedures for generating a supervisor tailored to your Series/l hardware configuration and programming needs. The problem determination part explains how to use Event Driven Executive debugging aids. Data management explains direct access data sets, tape data sets, partitioned data sets, dynamic data set allocation, and sensor I/O. Operator's Reference Operator's Reference describes: • Event Driven Executive utility programs • Operator commands • Procedures to execute system and application programs • The sessi on manager -- a menu-dr; ven interface program that wi 11 invoke the programs required for program development The operator commands and utilities are presented in alphabetic order and include detailed syntax and explanations. Also included is a description of the facilities of the session manager. Utilities are described either in detail or with a reference to the publication where a more detailed description can be found. Language Reference The language Reference familiarizes you with the Event Driven language by first groupi ng the instruct ions into funct i onal categor i es. Then the instructions are presented alphabetically, with complete syntax and an explanation of each operand. Instructi~ns that support special functions such as 370 Channel Attach are documented in the manual that describes the function. An appendix summarizes the syntax of all instructions. The final section of the language Reference contains examples of using the Event Driven language to code functions such as: o • Program loading • User exit routine Bibliography IG-257 • I/O level control program • Indexing and hardware register usage communications and Terminal APplications Guide The Communications and Terminal Applications Guide introduces the Event Driven Executive communications and terminal support. The Communications and Terminal Applications Guide describes: • Binary synchronous communications • Asynchronous communications • The Host Communications Facility • Series/l to Series/l Attachment support • The Remote Management'Utility • The • General Purpose Interface Bus support. System/~70 Channel Attach Program The Communications and Terminal Applications Gujde contains the utilities and coding details on Event Driven Language instructions needed for communications support and advanced terminal applications such as graphics. commercial Applications Development Guide The Commercial Applications Deyelopment Guid@ describes: I. The Indexed Access Method Versi on 1 • The Multiple Terminal Manager • Printer spooling I. High Level Language interface to static screen subroutines The description of the Indexed Access Method explains how to plan~ design, and build indexed data sets. Also included is information on how to write' applications that use indexed data sets. The Multiple Terminal Manager section explains how to write applications to run under the Multiple Terminal Manager and how to use the Multiple Terminal Manager. The description of printer spooling explains how to install and use the spooling facility, and describes the spool utility and spool operator commands. IG-258 o Program Preparation Guide The Program Preparation Guide describes: • The Event Driven Language compiler • The Series/l assembler • The host assembler • The linkage editor • The object program converter (native and host) • The data set and overlay prefind utility SNA and Remote Job Entry Gu; de Systems Network Architecture and Remote Job Entry Guide describes the Systems Network Archi tecture serv ices and funct ions that are ava i labIa through a high-level instruction set, and explains Systems Network Architecture formats and protocols. The manual also describes how to use the Systems Network Architecture Remote Job Entry utility. Messages and Codes Messages and Codes describes many of the informational, warning, and error messages produced by the Event Driven Executive system and its related products. The manual also contains return codes, completion codes, and post codes issued by these products. Indexed Access Method Version 2 Guide This manual describes Version 2 of the Indexed Access Method. It explains how to set up and access an indexed fi Ie, and how to use the Indexed Access Method utilities. The manual also contains examples of using the Indexed Access Method in Event Driven Language, COBOL, and PL/I programs. Internal Designs Internal Desi gn descri bes the internal logi c flow and, speci fi cat; ons of the Event Driven Executive system so that you can understand how the system interfaces with application programs. It familiarizes you with the design and implementation by describing the purpose, function, and operation of the various Event Driven Executive system programs. o Multiple Terminal Manager Internal Design, System/3'70 Channel Attach Internal Design, Indexed Access Method Internal Design, Indexed Access Method Version 2 Internal Design, -and Systems NetwotkArchitecture Inter- Bibliography IG-259 nal Design describe the internal logic flow and specifications of these programs. o Unlike the other manuals in the library, the Internal Design books contain material that is the licensed property of IBM and they are available only to licensed users of the products that they describe. Reference summary The Reference Summary is a pocket-sized booklet to be used for quick reference. It lists the Event Dr; ven Language instruct; ons wi th thei r syntax, the uti Ii ty and program preparat; on commands, and completi on, post, and return codes. OTHER EVENT DRIVEN EXECUTIVE PROGRAMMING PUBLICATIONS The following is a list of Event Driven Executive publications that you may need to code application programs in languages other than the Event Driven Language. • IBM Series/! FORTRAN IV Language Reference, GC34-0133. • IBM Series/! SC34-0315. • IBM Series/1 Mathematical and Functional Subroutine Library User's Guide, SC34-0139. • IBM Series/1 GC34-0!47. • IBM Series/! Event Driven Executjve PL/I User's Guide, SC34-0148. • IBM Serjes/! COBOL Language Reference, GC34-0234. I. • I· IBM Series/1 Event Event Drjven Driven Executive FORTRAN Executive PL/I IV User's Language Guide, Reference, COBOL Version 2 Language Reference, SC34-0392 IBM Series/! SL23-00!4. Event Driven Executive IBM Serj es/! Event Dri ven Execut i ve Guide, SC34-0393 COBOL Programmer's COBOL Versi on 2 Programmer's • IBM Series/l Event Reference,GC34-0317. • IBM Series/! Macro Assembler Reference Summary, SX34-0128 Driven Guide, Executive Macro Assembler o IG-260 SC34-0404 o OTHER pROGRAMMING PUBLICATIONS The following publications may be required for reference. • IBM Ser;es/l Programming System Summary, GC34-0285. • IBM Series/l Event Driven Executive Study Guide, SR30-0436. • IBM Data Processing Glossarv, GC20-1699. I. C' i ! DOS/VS Tape labels Manual, GC33-5374 • IBM Series/l Event Driven Executive Sort/Merge Programmer's Gujde, Sl23-0016 • IBM Series/l Data Collection User's Guide, SC34-1654. • IBM Se.ries/l Host Communications Facility Program Description Manual, SH20-1819. • IBM OS/VS Basic Telecommunications Access Method (BTAM), GC27-6980. • General Information -- Binary Synchronous Communications, GA27-3004. • IBM System/370 Interactive Programming RPQ P82600 Program Preparation Facility, SB30-1072. SERIES/l SYSTEM LIBRARY PUBLICATIONS The following pUblications contain hardware-related information. o • IBM Series/l GA34-0084. 4952 Processor and Processor Features Description, • IBM Series/l GA34-0022. 4953 Processor and Processor Features • IBM Series/l GA34-0021. 4955 Processor and Processor Features Description, • IBM Series/l Communications Features Description, GA34-0028. • IBM 3101 Display Terminal Description, GA18-2033. • IBM Series/l 4962 Disk Description, GA34-0024. • IBM Series/l 4963 Disk Subsystem Description, GA34-0051. • IBM Series/l 4966 Diskette Magazine Unit Description, GA34-0052 .. • IBM Series/l 4969 Magnetic Tape Subsystem Descriptjon, GA34-0087. Storage Unit and 4964 Description, Diskette Bibliography Unit IG-261 o • IBM Series/l 4973 Line Printer Description, GA34-0044. • IBM Series/l 4974 Prjnter Description, GA34-0025. • IBM Series/l 4978-1 Display Station (RP9 D02055) and Attachment (RP9 D02038) General Informatjon, GA34-1550 • IBM Series/l 4978-1 Display Stat jon, Keyboard (RP9 D02056) General Information, GA34-1551 • IBM Series/l 4978-1 Display Station, Keyboard (RP9 D02057) General Information, GA34-1552 • IBM Series/l 4978-1 Display Station Keyboards (RP9 D02064 and D02065) General Information, GA34-1553 • IBM Series/! 4979 Display Station Descriptjon, GA34-0026 • IBM Series/l 4982 Sensor Input/Output Unit Description, GA34-0027 • IBM Diskette - General Information Manual, GA21-9182 • IBM Seri es/l General D02118, GA34-1556 • IBM Seri es/l to Seri es/l Feature, GA34-1561 • IBM Series/l System/370 Channel Attachment Feature and 4993 Modell Series/l System/370 Termination Enclosyre Description, GA34-00S7 • IBM Series/l Data Collection Interactive RPQs D02312, D02313, and 002314 Custom Feature, GA34-1567 Purpose Interface Bus Attachment (GPIB) RPgs D02241 Adapter - RPg & D02242 Custom o IG-262 SC34-0404 o GLOSSARV OF TERHS AND ABBREVIATIONS This glossary contains terms and abbreviations used in the Series/l Event Driven Executive software pUblications. All software and hardware terms are Series/1 oriented. This glossary also serves as a supplement to the IBM Data Processing Glossarv (GC20-1699). $SVSLOGA, $SVSLOGB: The nama of the alternate system logging device. This device is optional but, if defined, should be a terminal with keyboard capability, not just a printer. $SVSLOG: c The name of the system logging device or operator station; must be defined for every system. It should be a terminal with keyboard capability, not just a printer •. $SYSPRTR: The name of the system printer. ACCA: See asynchronous communications control adapter. address key: Identifies a set of Series/l segmentation registers and represents an address space. It is one less than the partition number. address space: The logical storage identified by an address key. An addressspaca is the storage for a partition. o application program manager: The component of the Multiple Terminal Manager that provides the program management facilities required to process user requests. It controls the contents of a program area and the execution of programs within the area. application program stub: A collection of subroutines that are appended to a program by the linkage editor to provide the link from the application program to the Multiple Terminal Manager facilities. asynchronous communications control adapter: An ASCII terminal attached via 11610, #2091 with 12092, or 12095 with 12096 adapters. attention list: A series of pairs of 1 to 8 byte EBCDIC strings and addresses pointing to EDl instructions. When the attention key is pressed on the terminal, the operator can enter one of the strings to cause the associated EDl instructions to be executed. backup: .A copy of data to be used in the event the original data is lost or damaged. base record slots: Space in an indexed file that is reserved for based records to be placed. base into mode with records: Records are placed an indexed file while in load or inserted in process mode a new high key. basic exchange format: A standard format for exchanging data on diskettes between systems or devices. binary synchronous device data block (BSeDDB): A control block that provides the information to control one Series/1 Binary Synchronous Adapter. It determines· Glossary IG-263 the line characteristics and provides dedicated storage for that line. tion immediately sends a character when a keyboard key is pressed. cluster: block: (1) See data block or index block. (2) In the Indexed Method, the unit of space used by the access method to contain indexes and data. block mode: The transmission mode in which the 3101 Display Station transmits a data data stream, which has been edited and stored, when the SEND key is pressed. BSCOOB: See binary synchronous device data block. In an indexed file, a group of data blocks that is pointed to from the same primary-level index block, and includes the primary-level index block. The data records arid blocks contai ned ina cluster are logically contiguous, but are not necessarily physically contiguous. COO (change of direction): A character used with ACCA terminal to indicate a reverse in the direction of data movement. cold start: buffer: An area of storage that is temporarily reserved for use in performing an inputloutput operation, into which data is read or from which data is written. See input buffer and output buffer. bypass label processing: Access of a tape without any label processing support. CCB: See terminal control block. central buffer: The buffer used by the Indexed Access Method for all transfers of information between main storage and indexed files. Starting the spool facility by erasing any spooled jobs remaining in the spool data set from any previous spool session. command: A character string from a source external to the system that represents a re~uest for action by the system. common area: A user-defined data area that is mapped into every partition at the same address. It can be used to contain control blocks or data that will be accessed by more than one program. completion code: character image: An alphabetic, numeric, or special character defined for an IBM 4978 Display Station. Each character image is defined by a dot matrix that is coded into eight bytes. character image table: An area containing the 256 character images that can be defined for an IBM 4978 Display Station. Each character image is coded into eight bytes, the entire table of codes requiring 2048 bytes of storage. An indicator that reflects the status of the execution of a program. The completion code is displayed or printed on the program's output device. controller: A device that has the capability of configuring the GPIB bus by designating which devices are active, which devices are listeners, and which device is the talker. In Seriesl1 GPIB implementati on, the Seri esl1 is always the controller. conversion: character mode: The transmission mode in which the 3101 Display Sta10-264 SC34-0404 See update. / \. 'oj o cross part;t;on serv;ce: A function that accesses data in two partitions. data block: In an indexed file, an area that contains control information and data records. These blocks are a multiple of 256 bytes. d;rectory control entry (DCE): The first 32 bytes of the first record of a directory in which a description of the directory is stored. data record: In an indexed file, the records containing customer data. d;rectory member entry (DHE): A 32-byte directory entry describing an allocated data set or volume. data set: A group of records within a volume pointed to by a directory member entry in the directory for the volume. d;sk data block (DDS): A control block that describes a direct access volume. data set control block (DSCB): A control block that provides the information required to access a data set, volume or directory using READ and WRITE. C: data set shut down: An indexed data set that has been marked (in main storage only) as unusable due .to an error. DCE: See directory control entry. DDB: See disk data block. d;rect access: (1) The access method used to READ or WRITE records on a disk or diskette device by specifying their location relative the beginning of the data set or volume. (2) In the Indexed Access Method, locating any record via its key without respect to the previous operation. (3) A condition in terminal I/O where a READTEXT or a PRIHTEXT is directed to a buffer which was previously enqueued upon by an IOCB. o primary and secondary indexed files (secondary index support). d;rectory: (1) A series of contiguous records in a volume that describe the contents in terms of allocated data sets and free spaces. (2) For the Indexed Access Method Version 2, a data set that defines the relationship between d;splay station: An IBM 4978, 4979, or 3101 display terminal or similar terminal with a keyboard and a video display. DHE: DSCB: See directory member entry. See data set control block. dynam;c storage: An increment of storage that is appended to a program,when it is loaded. end-of-data ;nd;cator: A code that signals that the last record of a data set has been read or written. End-of-data is determined by an end-of-data pointer in the DME or by the physical end of the data set. ECB: See event control block. EDL: See Event Driven Language. emulator: The portion of the Event Driven Executive supervisor that interprets EDL instructions and performs the function specified by each EDL statement. end-of-tape (EOT): A reflective marker placed near the end of a tape and sensed during output. The marker signals that the tape is nearly full. Glossary IG-265 event control block (ECB): A control block used to record the status (occurred or not occurred) of an event; often used to synchronize the execut i on of tasks. ECBs are used in conjunction with the WAIT and POST instructions. event driven language (EDL): The language for input to the Event Driven Executive compiler ($EDXASM), or the Macro and Host assemblers in conjunction with the Event Driven Executive macro libraries. The output is interpreted by the Event Driven Executive emulator. EXIO (execute input or output): EDl facility that provides user controlled access to Series/l input/output devices. An external label: A label attached to the outsi de of a tape that i dentifies the tape visually. It usually contains items of identification such as file name and number, creation data, number of volumes, department number, and so on. external name (EXTRN): The 1- to 8-character symbolic EBCDIC name for an entry point or data field that isnot defined within the module that references the name. FCA: See file control area. FeB: See file control block. file control block (FCB): The first block of an indexed file. It contains descriptive information about the data contained in the file. file control block extension: The second block of an indexed file. It contains the file definition parameters used to define the file. file manager: A collection of subroutines contained within the program manager of the Multiple Terminal Manager that provides common support for all disk data trans'fer operat ions as needed for transaction-oriented application programs. It supports indexed and direct files under the control of a single callable function. formatted screen image: A collection of display elements or display groups (such as operator p~ompts and field input names and areas) that are presented together at one time on a display device. free pool: In an indexed data set, a group of blocks that can be used for either data blocks or index blocks. These differ from other free blocks in that these are not initially assigned to specific logical positions in the file. free space: In an indexed file, records blocks that do not currently contain data. and are available for use. file: A set of related records treated as a logical unit. Although file is often used interchangeably with data set, it usually refers to an indexed or a sequential data set. free space entry (FSE): An 8-byte directory entry defining an area of free space within a volume or a device. file control area (FCA): A Multiple Terminal Manager data area that describes a file access request. general purpose interface bus: The IEEE Standard 488-1975 that allows various interconnected devices to be attached to the GPIB adapter (RPQ 002118). IG-266 SC34-0404 FSE: See free space entry. c o GPIB: See general purpose interface bus. group: A unit of 100 records in the spool data set allocated to a spool job. H exchange format: A standard format for exchanging data on diskettes between systems or devices. hardware timer: The timer features available with the Series/1 processors. Specifically, the 7840 Timer Feature card or the native timer (4952 only). Only one or the other is supported by the Event Driven Executive. immediate data: A self-defining term used as the operand of an instruction. It consists of numbers, messages or values which are processed directly by the computer and which do not serve as addresses or pointers to other data in storage. index: In an indexed file, an ordered collection of pairs of keys and pointers, used to sequence and locate records. index block: In an indexed file, an area that contains control information and index entries. These blocks are a multiple of 256 bytes. host assembler: C·) The assembler licensed program that executes in a 370 (host) system and produces object output for the Series/1. The source input to the host assembler is coded in Event Driven language or Series/l assembler language. The host assembler refers to the System/370 Program Preparation Facility (5798-NNQ). indexed access method: An access method for direct or sequential processing of fixed-length records by use of a record's key. host system: indexed data set: Any system whose resources are used to perform services such as program preparation for a Series/I. It can be connected to a Series/l by a communications link. IACB: See indexed access control block. IAR: See instruction address register. ICB: See indexed·access control block. lIB: See interrupt information byte. o image store: The area in a 4978 that contains the character image table. indexed access control block (IACS/ICB): The control block that relates an application program to an indexed file. Synonym for indexed file. indexed file: A file specifically created, formatted and used by the Indexed Access Method. An indexed file is sometimes called an indexed data set. index entry: In an indexed file, a key-pointer pair, where the pointer is used to locate a lower-level index block or a data block. index register (11, 12): Two words defined in EDl and contained in the task control block for each task. They are used to contain data or for address computation. input buffer: (1) See buffer. (2) In the Multiple Terminal Manager, an area for terminal input and output. Glossary IG-267 input output control block (IOCB): A control block containing information about a terminal such as the symbolic name, size and shape of screen, the size of the forms in a printer, or an optional reference to a user provided buffer. instruction address register (IAR): The pointer that identifies the instruction currently being executed. The Series/l maintains a hardware IAR to determine the Series/l assembler instruction being executed. It is located in the level status block (lSB). interactive: The mode in which a program conducts a continuous dialogue between the user and the system. internal label: An area on tape used to record identifying information (similar to the identifying information placed on an external label). Internal labels are checked by the system to ensure that the correct volume is mounted. interrupt information byte (lIB): In the Multiple Terminal Manager, a word containing the status of a previous input/output request to or from a terminal. invoke: To load and activate a program, utility, procedure, or subroutine. job: A collection of related program execution requests presented in the form of job control statements, identified to the jobstream processor by a JOB statement. job control statement: A statement in a job that specifies requests for program execution, program parameters, data set definitions, sequence of execution, and, in general, describes the IG-268 SC34-0404 environment required to execute the program. o job stream processor: The job processing facility that reads job control statements and processes the requests made by these statements. The Event Driven Executive job stream processor is $JOBUTIl. jumper: A wire or pair of wires which are used for the arbitrary connection between two circuits or pins in an attachment card. key: In the Indexed Access Method, one or more consecutive characters used to identify a record and establish its order with respect to other records. See also key field. See also key field. key field: A field, located in the same position in each record of an indexed file, whose content is used for the key of a record. level status block (LSB): A Series/l hardware data area that contains processor status. library: A set of contiguous records within a volume. It.contains a directory, data sets and/or available space. line: A string of characters accepted by the system as a single input from a terminal; for example, all characters entered before the carriage return on the teletypewriter or the ENTER key on the display station is pressed. link edit: The process of resolving external symbols in one or more object modules. A 11nk edit can be performed with $EDXlINK, whose output is a loadable program, or with $lINK, whose output is a single, composite object module that is the input to the update process. c o listener: A controller or active device on a GPIB bus that is configured to ~ccept information from the bus. multifile volume: A unit of recording media, such as tape'reel or disk pack, that contains more than one data file. load mode: In the Indexed Access Method, the mode in which records are loaded into base record slots in an indexed file. multiple terminal manager: An Event Driven Executive licensed program that provides support for transaction-oriented applications on a Series/I. It provides the capability to define transactions and manage the programs that support those transactions. It also manages multiple terminals as needed to support these transactions. load module: A single module having cross references resolved and prepared for loading into storage for execution. The module is the output of the $UPDATE or $UPDATEH utility. load point: (1) Address in the partition where a program is loaded. (2) A reflective marker placed near the beginning of a tape to indicate where the first record is written. c lock: In the Indexed Access Method, a method of indicating that a record or block is in use and is not available for another request. logical screen: A screen defined by margin settings, such as the TOPM, BOTM, LEFTM and RIGHTM parameters of the TERMINAL or IOCB statement. LSI: See level status block. member: A term used to identify a named portion of a partitioned data set (PDS). Sometimes member is also used as a synonym for a data set. See data set. menu: A formatted screen image containing a list of options. The user selects an option to invoke a program. o menu-driven: The mode of processing in which input consists of the responses to prompting from an option menu. multivolume file: A data file that, due to its size, requires more than one unit of recording media (such as tape reel or disk pack) to contain the entire file. new high key: A key higher than any other key in an indexed file. non-labeled tapes: Tapes that do not contain identifying labels (as in standard labeled tapes) and contain only files separated by tapemarks. null character: A user-defined character used to define the unprotected fields of a formatted screen. option selection menu: A full screen display used by the Session Manager to point to other menus or system functions, one of which is to be selected by the operator. (See primary option menu and secondary option menu.) output buffer: (1) See buffer. (2) In the Multiple Terminal Manager, an area used for screen output and to pass data to subsequent transaction programs. overlay: The technique of reusing a single storage area allocated to a program during execution. The Glossary IG-269 storage area can be reused by loading it with overlay programs that have been specified in the PROGRAM statement of the program or by calling overlay segments that have been specified in the OVERLAY statement of $EDXLINK. overlay area: A storage area within a program reserved for overlay programs specified in the PROGRAM statement or overlay segments specified in the OVERLAY statement in $EDXLINK. overlay program: A program in which certain control sections can use the same storage location at different times during execution. An overlay program can execute concurrently as an asynchronous task with other programs and is specified in the EDL ~ROGRAM statement in the main program. overlay segment: A self-contained portion of a program that is called and sequentially executes as a synchronous task. The entire program that calls the overlay segment need not be maintained in storage while the overlay segment is executing. An overlay segment is specified in the OVERLAY statement of $EDXLINK. parameter select;on menu: A full screen display used by the Session Manager to indicate the parameters to be passed to a program. part;t;on: A contiguous fixed-sized area of storage. Each partition is a separate address space. phys;cal timer: ware timer. primary f;le: An indexed file containing the data records and primary index. pr;mary f;le entry: For the Indexed Access Method Version 2, an entry in the directory describing a primary file. pr;mary ;ndex: The index portion of a pri mary fi Ie. Thi sis used to access data records when the primary key is specified. pr;mary key: In an indexed file, the key used to uniquely identify a data record. pr;mary-Ievel index block: In an indexed file, the lowest level index block. It contains the relative block numbers CRBNs) and high keys of several data blocks. See cluster. pr;mary menu: The program selection screen displayed by the Multiple Terminal Manager. primary option menu: The first full screen display provided by the Sessi on Manager. primary task: The first task executed by the supervisor when a program is loaded into storage. It is identified by the PROGRAM statement. Synonym for hard- post code: An indicator returned to the event control block to indicate the completion of a wait or an event. IG-270 prefind: To locate the data sets or overlay programs to be used by a program and to store the necessary information so that the time required to load the prefound items is reduced. SC34-0404 pr;or;ty: A combination of hardware interrupt level priority and a software ranking within a level. Both primary and secondary tasks will execute asynchronously within the system according to the priority assigned to them. o o process mode: In the Indexed Access Method, the mode in which records can be retrieved, updated, inserted or deleted. queue descriptor (QD): A control block describing a queue built by the DEFINEQ instruction. queue element (QE): processor status word (PSW): A 16-bit register used to (1) record error or exception conditions that may prevent further processing and (2) hold certain flags that aid in error recovery. program: A disk- or diskette-resident collection of one or more tasks defined by a PROGRAM statement; the unit that is loaded into storage. (See primary task and secondary task.) An entry in the queue defined by the queue descriptor. record: (1) The smallest unit of direct access storage that can be accessed by ~n application program on a disk or diskette using READ and WRITE. Records are 256 bytes in length. (2) In the Indexed Access Method, the logical unit that is transferred between $IAM and the user's buffer. The length of the buffer is defined by the user. program header: The control block found at the beginning of a program that identifies the primary task, data sets, st~rage requirements and other resources required by a program. program/storage manager: A component of the Multiple Terminal Manager that controls the execution and flow of application programs within a single program area and contains the support needed to allow multiple operations and sharing of the program area. recovery: The use of backup data to recreate data that has been lost or damaged. reflective marker: A small adhesive marker attached to the reverse (nonrecording) surface of a reel of magnetic tape. Normally, two reflective markers are used on each reel of tape. One indicates the beginning of the recording area on the tape (load point), and the other indicates the proximity to the end of the recording area (EOT) on the reel. protected field: A field in which the operator cannot use the keyboard to enter, modify, or erase data. PSW: See processor status word. QCB: See queue control block. QD: See queue descriptor. QE: See queue element. queue control block (QCB): A data area used to serialize access to resources that cannot be shared. See serially reusable resource. relative record number: An integer value identifying the position of a record in a data set relative to the beginning of the data set. The first record of a data set is r~cord one, the second is record two, the third is record three. reorganize: The process of copying the data in an indexed file to another indexed file in a manner that rearranges the data for more optimum processing and free space distribution. restart: Starting the spool facility by processing spool jobs Glossary IG-271 remalnlng in the spool data set from any previous spool session. return code: An indicator that reflects the results of the execution of an instruction or subroutine. The return code is placed in the task code word (at the beginning of the task control block). roll screen: A display screen which is logically segmented into an optional history area and a work area. Output directed to the screen starts di splay at' the begi nn i ng of the work area and cont i nues on down in a line-by-line sequence. When the work area gets full, the operator presses ENTER/SEND and its contents are shifted into the optional history area and the work area itself is erased. Output now starts agai n at the begi nni ng of the work area. SBIDCB: See sensor based I/O control block. second-level index block: In an indexed data set. the second-lowest level index block. It contai ns the addresses and hi gh keys of several primary-level index blocks. secondary file.: index. See secondary secondary index: For the Indexed Access Method Version 2. an indexed file used to access data records by their· secondary keys. Sometimes called a secondary file. secondary index entry: For the Indexed Access Method Version 2, this an an entry in the directory describing a secondary index. secondary key: For the Indexed Access Method Versi on 2. the key used to uniquely identify a data record. IG-272 SC34-0404 secondary option menu: In the Session Manager, the second in a series of predefined procedures grouped together in a hierarchical structure of menus. Secondary option menus provide a breakdown of the functions available under the session manager as specified on the primary option menu. secondary task: Any task other than the primary task. A secondary task must be attached by a primary task or another secondary task. sector: The smallest addressable unit of storage on a disk or diskette. A sector on a 4962 or 4963 disk is equivalent to an Event Driven Executive record. On a 4964 or 4966 diskette, two sectors are equivalent to an Event Driven Executive record. sensor based I/O control block rSBIDCB): A control block containing information related to sensor I/O operations. sequential access: The processing of a data set in order of occurrence of the records in the data' set. (1) In the Indexed Access Method, the prodessing of records in ascending collating sequence order of the keys. (2) When using READ/WRITE, the processing of records in ascending relative record number sequence. serially reusable resource (SRR): A resource that can only be accessed by one task at a time. SeriallY reusable resources are usually managed via (1) a QeB and ENQ/DEQ statements or (2) an ECB and WAIT/POST statements. service request: A device generated signal used to inform the GPIB controller that service is required by the issuing device. c o session manager: A series of predefined procedures grouped together as a hierarchical structure of menus from which you select the utility functions, program preparation facilities, and language processors needed to prepare and execute application programs. The menus consist of a primary option menu that displays functional groupings and secondary option menus that display a breakdown of these functional groupings. shared resource: A resource that can be used by more than one task at the same time. shut down: (~.~ See data set shut down. source module/program: A collection of instructions and statements that constitute the input to a compiler or assembler. Statements may be created or modified using one of the text editing facilities. / 1 il supervisor: The component of the Event Driven Executive capable of controlling execution of both system and application programs. system configuration: The process of defining devices and features attached to the Series/I. SYSGEN: See system generation. system generation: The processing of user selected options to create a supervisor tailored to the needs of a specific Series/l configuration. system partition: The partition that contains the supervisor (partition number 1, address space 0). spool session: An inv~cation and termination of the spool facility. talker: A controller or active device on a GPIB bus that is configured to be the source of information (the sender) on the bus. See service request. standard labels: Fixed length SO-character records on tape containing specific fields of information (a volume label identifying the tape volume, a header label preceding the data records, and a trailer label following the data records). ',1 subroutine: A sequence of instructions that may be accessed from one or more points in a program. spool lob: The set of print records generated by a program (including any overlays) while engueued to a printer designated as a spool device. SRQ: 0 to prevent accidental overlay by input data. Areas defined a~ input areas are not protected and are usually filled in by an operator. The entire screen is treated as a page of information. static screen: A display screen formatted with predetermined protected and unprotected areas. Areas defined as operator prompts or input field names are protected tapemark: A control character recorded on tape used to separate files. task: The basic executable unit of work for the supervisor. Each task is assigned its own priority and processor time is allocated according to this priority. Tasks run independently of each other and compete for the system resources. The first task of a program is the primary task. All tasks attached by the primary task a~e secondary tasks. Glossary IG-273 task code word: The first two words (32 bits) of a task's TCB; used by the emulator to pass information from system to task regarding the outcome of various operations, such as event completion or arithmetic operations. terminal server: A group of programs that perform all the input/output and interrupt handling functions for terminal devices under control of the Multiple Terminal Manager. terminal support: task control block (TCB): A con- trol block that contains information for a task. The information consists of pointers, save areas, work areas, and indicators required by the supervisor for controlling execution of a task. task supervisor: The portion of the Event Driven Executive that manages the dispatching and switching of tasks. TCB: See task control block. The support provided by EDX to manage and control terminals. See terminal. trace range: A specified number of instruction addresses within which the flow of execution can be traced. transaction oriented applications: Program execution driven by operator actions, such as responses to prompts from the system. Specifically, applications executed under control of the Multiple Terminal Manager. terminal: A physical device defined to the EDX system using the TERMINAL configuration statement. EDX terminals include directly attached IBM displays, printers and devices that communicate with the Series/l in an asynchronous manner. terminal control block (CeB): A control block that defines the device characteristi~s, provides temporary storage, and contains links to other system control blocks for a particular tar-minal. terminal environment block (TEB): A control block that contains information on a terminal's attributes and the program manager operating under the Multiple Terminal Manager. It is used for processing requests between the terminal servers and the program manager. terminal screen managert The component of the Multiple Terminal Manager that controls the presentation of screens and communications between terminals and transaction programs. IG-274 SC34-0404 transaction program: See transaction-oriented applications. transaction selection menu: A Multiple Terminal Manager display screen (menu) offering the user a choice of functions, such as reading from a data file, displaying data on a terminal, or waiting for, a response •. Based upon the choice of option, the application program performs the requested processing operation. unprotected field: A field in whi ch the operator can use the keyboard to enter, modify or erase data. Also called non-protected field. update: (1) To alter the contents of storage or a data set. (2) To convert object modules, produce~ as the output of an assembly or compilation, or the output of the linkage editor, into a form that can be loaded into storage for program execution and to update the o directory of the volume on which the loadable program is stQred. (1) Assembly language i nstructi ons included as part of an EDL program and invoked via the USER instruction. (2) A point in an IBM-supplied program where a user written routine can be given control. device. (2) To place a disk or diskette in a state where it is unknown by the system. user exit: (1) To change the status of a dey ice from onl i ne to offline. When a device is offline, no data set can be accessed on that vary online: To place a device in a state where it is available for use by the system. volume: A disk, diskette. or tape subdivision defined using $IHITDSK or $TAPEUTI. vary offline: volume label: A label that uniquely identifies a single unit of storage med; a. C\ / o Glossary IG-275 IG-276 SC34-0404 COMMON INDEX This index is common to the Event Driven Executive library. It is a combi nati on of entri es from the publ i cati ons 1 i sted below. Each entry references all of the publ i cat ions that conta in i nformat i on about the entry, so this index provides a cross-reference between the publications. Each page number entry contains a single or double letter prefix which identifies the publication where the subject can be found. The letter prefixes have the following meanings: • AM = Indexed Access Method Internal Design (Version 1) • CA • CT • ID = Commercial Applications Development Guide = Communications and Terminal Application Guide = Internal Design • IG = Indexed • • = Indexed Access Method Version 2 Internal Design LR = Language Reference M = Multiple Terminal Manager Internal Design • MC • = Operator's Reference PP = Program Preparation Guide SG = System Guide SI = SNA Internal Design SM = Sort/Merge Programmer's Guide SN = SNA and Remote Job Entry Guide T = S/370 Channel Attach Internal Design • c • • • • • • Access Method Verst on 2 Gui de 1M = Messages and Codes OR o IG-277 Special Characters $$EDXIT task error exit routine description 5G-253 extending the routine 5G-255 output example 5G-254 using 5G-254 $$EDXLIB system name 5G-284 $$EDXVOL system name LR-268, 5G-284 $A operator command OR-24, 5G-61 $AUTO data set PP-87, 5G-420 $B operator command OR-26, 5G-61 $B5CTRCE utility CT-235, OR-90, 5G-63 $B5CUT1 utility CT-237, OR-91, 5G-63 $B5CUT2 utility CT-239, OR-92, 5G-63 $C operator command OR-27, 5G-61 $CAPGM program CT-382 $CHANUT1 utility commands CA change device address CT-409 EN terminate utility CT-409 PR pri nt trace area CT-409 5P stop channel attach device CT-410 5T start channel attach device CT-410 TR enable/disable trace CT-410 description CT-408, OR-94 function 5G-63 invoking CT-408 $COBOL utility 5G-66 $COMPRE5 utility OR-95, 5G-63 $COPY utility OR-100, 5G-63 $COPYUT1 utility OR-lll, 5G-63 $CP operator command function 5G-61 syntax OR-29 $D operator command OR-30, 5G-61 $DA50I utility OR-119, 5G-63 $DEBUG ut i 1 i ty description OR-142 with PA5STHRU ($RMU) CT-314 $DICOMP display composer command descriptions CT-165 create partititioned data set member 5G-322 function SG-65 invoking CT-165 overview OR-165 $DIINTR utility CT-186, OR-167, 5G-65 $DI5KUT1 utility command description OR-168 create partititioned data set 5G-322 function 5G-63 used with $MIGAID utility 5G-441 $DI5KUT2 utility commands OR-181 description OR-180 function SG-63 printing I/O error logs 5G-258 $DI5KUT3 program description 5G-339 function 5G-57 IG-278 5C34-0404 input to 5G-340 request block contents 5G-341 return codes MC-225, 5G-343 Version 3 conversion considerations 5G-435 $DIUTIl utility CT-192, OR-191, 5G-322 $DUMP utility OR-193, 5G-65 $E operator command function 5G-61 with spool writer active CA-407 $EDIT1/$EDIT1N text editors control keys OR-202 data set requirements OR-199 function 5G-64 line editing commands OR-235 overview OR-199 $EDXA5M Event Driven Language compiler completion codes MC-208, PP-21 control statements ID-243 description PP-11 example 5G-414 function 5G-66 internals ID-233 invoking with $JOBUTIL PP-19 wi th $l PP-15 with session manager PP-18 language control data set PP-12 1 i st i ng program ($EOXlI5T) PP-24 'multiple overlay areas 10-249 options PP-13 output PP-20 overlay programs ID-246 overview PP-11, 5G-71 required data sets PP-11 syntax checking 10-246 use considerations $COPY definitions PP-22 instructions requiring support modules PP-23 using the compiler PP-13 work data set 10-275 $EOXAT5R supervisor routine ID-39 $EDXOEF hardware configuration editing 5G-180 internals ID-8 storage map ID-8 $EDXl language control data set PP-12 command syntax $EOXlINK AUTOCAll control statement PP-51 $EDXlINK comment control statement PP-51 $EOXlINK completion codes MC-209, PP-73 $EOXlINK control statements PP-49 $EDXlINK COpy control statement PP-52 $EOXlINK data sets PP-48 $EDXlINK ENO control statement PP-53 $EDXLINK INCLUDE control statement PP-53 $EOXLINK lINK control statement PP-54 $EOXlINK linkage editor $JOBUTIl interface PP-65 $l interactive interface PP-62 to" " J o o $L non-interactive interface PP-61 advantages SG-74 AUTOCALL option data set PP-74 data set record format PP-74 processing PP-75 system data set PP-75 completion codes MC-209 control statements AUTOCALL PP-51 comment PP-51 COPY PP-52 END PP-53 INCLUDE PP-53 LINK PP-54 OVERLAY PP-55 RESET PP-56 VOLUME PP-56 data sets PP-48 description OR-241 function SG-66 interactive $JOBUTIL interface PP-67 interactive session manager interface PP-68 internals ESD item types ID-300 hash table ID-304 include table ID-306 modules ID-311 OCT table entry ID-309 invoke usi ng $JOBUTIL PP-65 $JOBUTIL interactive PP-67 $JOBUTIL non-interactive PP-66 $L interactive PP-62 $L non-interactive PP-61 session manager PP-68 link map PP-70 non-interactive $JOBUTIL interface PP-66 non-interactive session manager interface PP-68 operator termination PP-69 overview SG-72, SG-73 primary control statement data set description PP-48 example of PP-57 requesting a link edit PP-60 secondary control statement data set description PP-48 example of PP-59 specifying dynamic storage PP-77 using $LINK control statement data sets PP-76 $EDXLINK OVERLAY control statement PP-55 $EDXLINK RESET control statement PP-56 $EDXLINK VOLUME control statement PP-56 $EDXLIST program PP-24, SG-66 $EDXNUC supervisor data set in link-edit PP-89 in system generation SG-192 $FONT utility SG-66 $FORT utility SG-66 $FSEDIT full-screen editor data set requirements OR-26 0 function SG-64 options BROWSE OR-265 EDIT OR-266 END OR-272 READ OR-268 SUBMIT OR-270 WRITE OR-269 options and commands summary OR-263 overview OR-259 primary commands OR-268 program function (PF) keys OR-262 scrolling OR-261 $GPIBUTI utility commands CT-134 description CT-134 example CT-145 overview SG-66 use in debugging applications CT-144 $HCFUTI utility CT-367, OR-294, SG-64 $HXUTI utility SG-63 $IAMSTGM module removal IG-206 $IAMUTI utility commands AL IG-151 SF IG-144 CR CA-I05 DE IG-153 DF CA-106, IG-146 DI CA-I08, IG-149 DR IG-150 EC CA-109, IG-160 EF IG-161 IE IG-155 LE IG-156 LO CA-110, IG-162 NP IG-166 PG IG-167 PP IG-168 PS IG-169 RE CA-113, IG-170 RO CA-112, IG-171 SE CA-114, IG-173 UE IG-158 UN CA-120, IG-184 completion codes CA-121, IG-186, Me-210 description CA-103 function SG-63 overview CA-14, OR-317 $ID statement coding description LR-36 for problem determination SG-239 $IDEF $EDXASM instruction definition description ID-267 instruction format 10-252 $ILOG IG-216 $IMAGE subroutines example of using CT-55 general description CT-44 use for device independence in terminal support CT-41 $IMAGE ut i 1 i ty commands OR-325 description OR-321 example SG-404 function SG-66 Common Index IG-279 program function keys OR-340 $IMOATA subroutine description CT-53 example CT-42, CT-54, CT-SS, SG-391 return codes CT-54, MC-239 $IMOEFN subroutine description CT-48 example CT-49, CT-SS, SG-391 $IMOPEN subroutine description CT-46 example CT-41, CT-47, CT-SS, SG-390 return codes CT-47, MC-239 $IMPROT subroutine description CT-SO example CT-42, CT-Sl, CT-SS, SG-391 return codes CT-52, MC-240 $INDEX subroutine, $EDXASM ID-2S9 $INITDSK utility commands OR-34S description OR-343 function SG-63 used in Version 3 conversion SG-438 $INITIAL dataset description SG-174 with session manager OR-46 $IOTEST utility 'OR-368, SG-6S $JOBUTIL job stream processor commands OR-377 completion codes MC-212 example SG-424 setup procedure OR-376 usage example OR-396 $JOBUTIL utility usi ng to invoke Sort/Merge SM-42 $L operator command description OR-32 function SG-61 syntax OR-32 usi ng to invoke sort/merge SM-40 $LEMSG data set PP-87 $LINK autocall facility PP-I01 autocall option PP-87 combining program modules PP-S completion codes MC-213, PP-97 control records PP-88 data set requirements PP-86 description OR-398, PP-8S elimination of duplicate CSECTs PP-6 example SG-419 formatting modules for $UPDATE PP-85 function SG-66 invoking with $JOBUTIL PP-9S wi th $L PP-93 with session manager PP-94 multiple CSECTs PP-6 object module record format ID-381 output PP-95 output listing PP-96 overview PP-5, SG-72 storage map PP-96 use considerations PP-4 $LOADER program description ID-16 IG-280 SC34-0404 location SG-206 module description ID-72 $LOG utility descri pti on 10-393', OR-400 function SG-65 log data set OR-400 $LPARSE subroutine, $EDXASM 10-266 $MIGAI0 utility commands SG-444 description SG-441 error handling SG-4S2 examples SG-445 overview SG-436 $MIGCOPY utility description SG-4S8 examples SG-460 overview SG-436 $MIGRATE utility description SG-457 overview SG-436 $MOVEVOL utility OR-402, SG-63 $MTMUTl utility description OR-409 function SG-66 $NETCMO (application link to SNA) SN-12 $P operator command OR-33, SG-61 $PACK subroutine CT-59 $PDS uti Ii ty allocating a data set SG-322 command descriptions SG-334 example SG-333 return codes MC-226 $PFMAP utility OR-410, SG-66 $PL/l utility SG-66 $PREFIND utility description PP-121 function SG-66 use considerations PP-129 $PRT2780 utility CT-343, OR-413, SG-64 $PRT3780 utility CT-343, OR-414 $RECON utility OR-415, SG-66 $RJESNA utility addi ng a error exi t routine SN-217 control record processing SN-206 error handling SN-216 hardware and software requirements SN-202 host considerations SN-22S how to install SN-221 how to start SN-207 how to terminate SN-216 job entry systems supported SN-202 messages SN-239 operator commands SN-210 overview SG-64, SN-201 receiving compacted data SN-223 sample sessions SN-218 task error exit SN-217 workstation features SN-203 workstation functions SN-203 card reader SN-204 console SN-203 printer SN-204 punch SN-20S writing decompaction routines SN-223 $RJE2780 utility c ' " '. C ;/ 0" '· I " commands CT-339 description CT-337, OR-416 host subsystems CT-338 $RJE3780 utility commands CT-339 description CT-337, OR-418 function SG-64 host subsystems CT-338 $RMU See Remote Management Utility $RMUPA CT-297 $S operator command entering commands and parameters CA-412 function SG-61 5ubcommands ALT CA-415 DALL CA-418 DE CA-419 DG CA-420 DISP CA-421 HOLD CA-426 KEEP CA-427 REL CA-429 STOP CA-430 WRES CA-431 WSTP CA-433 WSTR CA-435 $SMJOBR program OR-73 $SMLOG program OR-73 $SMMAIH program OR-46 $SMMPRIM, primary option menu OR-55 $SMM02, secondary option menu OR-57 $SMM03, secondary option menu OR-60 $SMM04, secondary option menu OR-62 $SMM05, secondary option menu OR-63 $SMM06, parameter selection menu OR-64 $SMM07, parameter selection menu OR-65 $SMM08, communication utilities option OR-67 $SMM09, secondary option menu OR-68 $SHADEF, SHA configuration file SH-I03 $SPLUTI utility commands CA CA-440 CD CA-441 DS CA-441 EN CA-440 GS CA-440 MA CA-441 MJ CA-441 RS CA-443 SO CA-441 description OR-427 functions CA-437, SG-66 invoking CA-440 $SPOOL spool manager functions CA-400 internals ID-13S starting spool facility CA-401 terminating spooling CA-402 $SSIHIT utility description SG-441 overview SG-436 $STOREMAP storage map ID-26 $SYSCOM system common data area ID-13, SG-172 $SYSLOG system logging device SG-116 $SYSLOGA alternate system logging device 5G-116 $5YSLOGB alternate system logging device SG-116 $SYSPRTR system printer SG-116 $SIA5M 5eries/l macro assembler data sets required PP-28 description PP-27 function SG-67 internals ID-279 output PP-38 overview SG-7 $SIS1UTI utility commands CT-I0l description CT-I0l, OR-425 function SG-66 invoking CT-I01 $T operator command OR-36, SG-61 $TAPEUTI utility commands OR-432 description OR-431 function 5G-58, SG-63 used in Version 3 conversion SG-439 $TERMUTI utility OR-462, SG-66 $TERMUT2 utility function 5G-66 process 4978 image or control store OR-468 restore 4974 image OR-468 $TERMUT3 utility OR-487, SG-66 $TRAP utility OR-491, SG-6S functions SG-6S $U operator command OR-37, SG-61 $UHPACK subroutine description CT-S8 example CT-S9 $UPDATE utility completion codes MC-216, PP-lIS data sets required PP-I05 description OR-494, PP-I0S function 5G-67 output PP-115 use considerations PP-116 $UPDATEH utility (host) PP-117, SG-67 $VARYOFF operator command description OR-38 function SG-61 syntax OR-38 $VARYOH operator command description OR-40 function 5G-61 syntax OR-40 with standard labeled tape SG-296 $VERIFY utility example CA-127 functions CA-124, OR-498, 5G-6S invoking CA-12S, OR-499 messages CA-134 storage requirements CA-139 $W operator command OR-44, SG-62 /MCONCAT control record SN-206 /MEND control record SN-206 11 index register 1 LR-7 12 index registe~ 2 LR-7 Common Index IG-281 A-conversion lR-169 A/I See analog input A/O See analog output AB command ($SlS1UTl) CT-I02 ABORT command ($RJESNA) SN-210 ABORT command ($RJE2780/$RJE3780) CT-339 abort i ng Seri es/1 to Seri es/1 write CT-I02 aborting task level (SVCABEND) ID-40 absolute record copying OR-101 accepting host initiated transactions SN-40 access level, BSC CT-214 Access Method, Indexed See Indexed Acc~ss Method accessing system control blocks ID-331 acknowledgment, message SN-33 ACQUIRE parameter, NETINIT SN-21 action codes I/O error exit SM-143 input exit SM-140 output exit SM-142 ACTION, Multiple.Termtnal Manager CAll coding description CA-225 internals M-10 overview of CA-207 activating a stopped task OR-152 activating error logging, $lOG OR-400 activating paging IG-167 activating TRAP function of storage dump OR-491 activation, session SN-17 active, task supervisor state ID-30 ACTlU command SN-134 ACTPU command SN-134 AD command ($DICOMP) CT-166 AD command ($PDS) SG-330 AD command ($TERMUT2) OR-472 AD subcommand ($DICOMP) CT-171 ADAPTER statem~nt SG-90 ADD data manipulation instruction coding description LR-38 overview lR-14 precision table lR-39 adding a new device, Multiple Terminal Manager M-6 adding a null data set on tape volume OR-461 adding member to data base (graphics) CT-166 adding session manager options OR-80 adding support for new terminals coding GENxxxx ID-116 coding the support module ID-114 implementation ID-113 modifying the TERMINAL statement ID-116 ADDRESS parameter, SHAPU SN-105 address relocation translator SG-43 IG-282 SC34-0404 addressing indexing feature lR-7 addrout sort See SORTA (record address sort) ADDV data manipulation instruction coding description lR-38 index register use lR-42 overview lR-14 precision table lR-42 AF command ($INITDSK) OR-354 AI See analog input Al command ($DICOMP) CT-167 Al command ($DISKUTl) OR-172 Al command ($DIUTIl) CT-195 Al command ($IAMUT1) IG-151 Al command ($JOBUTIl) OR-378 ALIGN statement coding description LR-45 overview lR-14 aligning spool job forms CA-415 ALLOCATE function, Remote Management Utility CT-258, ID-200 allocating a directory IG-69 allocating data set ($RMU) CT-258 allocating fixed head volume OR-354 allocating journal data set SN-212 allocating member of partitioned data set SG-334 with $DIUTIl command CT-195 allocating secondary index directory IG-151 allocating volume OR-353 allocating OR-354 altering alternate tracks OR-136 altering member (graphics) CT-167 altering spool job printing CA-415 altering terminal configuration OR-462 alternate collating sequence statement See AlTSEQ (alternate collating sequence) statement alternate sectors SG-49 ALTSEQ (alternate collating sequence) statement affect on control field contents SM-87 ASCII and EBCDIC differences SM-88 definition SM-8 EBCDIC character codes SM-88 example of use SM-8 example, specifying SM-88 how to specify SM-87 AlTSEQ statement, position descriptions position 1 - statement type SM-87 position 3-4 - From character SM-88 positions 35-80 comments SM-90 positions 5-6 - To character SM-88 positions 7-34 - additional characters SM-9Q analog input AT $IOTEST command OR-373 control block ID-162 description SG-357 IODEF statement SG-361 /",(- ". ~~/ o o overview SG-58 SBIO instruction SG-367 analog output AO $IOTEST command OR-368 control block ID-162 description SG-357 IODEF statement SG-361 SBIO instruction SG-367 SENSORIO statement SG-IOl AND instruction coding description LR-46 overview LR-14 AO See analog output application program automatic initialization and restart SG-174 introduction LR-1 preparation of PP-l size estimating SG-225 structure LR-2 application program major node SN-323 application program stub, Mutliple Terminal Manager M-9 application, identifying host SN-17 arithmetic operators LR-4 ascending/descending sequence option SM-60 ASCII (American National Standard Code), changing SM-8 ASCII terminal codes SG-114 configuring SG-113 definition CT-6 devices supported SG-17 graphics CT-151, SG-81 ASMERROR instruction, $EDXASM ID-256 assembler See $EDXASM and $SIASM assigning $RJESNA printer SH-213 assigning alternate for defective 4963 sector OR-136 assigning DEFINE key in 4978 control store OR-472 asynchronous communications See terminal support AT command ($DEBUG) OR-149 ATTACH instruction coding description LR-48 internals ID-35 overview LR-28, SG-30 attention event sequence, example SN-40 attention handling, terminal I/O SG-62 attention handling, terminal support internals 10-102 See also interrupt servicing attent i on list processing for terminal support CT-20, CT-21 See also ATTHLIST statement ATTNEV parameter, NETINIT SH-20 ATTHLIST statement coding description. LR-50 overview LR-28, SG-30 use in terminal support CT-21 with a two task program lR-405 ATTR define attribute characters, $IMAGE command OR-326 attribute characters, 3101 CT-36, CT-38 AUTOCAlL control statement ($EDXLINK) PP-51 AUTOCAlL data set ($EDXLIHK) PP-74 AUTOCALl data set record format ($EDXLINK) PP-74 autocall feature description PP-87 statement requirement (WXTRN) LR-399 AUTOCAlL option ($EDXlINK) PP-74 AUTOCALL processing ($EDXLINK) PP-75 automatic initialization and restart SG-l74 automatic update indicator IG-69 AV command ($INITDSK) OR-353 B line command ($FSEDIT) OR-280 Backing up disk or diskette volume on tape OR-457 backup IG-94 backup dump restore utility, $MOVEVOL OR-402 base records, indexed file definition of CA-33, IG-61 loading CA-33, IG-61 base SNA function codes SN-21, SN-87 basic exchange diskette data set copy utility OR-107 exchanging between systems SG-54 basic supervisor and emulator See supervisor/emulator batch job processi ng See $JOBUTIl job stream processor BCB (buffer control block internals T-35 BEEP subroutine CA-466 BEEP, Multiple Terminal Manager CAll coding description CA-229 internals M-9 overview of CA-207 BF command ($IAMUT1) IG-144 BID command SH-134 binary synchronous communications access level CT-214 .automatic retry SG-20 BSCAM/BSCAMU module descriptions ID-64 BSClIHE statement SG-92 conversat i onal \ operations CT-216 device data block (BSCDDB) description ID-167 listing 10-340 features of BSCAM CT-214, SG-19 instruction formats 10-174 instruction overview CT-219 instruction processing (BSCAM) 10-177 internals 10-167 Common Index IG-283 multipoint operations CT-215, SG-19 overview CT-I0, SG-82 point-to-point lines SG-19 Remote Management Utility requirements CT-250 return codes CT-246, MC-227 sample programs CT-300 special labels for 10-179 storage requirements SG-220 test utility, $BSCUT2 CT-239 trace printing utility, $BSCUTI CT-237 trace utility, $BSCTRCE CT-235 transmission protocol 10-184 utilities overview CT-213 BIND checking SN-120 BIND command SN-135 BIND parameter control block, BND SI-282 BIND parameters SN-121 BIND post codes MC-218, SN-94 BIND processing SN-142 blank sc~een, $B operator command OR-26, SG-6l BLCC, block lock line count AM-lO, IM-ll BLOTXT subroutine, $EOXASM 10-263 BLINK subroutine CA-467 BLINK, Multiple Terminal Manager CALL coding description CA-231 internals M-10 overview CA-207 block and record locks AM-lO, 1M-II block header, Indexed Access Method description AM-6, IM-6 equates AM-74 blocked sequential IG-164 BLP See also bypass label processing tape management utility OR-431 BNO, BIND parameter control block 51-282 BOT (beginning-of-tape) LR-26 bottom editor subcommand ($EOIT1/N) OR-213 boundary requirement, full-word DO LR-21 IF LR-21 PROGRAM LR-266 BP command ($OEBUG) OR-151 BPIACB, block place header AM-10, 1M-II bracket initiation, PLU SN-128 bracket initiation, SLU SN-128 bracket protocol SN-128 brackets definition SN-l27 error conditions SN-130 indicator rules SN-128 initiatio~ rules SN-128 termination rules SN-129 branch vector table, BVT SI-286 BROWSE option ($FSEOIT) OR-265 BSC See binary synchronous communications BSC 8-line control data rates CT-12 use with #2094 CT-12 IG-284 SC34-0404 BSCAM See binary synchronous communications BSCCLOSE instruction coding description CT-219 expanded format 10-174 processing 10-178 BSCOOB (binary synchronous device data block) description 10-167 listing 10-340 BSCEQU (BSCLINE equate table) LR-431 BSCIA immediate action routine 10-178 BSCI0CB statement CT-218, ID-174 BSCLINE statement SG-92 BSCOPEH instruction coding description CT-220 expanded format 10-175 processing 10-178 BSCREAO instruction coding description CT-221 example CT-234 expanded format 10-175 processing 10-178 required buffers CT-220 types of BSC read operations CT-223 BSCWRITE instruction coding description CT-226 example CT-233 expanded format 10-176 . processing 10-178 required buffers CT-220 types of BSC wr i te operations CT-227 BSF (backward space file) LR-65, OR-449 BSR (backward space record) LR-65, OR-449 BTAM/BTAM-ES, channel attach considerations CT-418 BTE (buffer table entry) description AM-6, IM-6 equates AM-72, IM-114 BU command ($OIUTIL) CT-195 BUFF pa rameter NETCTL SN-48 NETGET SN-37 NETPUT SN-30 buffer allocation in Remote Management Utility CT-255 areas, Multiple Terminal Manager M-23, M-37 input, Multiple Terminal Manager CA-206 management, terminal I/O 10-103 output, Multiple Terminal Manager CA-206 buffer control block (BCB) internals T-35 BUFFER statement coding description LR-54 overview LR-13 buffer table entry (BTE) descripti.on AM-6, IM-6 equates AM-72, IM-114 buffers, specifying receive SN-114 buffers, specifying send SN-114 BUFNO parameter, SHAPU SN-106 o r"" \~' c· o c' o BUFSIZ parameter, SNAPU SN-I06 BUILD option ($EDXASM) PP-14 building data member (graphics) CT-195 bus See General Purpose Interface Bus BVT, branch vector table SI-286 bypass label processing (BLP) description SG-300 example SG-311 BYTES parameter, HETGET SN-37 BYTES parameter, NETPUT SH-30 CA attention request ($COPYUTI) OR-113 CA attention request ($EDXASM) PP-13 CA attention request ($EDXlIST) PP-25 CA attention request ($FSEDIT) OR-270 CA command ($CHANUTl) CT-409 CACBl and CACB2 channel attach con'fi gurati on statements CT-413 CACLOSE instruction coding description CT-400 overview CT-400 return codes CT-442 CAD command ($COPYUTl) OR-113 CADIOCB (channel attach device I/O control block) data map T-41 description T-35 C~IOCB (channel attach I/O control block) statement coding description CT-399 data map T-59 example CT-399 internals T-35 overview CT-399 CALL ($COPYUTl) OR-118 CALL instruction coding description LR-58 overview lR-20, SG-41 program lR-58 subroutine LR-58 CALLFORT instruction coding description LR-6l overview LR-20 CANCEL command SN-135 canceling a listing OR-202 canceling dump OR-195 canceling list option OR-270 canceling program OR-27 cancelling messages SN-52 CAOPEN instruction coding description CT-400 example CT-400 overview CT-400 return codes CT-440 CAP command ($COPYUTl) OR-113 CAPCB (channel attach port control block) data map T-55 description T-35 CAPRNT instruction coding description CT-401 example CT-402 overview CT-401 return codes CT-440 card reader function, $RJESNA SN-204 CAREAD instruction coding description CT-402 example CT-403 illustration CT-389 overview CT-402 return codes CT-440 CASTART instruction coding description CT-404 example CT-404 overview CT-404 return codes CT-440 CASTOP instruction coding description CT-405 example CT-405 overview CT-405 return codes CT-440 CATRACE instruction coding description CT-406 example CT-406 overview CT-406 return codes CT-440 CAWR1TE instruction coding description CT-407 example CT-407 overview CT-407 return codes CT-440 CB command ($DISKUT2) OR-182 CC line command ($FSED1T) OR-280 CCB (control block) Multiple Terminal Manager M-13 CCB (terminal control block) description ID-115 GPIB terminal control block 10-119 listing 10-341 spool extension 10-148 CCBEQU (terminal control block equate table) LR-432 CO command ($COPY) OR-103 CO command ($TAPEUTl) OR-433 CDATA, Multiple Terminal Manager CAll coding description CA-233 internals M-9 overview of CA-207 CORRM equate listing, Remote Management Utility CT-330 CG command ($COPYUTl) OR-116 CH command ($BSCUT2) CT-244 CH command ($GPIBUTl) CT-135 CH command ($UPOATEH) PP-120 chain properties SN-126 CHA1H supervisor routine 10-44 chain, ECB/QCB/TCB ID-44 CHAIHO supervisor routine 10-44 CHAINE supervisor routine 10-44 CHA1NP supervisor routine 1D-44 chains, definition SH-126 chains, receiving SN-147 chains, send operation SN-127 chains, sending SN-144 changing $OEBUG base address OR-160 changing character string with $EOITI/N OR-214 with $FSED1T OR-273 changing execution sequence OR-153 changing GP1B partition CT-135 Common Index IG-285 changing graphics or report display profile CT-165 changing hardcopy device with $BSCUT2 CT-244 with $TERMUTI OR-467 changing host library PP-120 changing logical device name OR-466 changing output volume PP-I07 changing partition assignment OR-29 changing realtime data member name SG-332 changing spool job forms code CA-415 id heading CA-415 number of copies CA-415 output device CA-415 changing tape label support OR-442 changing terminal address assignment OR-465 changi ng volume with CV ($DISKUTl) OR-172 with CV ($DISKUT2) OR-181 with CV $UPDATE PP-I07 with CV $UPDATEH PP-118 wi th CV command ($BSCUTl) CT-239 changing 4978 key definition OR-473 Channel Attach $CAPGM CT-382 BTAM considerations CT-418 CAREAD illustration CT-389 CAWRITE illustration CT-389 closing a port CT-396 control blocks data maps T-39 descriptions T-35 structure T-36 device (4993) CT-380 functions supported CT-379 instruction expansions T-29 instructions, listed CT-397 issue I/O read CT-387 write CT-388 link module descriptions T-18 link-editing CT-416 module descriptions link modules T-18 overlay programs T-32 program modules T-8 utility program modules T-26 opening a port CT-386 overlay program descriptions T-32 overview CT-12, CT-379, SG-83 post codes CT-435, MC-219 preparing an application program assembling CT-416 link-editing CT-416 problem determination error logging CT-428 online test (OLTEP) CT-434 trace CT-419 program module descriptions T-8 return codes CT-437, MC-229 sample programs CT-442 starting a device CT-386 1G-286 SC34-0404 stopping a device CT-396 storage requirements SG-222 system generation ~T-412 utility See $CHANUTI utility utility program module descriptions T-26 character constants LR-85 character image table OR-242 $FONT utility OR-242 CHASE command SN-135 CHGPAN, Multiple Terminal Manager CALL coding description CA-236 internals M-9 overview of CA-207 C1CS/VS considerations SN-172 CICS/VS support SN-155 CL primary command ($FSEDIT) OR-275 class interrupt vector table ID-ll CLEAR command SN-135 clear to send timeout SN-I06 clearing data set OR-181 clearing screen OR-26 CLEART subroutine CA-468 CLOSET subroutine CA-469 CLSRU close tape data set LR-65 cluster controller SI-l clustered records IG-18 CM command ($COPYUTl) OR-115 CM command ($DIUTIL) CT-197 CMDEQU LR-432 CMDSETUP emulator entry point ID-14 CNCTYPE parameter, SNAPU SN-I05 CNG command ($COPYUTl) OR-116 CO command ($RJE2780/$RJE3780) CT-341 COBOL estimating storage requirements SG-228 execution requirements SG-24 overview SG-9 program preparation requirements SG-24 use with Multiple Terminal Manager CA-283 code translation tables ID-114 terminal I/O 1D-I03 code words, task LR-9 coding the TERMINAL statement SG-116 collating sequence changing SM-8 specifying in header SM-67 COLS line command ($FSEDIT) OR-282 COMMAND command ($RJESNA) SN-211 COMMAND command ($RJE2780/$RJE3780) 'CT-340 command table, emulator description ID-14 emulator setup routine 1D-52 listing ID-323 commands processed by Series/l SNA SN-132 comment control statement ($EDXLINK) PP-51 comments in comment statement SM-68 ( '''.:: ,./ o in other specification statements SM-76 commercial application facilities CA-2 commercial products SG-4 common AM-23 common area, $EOXASM ID-236 common area, Multiple Terminal Manager M-16, M-34 common data area See $SYSCOM system common data area common emulator setup routine command table 10-14 description 10-52 communication products SG-4 communications error function 10-209 communications support SG-19 communications utilities $BSCTRCE CT-235 $BSCUT1 CT-237 $BSCUT2 CT-239 $HCFUT1 CT...;367 $PRT2780 CT-343 $PRT3780 CT-343 $RJE2780 CT-337 $RJE3780 CT-.337 $RMU CT-249 session manager OR-66 summarized SG-63 communications vector table description 10-12 listings 10-319 compacted data, processing SH-223 compaction SN-222 compiler See $EOXASM Event Oriven Language compiler" compiler common area, $EOXASM 10-236 completion codes $EOXASM MC-20a, PP-21 $EOXLINK MC-209, PP-73 $IAMUT1 CA-121, IG-186, MC-210 $JOBUTIL MC-212 $LINK MC-213, PP-97 $UPOATE MC-216, PP-115 See also post codes, return codes component definition SN-160 component flow, Multiple Terminal Manager M-3 compressed byte string CT-60 compressing library OR-95 compression SH-222 CON CAT instruction coding description CT-153 overview CT-153 concatenating data sets SH-206 concatenation loops, avoiding SN-215 concurrent execution lR-28 conditional force continuation SM-115 data types allowed SM-109 definition SM-118 how to specify SM-118 keep/drop from output record SM-64 length, maximum in a field statement SM-109 specifying in header SM-60 total in include set SM-118 number, maximum SM-118 required entries in field statement SM-109 rules for SM-115 configuration statements SG-89 configuration, system See system configuration configuring terminal OR-463 connecting Series/1 support SI-3 connecting to indexed file CA-54, IG-87 consecutive frames, specifying SN-106 console function, $RJESNA SN-203 control block and parameter tables list lR-431 control block linkages, Indexed Access Method AM-9, IM-9 control blocks accessing 10-331 analog input 10-162 analog output 10-162 Binary Synchronous Communications CBSCOOB) 10-340 chaining 10-334 Channel Attach T-37 data set control block (OSCB) data maps T-39 descriptions 10-88, M-13, M-17, T-35 equates M-32 listing ID-360 device data block (OOB) description 10-84 listing 10-357 digital input/output control block ID-162 EXI0 device data block 10-153 GPIB terminal control block 10-119 including ID-334 Indexed Access Method description IM-5 equates IM-81 Multiple Terminal Manager description M-13 equates M-33 printer spooling descriptions 10-143 listings 10-371 process interrupt control block ID-162 Remote Management Utility description 10-191 listing ID-366 sensor I/O DOB listing 10-358 sensor-based I/O control block (SBIOCB) 10-159 tape device data block (TOB) description 10-92 listing 10-377 task control block (TCB) description 10-32 listing 10-375 terminal control block (CCB) description 10-115 listing 10-341 control field data types allowed SM-110 examples SM-14 how to specify SM-126 keep/drop from output record default drop with variable records SM-65 Common Index IG-287 specifying in header SM-64 when to drop SM-65 length, maximum in a field statement SM-II0 specifying in header SM-60 total in include set SM-117 number, maximum SM-117 purpose SM-I05 required entries in field statement SM-I09 rules SM-115 types SM-I05 control flow Indexed Access Method description AM-5 equates AM-51 with data paging IM-33 control flow, access method AM-I, IM-l CONTROL IDCB command LR-201, 5G-58 control keys for test editors OR-202 control operation internals, GP1B 1D-121 control operations, NETCTL SN-49 CONTROL option ($EDXASM) PP-14 control records, $LINK PP-88 CONTROL tape instruction LR-64 control, device instruction level LR-18 controlling echo mode CA-I09, IG-160 controlling message exchange 5N-9, 5N-47 conversational operations, B5C CT-216 conversion algorithm for graphics ID-225 conversion module (EBFLCVT) ID-65 conversion, terminal I/O binary/EBCDIC ID-l04 converting floating point/binary 10-227 converting program modules PP-7 converting to Version 3 $MIGAID 5G-44l $MIGRATE SG-457 data 5G-436 CONVTB instruction coding description LR-70 internal format ID-229 overview LR-13 return codes LR-70, MC-232 CONVTD instruction coding description LR-75 internal format ID-229 overview LR-13 return codes LR-75, MC-232 copy code library ($EDXA5M) 10-244 COPY control statement ($EDXLINK) PP-52 COpy instruction coding description LR-80 overview LR-20 copying block of text OR-280 copying data set OR-l03 copying data sets with allocation OR-Ill IG-288 5C34-0404 copying line of text OR-280 copyi ng member with $COPYUTI OR-112 with $DIUTIL CT-197 copying text OR-216 copying volume OR-I05 correlation table entry, CTE 51-290 correlation table entry, format 5N-124 correlation tables 5N-124 count record, Remote Management Utility CT-253, CT-298 CP command ($DIUTIL) CT-196 CP command ($GPIBUTl) CT-135 CR command ($IAMUTl) CA-I05 creating character image tables OR-242 creating indexed file CA-l05 creating secondary index IG-76 creating source data set OR-266 creating stand-alone dump diskette OR-120 creating supervisor for another Series/l 5G-2l4 creating task error exit routines 5G-256 cross-partition services DEQ LR-92 description and examples lR-432 ENQ lR-120 MOVE LR-225 overview LR-ll P05T lR-240 READ LR-290 WAIT lR-385 WHERES LR-388 WRITE LR-391 C5ECT list, supervisor 5G-465 C5ECT statement coding description LR-82 overview LR-20 CT command ($TAPEUTI) OR-435 CT command ($TERMUTl) OR-463 CTE parameter, SNALU 5N-115 CTE, correlation table entry 51-290 customized system generation 56-194 CV command ($B5CUTl) CT-237 CV command ($COPY) OR-105 CV command ($DI5KUTl) OR-172 CV command ($DI5KUT2) OR-18l CV command ($UPDATE) PP-107 CV command ($UPDATEH) PP-118 cyclq steal status word (C5SW) description 5G-267 finding 5G-268 CYCLE, Multiple Terminal Manager CALL coding description CA-238 internals M-I0 overview CA-206 cylinder 5G-46 cylinder track sector (CT5) disk 5G-49 diskette 5G-52 ( .-'J!" iii', c 0: D/I D/O 0',',:, , ,'I See digital input See digital output DACTLU command SH-136 DACTPU command 5H-136 DAT, 5HA data area SI-294 data definition statements LR-13 floating-point LR-15 floating-point arithmetic instructions data representation LR-16 operations using index registers LR-16 return code introduction LR-16 formatting functions instructions LR-13 module names LR-14 integer LR-14 integer and logical instructions LR-14 manipulation instructions data representation LR-15 overflow LR-15 vector LR-15 overview LR-13 terminal input LR-32 terminal output LR-31 Data Base/Data Communication (DB/DC) 51-1 Data Collection Interactive (DCI) overview SG-13 storage requirements 5G-222 data communication architecture 51-1 data control block, DCB SI-302 data exchange SG-23 data fields definition SM-I05 determining output record format and content SM-I05 how to specify SM-124 rules SM-125 data files for $SlASM 10-280 data formatting return codes MC-232 data interchange SG-23 data link buffer, DLB SI-317 data link terminal, DLT SI-327 data management SG-45 data management utilities $COMPRES OR-95 $COPY OR-IOO $COPYUTI OR-Ill $DASDI OR-119 $DISKUTI OR-168 $DISKUT2 OR-180 $DISKUT3 SG-339 $IHITDSK OR-343 $MOVEVOL OR-404 $PDS SG-321 $TAPEUTI OR-431 session manager OR-59 summarized SG-63 data manipulation instructions ADD LR-38 ADDV LR-41 coding description LR-38 DIVIDE LR-99 MULTIPLY LR-230 overview LR-14 SUBTRACT LR-332 data manipulation, vector LR-15 data paging control block IM-6 data paging, Indexed Access Method activating IG-167 control flow IM-33 deactivating IG-166 description IG-206 extracting statistics IG-I08 gett i ng pag; ng statistics IG-169 module descriptions 1M-53 page preemption IM-40 problem determination IM-78 selecting ·IG-167 setting paging area size IG-168 using IG-208 data record contents, text editor ID-387 data record, Remote Management Utility CT-253, CT-298 data representation, terminal I/O LR-31 data set allocation/deletion, with $DISKUTI OR-172 . with $DISKUT3 SG-339 with $JOBUTIL OR-378 with $PDS SG-322 with session manager OR-47 data set concatenation SH-206 data set control block CDSCB) description ID-88 listing ID-360 data set definition statement See DSD statement data set description, DSD SI-334 data set directory internals ID-77 data set format $FSEDIT OR-260 $PDS SG-323 $PRT2780 CT-343 $PRT3780 CT-343 data set nami ng conventions SG-283 data set ready (DSR) ID-178 data set ready timeout SH-I05 data set utilities See data management utilities data sets defining in DSD statement SM-71 end-of-data requirements SM-82 input SM-9 output SM-9 purposes SM-9 required SM-12 specification SM-9 work SM-9 DATA statement coding description LR-84 data terminal ready timeout SH-I05 data transfer initiation, terminal I/O ID-I06 data transfer ready (DTR) 10-178 data types format, internal binary, signed SM-226 character SM-222 Common Index IG-289 decimal packed SM-226 decimal, sign attached leading SM-226 decimal, sign detached leading SM-226 decimal, sign detached trailing SM-226 decimal, unpacked SM-226 digit SM-223 zoned SM-223 in field statement SM-l10 in include/omit statement SM-97 data-set-shut-down, Indexed Access Method CA-150, IG-215 ~ata, invalid in output SM-82 date/time description SG-207 display, $Woperator command OR-44' set, $T operator command OR-36 DC statement coding description lR-84 overview lR-13 DCB statement coding description lR-87 function SG-57 overview lR-18 DCB, d~ta control block SI-302 DCBNO parameter, SNAPU SN-I06 DCE (directory control entry) description 10-80 listing ID-347 DCI (Data Collection Interactive) SG-13 DD command ($GPIBUTl) CT-136 DD command ($SISIUTI) CT-I02 DD line command OR-283 DDB (disk device data block) description ID-84 listing ID-357 DDB, device descriptor block SI-306 DDBEQU (device data block equate table) lR-431 DDE (device descriptor entry) ID-86 DE command ($DISKUTl) OR-172 DE command ($DIUTIl) CT-198 DE command ($IAMUTI) IG-153 DE command ($JOBUTIl) OR-379 deactivating paging IG-166 deactivating the network (SNADACT) SN-I00 debugging $EDXASM overlay programs ID-274 debugging aids (see also diagnostic aids) SG-21 debugging utility, $DEBUG data necessary for debugging OR-144 description OR-142 features OR-143 tips and techniques OR-163 decompaction routines SN-222, SN-224 DEFINEQ statement coding description lR-90 overview lR-24 defining a multifunction attachment SG-90 defining an interrupt key on 4978 OR-481 defining device name CT-I02 IG-290' SC34-0404 defining disk volumes SG-286 defining diskette volumes SG-285 defining end character (GPIB) CT-135 defining GPIB device CT-136 defining horizontal tabs OR-331 defining image dimensions OR-328 defining indexed file CA-I06, IG-146 defining null characters OR-332 defining processor SG-I03 defining protected fields ($IMAGE) OR-342 defining tape volumes SG-304 defining vertical tabs OR-339 defining 3107 attribute characters OR-326 definition statements, data LR-13 DELETE function, Remote Management Utility CT-260, ID-200 DELETE, Indexed Access Method CAll description CA-67, IG-I01 return codes CA-68, IG-I02 deleting all spool jobs CA-418 deleting data set on tape OR-461 with $JOBUTIL OR-379 with $PDS SG-335 with Remote Management Utility CT-262 deleting directory entry IG-153 deleting elements CT-167 deleting generic spool jobs CA-:-42 0 deleting indexed file records CA-59, IG-93 delet i ng member with $OISKUTI OR-172 with $OIUTIL CT-197 deleting spool job CA-419 deleting text with $EDITI/N OR-218 with line ($FSEOIT) OR-283 deleting volumes, DV $INITDSK command OR-365 delimited data field data types allowed SM-I09 examples SM-18 how to specify SM-124 length, minimum/maximum SM-II0 required entries in field statement SM-I09 rules for specifying SM-115 when to use SM-:-60 density for diskette initialization, $OASOI utility OR-122 OEQ instruction coding description LR-92 internals 10-49 overview LR-28, SG-43 supervisor function ID-36 DEQBSC BSC routine 10-178 OEQT instruction coding description lR-94 function SG-79 internals 10-110 overview lR-30 printer spooling ID-140 descending sequence affect on control field contents SM-65 option SM-60 OETACH instruction coding description lR-97 ~. ", '\!l.oP" o o internals 10-35 overview lR~28, 5G-30 detached, task supervisor state 10-30 device busy, resetting lR-136 device control block, spool (5PW) description 10-149 listing ID-371 device data block disk (DOB) description ID-84 listing 10-357 sensor I/O listing 10-358 tape (TOB) description ID-92 listing 10-377 device descriptor block, ODB 51-306 device descriptor entry (ODE) 10-86 device independence for terminal support between display stations and printers CT-7, CT-15, 5G-78 between 4978/4979 and 3101 CT-7, CT-31, CT-38 coding EDl instructions for CT-39 for stetic screens CT-38 usi ng the $IMAGE subroutines CT-41 device interrupt handling, EXIO ID-156 device test utility, $IOTE5T OR-368 device vector table 10-12 OF command ($IAMUT1) CA-I06, IG-146 DI , 5ee digital input DI command ($IAMUT1) CA-I08, IG-149 diagnosing I/O errors 5G-267 IPL problem 5G-270 diagnostic aids access method AM-31, 1M-57 description 5G-231 hardware-oriented 5G-21, 5G-241 software trace table 50-249 software-oriented 5G-22, 5G-236 summary 5G-22 diagnostic utilities $DEBUG OR-142 $DUMP OR-193 $IOTE5T OR-368 $LOG OR-400 $TRAP OR-491 overview 5G-65 session manager OR-68 digital input direct output to another device, $P05 utility 5G-329 direct output, $DICOMP subcommand CT-171 external sync, XI $IOTE5T command OR-371 I/O control block ID-162 IOOEF statement 'SG-361 IOTEST command OR-370 overview SG-58 5BIO instruction 5G-367 5EN50RIO statement 5G-I01 digital output I/O control block ID-162 IODEF statement 5G-361 overview 5G-58 SBIO instruction 5G-367 direct access device organization 5G-53 direct graphics output CT-171 direct I/O Series/l to Series/l CT-85, LR-367 with IOCB LR-209 with PRINTEXT lR-247 directory allocation IG-69 directory control entry (DCE) description 10-80 listing 10-347 directory entries IG-71, 5G-323 directory free space entry (FSE) ID-82 directory member entry (OME) 10-81 directory of instruction locations LR-34 015CONN Indexed Access Method CAll description CA-69, IG-I04 return codes CA-69, IG-I04 DI5CONNECT Multiple Terminal Manager utility CA-3~6 disconnecting from indexed file CA-54, IG-87 di sk data sets end-of-data requirements 5M-82 rules for specifying 5M-74 disk I/O instructions lR-16 OI5K statement coding 5G-95 description SG-95 function SG-57 disk volumes, defining SG-286 disk/diskette capacity SG-285 disk/diskette directory equates ID-347 disk/diskette return codes LR-295, MC-234 diskette volumes, defining 5G-285 disks/diskettes converting to Version 3 5G-436 device data block (DDB) description 10-84 listing ID-357 fixed-head 5G-16, SG-48 logical volume 5G-47 physical volume 5G-46 storagecapacity 5G-285 symbolic addressing lR-I0 utilities $COMPRE5 OR-95, 5G-63 $COPY OR-I00, SG-63 $COPYUTI 5G-63 $DA5Dl OR-119, 5G-63 $DI5KUTl OR-168, 5G-63 $DISKUT2 OR-180, 5G-63 $IAMUTI SG-63 $INIT05K OR-343, SG-63 $MOVEVOL OR-404, SG-63 $TAPEUTI 5G-63 volume SG-16 disks/diskettes OISP command ($FONT) OR-244 dispatch queue, access method AM-7, IM-7 display control member SG-324 Common Index IG-291 display control member format SG-326 display operator commands SN-212 display processor composer, $DICOMP CT-165 display processor interpreter, $DIINTR CT-185 display processor utilities, general description CT-151 display processor utility, $DIUTIL CT-192 display profile elements, $PDS SG-326 display profiles, defining (graphics) CT-164 displaying character image tables OR-244 ' displaying file definition parameters IG-161 displaying indexed file parameters CA-I08, IG-149 displaying report line items SG-330 displaying screen image OR-334 displaying spool status CA-421 di splayi ng status of all tasks OR-162 displaying storage OR-30, SG-61 displaying storage or registers OR-154 displaying time and date SG-62, SG-332 displaying variable SG-328 displaying 4978 program function keys OR-410 Distributed Presentation Management advantages of DPM SN-164 MFS DPM compatibility SN-164 screen off-loading SN-164 screen presentation SN-162 SLU type P without DPM SN-165 DIVIDE instruction coding description LR-99 overview LR-14 precision table LR-99 DLB, data link buffer, SI-317 DLT, data link terminal SI-327 DME (directory member entry) descr i pt ion ' I D-81 listing 10-348 updated by SETEOD SG-354 00 See digital output DO command ($IOTEST) OR-370 DO instruction coding description LR-102 overview LR-21 double-precision floating-point arithmetic LR-16 integer and logical LR-14 DOWN subcommand (EDIT/H) OR-219 OP command ($BSCUTl) CT-237 OP command ($TAPEUT1) OR-437 OPACTBUF decompaction buffer SN-223 DPACTRJE decompaction routine SN-223 DR command ($IAMUT1) IG-150 DR function ($PDS) SG-328 DR subcommand ($DICOMP) CT-172 drawing line relative, SG-331 drawing line, $DICOMP subcommand CT-178 drawing symbol CT-172 DS command ($JOBUTIL) OR-380 DSCB (data set control block) statement coding description LR-106 disk/diskette description ID-88 listing 10-360 function SG-57 overview LR-16 tape internals ID-93 Version 3 conversion considerations SG-435 DSCBEQU (data set control block equate table) LR-431 DSD statement input SM-72 output SM-72 purpose SM-71 work SM-72 DSD statement, position descriptions position 1 - statement type SM-72 position 12-17 - volume name SM-74 position 2 - data set type SM-72 position 20-24 - record size SM-75 position 25-29 - block size SM-75 position 3 - device SM-73 position 35-80 comments SM-76 position 4-11 - data set name SM-74 positions 18-19 - record format SM-74 DSD, data set description SI-334 DSECT LR-431 DSOPEN subroutine SG-347 DSR (data set ready) ID-178 DTR (data transfer ready) ID-178 dump and restore volume OR-402 DUMP function, Remote Management Utility CT-262 dumping storage partition ($RMU) CT-262 dumping to printer with $DICOMP CT-168 with $DUMP OR-194 with $TAPEUTI OR-437 dumping to terminal with $DICOMP CT-168 with $DISKUT2 OR-182 dumping trace file on printer ($BSCUTl) CT-237 dumping trace file on terminal ($BSCUT1) CT-237 dumping trace table SG-250 DV command ($INITDSK) OR-365 dynamic storage, specifying ($EDXLINK) PP-77, PP-81 o ' \ ,. " C IG-292 SC34-0404 o " C ,,: o E-conversion (Ew.d) LR-167 EBCDIC (extended binary coded decimal interchange character) changing SM-9 collating sequence SM-224 default SM-67 specifying in header SM-66 EBFLCVT, EBDIC to floating-point conversion internals ID-227 module description ID-65 EC command ($IAMUT1) CA-109, IG-160 EC command ($SlS1UT1) CT-I02 ECB address SN-20 ECB statement coding description LR-I08 internals ID-45 overview LR-28, SG-30 with SBIOCBs ID-161 echo test, Series/l to Series/1 CT-102 EDIT command ($EDIT1/N) OR-204 EDIT command ($FONT) OR-246 EDIT command (IMAGE) OR-328 edit data set subroutine examples, text editor ID-388 EDIT option ($FSEDIT) OR-266 editor subcommands, $EDIT1/N OR-212 EDL (Event Driven Language) estimating storage requirements SG-225 features summarized SG-20 instruction format ID-55 interpreter module description (EDXALU) ID-66 operation codes ID-56 purpose LR-1 use with Multiple Terminal Manager CA-281 EDXFLOAT module description ID-66 EDXINIT module in IPL ID-5 module description ID-66 EDXLIST host listing formatter OR-297, PP-41 EDXSTART module description ID-67 EDXSVCX/EDXSVCXU module description ID-67 EDXTIO terminal I/O internals ID-97 module description ID-68 EF command ($IAMUTl) IG-161 EJECT command ($JOBUTIL) OR-381 EJECT statement coding description LR-II0 overview LR-19 ejecting printer page OR-31 description OR-31 ELSE instruction LR-lll emulator See supervisor/emulator emulator command table description ID-14 listing ID-323 emulator setup routine command table ID-14 internal description ID-52 listing ID-323 emulator/interpreter functional flow ID-52 ENCODE parameter, SNAPU SN-I05 END command ($EDXASM) PP-13 END command ($EDXLIST) PP-25 END command ($FSEDIT) OR-275 END command ($IMAGE) OR-329 END control record ($LINK) PP-92 END control statement ($EDXLINK) PP-53 end display (graphics) CT-177 end of job, DOJ command ($JOBUTIL) OR-382 end of nested procedure, EOP command ($JOBUTIL) OR-382 END statement coding description LR-112 overview LR-28 end-of-data processing SG-287 end-of-file, indicating with SETEOD SG-354 end~of-transaction, coding SN-32 ENDATTN instruction coding description LR-113 overview LR-28, SG-30 ENDDO instruction coding description LR-114 overview LR-21 ENDIF instruction coding description LR-115 overview LR-21 ENDPROG statement coding description LR-116 overview LR-28, SG-30 ENDRJE command ($RJESNA) SN-211 ENDSEQ Indexed Access Method CALL description CA-71, IG-I06 return codes CA-71, IG-I06 ENDSPOOL command ($RJE2780/$RJE3780) CT-340 ENDTASK instruction coding description LR-118 overview LR-28 ENQ instruction coding description LR-120 internals ID-48 overview LR-28, SG-43 supervisor function ID-36 ENQT instruction coding description LR-122 function SG-79 internals 10-109 overview LR-30 printer spooling ID-139 use for vi rtual terminals CT-205 use in GPIB CT-I10 use with logical screens CT-33 using to reserve a termi nal . CT-17 enqueue, task supervisor function See ENQ instruction entering and editing source statements OR-204, SG-64, SG-70 entering command parameters and operands prompt-reply mode OR-22 single line format OR-23 entering unprotected output fields using $IMAGE OR-342 entry points, supervisor SG-465 ENTRY statement coding description LR-125 overview LR-20 Common Index IG-293 entry, correlation table SN-124 EOF1 tape label SG-295 EOJ command OR-382 EOP command ($JOBUTIL) OR-382 EOR instruction coding description LR-127 overview LR-14 EOT (end-of-tape) LR-26 EOT parameter, NETPUT SN-30 EOVI tape label SG-295 EP subcommand ($OICOMP) CT-177 EQ (equal) lR-21 EQU statement coding description LR-129 overview LR-13 equate listings AM-51 equate tables accessing 10-331 BSCOOB (BSC device data block) ID-340 CCB (terminal control block) 10-341 communication vector table 10-346 DOB sensor I/O device data block 10-358 DOB, disk/diskette data block 10-357 disk/diskette directory 10-347 OSCB (data set control block) ID-360· . emulator command table 10-323 including 10-334 Indexed Access Method IM-81 Multiple Terminal Manager M-31 parameter and control block LR-431 printer spooling 10-371 program header listing 10-365 referencing 10-23 RCB (Remote Management Utility) 10-366 Remote Management Utility general equates 10-369 TCB (task control block) 10-375 TOB (tape device data block) 10-377 ERASE instruction coding description LR-131 function SG-79 overview LR-30 ERRCOOE parameter, NETINIT SN-20 ERREXIT (load mode) IG-119 ERREXIT (process mode) IG-123 error codes See return codes error exit I/O SM-68 error exit, task $RJESNA SN-217 Series/l SNA SN-11 error handl i ng GPIB CT-131 I/O error logging OR-400, SG-257 Indexed Access Method error exit CA-148, IG-213 PROGRAM (TERMERR=) LR-270 program checks SG-273 PSW (processor status word) SG-275 Remote Management Utility CT-327 IG-294 SC34-0404 software trace SG-249 system-supplied SG-253 TASK (TERMERR=) LR-336 task error exit SG-253 terminal I/O LR-30 error handling, $RJESNA SN-216 error information, extended SN-87 error logging (Indexed Access Method) IG-216 error logging, channel attach CT-428 error logging, SOLC SN-12 error messages, Sort/Merge SM-247 error, I/O, header option SM-66 ERRORDEF lR-432 ERRORS command ($EOXLIST) PP-25 errors option ($EOXASM) PP-13 errors, debugging Sort/Merge SM-179 establishing a session, overview SN-6 estimating storage See storage estimating event control block See ECB statement Event Oriven Language See EOL (Event Oriven language) events, specifying attention SN-20 EX command ($TAPEUT1) OR-439 example of Series/1 SLU type P/OPM configuration host components SN-170 Series/l control application SN-171 Series/l screen formatting/presentation support SN-170 Series/1 SLU type P support SN-170 exchange station 10 SN-I07 exchange station 10, format SN-302 exchanging data SG-23 EXEC command ($JOBUTIl) OR-383 EXEC function, Remote Management utility CT-264, 10-204 executing program EXEC function, $JOBUTIL OR-383 EXEC function, Remote Management Utility CT-264 overview SG-33 PASSTHRU function, Remote Management Utility CT-281 SHUTOOWN function, Remote Management Utility CT-276 utilities (session manager) OR-65 executing, task supervisor state 10-30 exercising GPIB devices OR-292 exercising tape OR-439 exhibiting file definition parameters IG-161 EXIO instruction coding description LR-136 function SG-57 overview LR-18, SG-20 return codes LR-141, MC-236 storage requirements SG-220 EXIO support internals 10-153 EXIOOOB device data block 10-153 EXIOOEV considerations SN-103 EXIODEV statement SG-98 o (if" .........\ ~"~) o o exit routines examples SM-146 I/O error SM-143 inplJt SM-137 output SM-139 when to use SM-33 with vs. without synchronization SM-131 writing SM-137 EXOPEN instruction coding description LR-139 function SG-57 interrupt codes lR-141 overview lR-18 return codes lR-141 extended error information SN-87 extended error information, requesting SN-20 extended error return codes BIND event Me-218, SN-94 NETBINO MC-260, SN-94 NETCLOSE MC-261, SN-93 NETOPEN MC-262, SN-89 NETRECV MC-263, SN-90 NETSEND MC-264, SN-91 NETUBNO MC-267, SN-94 READ MC-233, SN-95 WRITE MC-233, SN-96 extended summary field example SM-29 how to specify SM-125 length, maximum SM-I10 when to use SM-29 external I/O level supp~rt internals 10-153 external sync 01/00, XI/XO, $IOTEST command OR-368 EXTRACT Indexed Access Method CALL description CA-73, IG-I08 return codes CA-74, IG-I09 EXTRN statement coding description lR-145 overview lR-20 F-conversion (Fw.d) lR-166 factor 1 field SM-99 factor 2 constant SM-I02 factor 2 field SM-I0l FAOO instruction coding description LR-147 overview LR-14 return codes lR-148, MC-238 FAN Multiple Terminal Manager CALL CA-240 fast path feature (IMS/VS) SN-161 FAT, function address table SI-337 FCA (file control area) CA-243 FCB (file control block) accessing CA-159 contents CA-159 description IM-5 equates IM-93 queue description IM-8 FCBEQU (Indexed Access Method copy code module) lR-432 FCBEQU module CA-12, IG-4 FDIVO instruction coding description LR-150 overview LR-14 return codes lR-151, MC-238 FE command ($HCFUT1) CT-370 fetching record, $PDS utility SG-335 field statement controlling sort sequence SM-I05 determining output record content SM-I05 determining output record format SM-I05 examples SM-14 how to specify control fields SM-116 data fields SM-124 position summary SM-I07 required entries in field statement SM-109 rules SM-112 rules for control fields SM-121 rules for data fields 5M-128 field statement, position descriptions SM-I06 length, minimum/maximum in a field statement 5M-112 position 1 - statement type 5M-I06 position 13 - forced data character SM-114 position 14 - force continuation'indicator SM-115 position 2 - field type 5M-I06 position 3 - data type 5M-I09 positions 12-13 overflow/nonoverflow indicator SM-114 positions 12-13 - test and insert characters SM-113 positions 15-16 - extended summary field 5M-115 positions 35-80 comments SM-115 positions 4-11 - field location start and end SM-112 rules for total in include set SM-117 field table (FTAB) $IMOATA subroutine CT-53 $IMPROT subroutine CT-51 format of CT-51 file backup IG-94 backward space file (BSF) lR-65 definition LR~26 forward space file (F5F) LR-65 sequential blocked IG-164 sequential unblocked IG-164 tape control commands LR-64 file control block (FCB) accessing CA-159 contents CA-159, 16-26 description IM-5 equates IM-93 extracting IG-93, IG-I08 location CA-18, IG-40 queue description, IM-8 file control block extension accessing CA-159 contents CA-157, IG-40 extracting IG-93, IG-I08 location CA-18, IG-40 Common Index IG-295 file locking system IM-7 file manager, Multiple Terminal Manager M-8 file table, Multiple Terminal Manager M-19, M-35 FILEIO, Multiple Terminal Manager CALL coding description CA-242 internals M-9 overview of CA-208 return codes CA-247 FIND command OR-276 FIND instruction coding description LR-153 overview LR-21 FIND subcommand ($EDIT1/N) OR-221 FINDNOT instruction coding description LR-156 overview LR-21 finite state machine (FSM), description SN-127 FIRSTQ instruction coding description LR-159 overview LR-24, SG-42 fixed blocked record format SM-79 fixed storage area 10-11 fixed unblocked record format SM-77 fixed-head devices SG-48 floating-point arithmetic instructions LR-15 binary conversions ID-227 EOXFLOAT/NOFLOAT module description ID-66 return codes LR-16, MC-238 FM profiles 3 and 4 differences SH-117 supported commands SH-117 FMH parameter, NETPUT SH-30 FMULT instruction coding description LR-160 overview LR-14 return codes LR-161, MC-238 force-all See force-otherwise force-otherwise data types allowed SM-120 definition SM-120 keep/drop from output record SM-65 length, maximum in a field statement SM-112 specifying in header SM-60 total in include set SM-120 number, maximum SM-120 required entries in field statement SM-I09 rules for SM-121 forced control field conditional force continuation SM-115 definition SM-119 how to specify SM-119 data types allowed SM-I09 defaul t drop wi th vari able records SM-65 force-otherwise definition SM-117 how to specify SM-117 keep/drop from output record default d~op with variable records . SM-65 example SM-14 specifying in header SM-64 IG-296 SC34-0404 when to drop SM-65 length, maximum in a field statement SM-112 specifying in header SM-60 total in include set SM-117 multi conditional force definition SM-117 how to specify SM-117 number, maximum SM-117 required entries in field statement SM-I09 rules for SM-121 unconditional force definition SM-117 example SM-22 how to specify SM-117 forced data character examples SM-22 forced control field, contrast SM-124 how to specify SM-124 required entries in field statement SM-I09 rules for specifying 5M-128 format illustrated (program) LR-6 instruction (general) LR-3 FORMAT statement A-conversion LR-169 alphameric data LR-168 blank lines in output LR-171 coding description LR-163 conversion of alphameric 'data LR-169 conversion of numeric data LR-164 E-conversion LR-167 F-conversion LR-166 formatted screen images OR-321 function SG-79 H-conversion LR-168 I-conversion LR-165 module names lR-14 multiple field format LR-171 numeric data LR-164 overview LR-13 repetitive specification LR-171 storage considerations LR-172 using multipliers LR-171 X-type format lR-170 formatted screen return codes $IMDATA subroutine MC-239 $IMOPEH subroutine MC-239 $IMPROT subroutine MC-240 formatting instructions, data lR-13 forms control for display screens CT-23 for printers CT-24 FORTRAN IV estimating storage requirements SG-228 execution requirements 5G-26 link editing SG-72 overview SG-8 program preparation requirements SG-25 use with Multiple Terminal Manager CA-285 FPCOHV instruction coding description LR-175 overview lR-14 frame count, specifying 5N-113 c frames per transmission, considerations SH-lll free space entry (FSE) ID-802 FREEMAIH instruction ID-25 FSE (directory free space entry) description ID-82 listing ID-349 FSF (forward space file) lR-65 FSF (forward spacefile) OR-449 FSR (forward space record) lR-65, OR-449 FSUB instruction coding description lR-178 index registers lR-179 overview lR-14 return codes lR-179, MC-238 FTAB command ($IMAGE) OR-330 refid=pfkeys, listing, KEYS $IMAGE command OR-331 FTAB, Multiple Terminal Manager CAll coding description CA-254 internals M-26 overview of CA-207 return codes CA-255 full-word boundary requirement DO lR-21 IF lR-21 PROGRAM lR-266 function address table, FAT SI-337 function management headers, definition of SH-7 function process subroutines adding new functions ID-214 definition ID-189 logic flow 10-196 function table, Remote Management Utility ID-191 o gather read operation CT-37, CT-40, CT-43 GE (greater than or equal) lR-21 general instruction format LR-3 General Purpose Interface Bus $GPIBUTI utility commands CT-134 description CT-134 configuration CT-113 cycle steal status CT-132 data transfers CT-l14 device addresses CT-I09 device group operation CT-121 device roles CT-I08 EDX support components CT-I08 error detect ion cycle steal status CT-133 resi dual status block CT-133 error handling CT-131 function SG-66 initialization CT-112 internals control operations ID-121 functional flow ID-120 input operations ID-124 output operations ID-125 start I/O operation ID-125 terminal control block (CCB) ID-119 interrupt handling CT-116 interrupt status byte CT-132 loading programs CT-II0 overview CT-7, CT-I07, SG-18, SG-81 parallel polling CT-118 return codes MC-272 roles of attached devices controller CT-I08 listener CT-I08 talker CT-I08 sample program CT-127 serial polling CT-118 service requests (SRQ) CT-116 storage requirements SG-219 system generation CT-131 TERMCTRL coding description lR-371 terminal I/O considerations CT-II0 translated data (XlATE=NO) CT-I10 universal unlisten CT-113 user buffer CT-l11 generating a diskless system SG-214 generating logical unit control block SN-114 generating physical unit control block SN-I04 generating the supervisor SG-167 GET command ($FONT) OR-247 GET Indexed Access Method CALL description CA-75, IG-l11 return codes CA-77, IG-113 GETCUR subroutine CA-470 GETCUR, Multiple Terminal Manager CALL coding description CA-258 internals M-I0 overview CA-207 GETDAT subroutine CA-471 GETEDIT instruction coding description lR-181 function SG-79 overview lR-13 return codes lR-183, MC-232 GETFMT subroutine CA-473 GETMAIN instruction ID-24 GETPAR3 subroutine ID-53 GETSEQ Indexed Access Method CAll description CA-78, IG-114 return codes CA-80, IG-116 GETIIME instruction coding description lR-188 overview lR-32, SG-42 time/date lR-188 getting paging statistics IG-169 GETVAl subroutine, $EDXASM ID-261 GETVALUE instruction coding description LR-190 function SG-79 overview LR-30 GIN instruction coding description CT-154 overview CT-154 global area, $EDXASM ID-246 GLOBAL ATTNlIST lR-50 GO command ($DEBUG) OR-152 GOTO command OR-153 GOTO instruction coding description lR-196 Common Index IG-297 overview lR-21 GP command ($GPIBUT1) CT-136 GPIB See General Purpose Interface Bus GPRESUME command ($GPIBUT1) CT-143 graphics conversion algorithm I0-225 functions CT-151 general description SG-81 hardware considerations CT-151 instructions CONCAT CT-153 GIN CT-154 overview SG-81 PlOTGIN CT-155 XYPlOT CT-158 YTPlOT CT-159 overview CT-8 programming example CT-160 requirements CT-151 terminals CT-8, SG-81 utilities $OICOMP CT-165 $OIINTR CT-186 $DIUTIl CT-192 summarized OR-7, 5G-65 GT (greater than) lR-21 H-conversion lR-168 half~duplex flip-flop SN-131 hardcopy function for terminals (PF6) 10-108, OR-9 hardware features for binary synchronous communications CT-l1 for Remote Management Utility CT-252 for terminal support CT-5, CT-9 hardware levels SG-30 hardware options, SOlC SN-I08 hash table, data paging IM-34 HASHVAl instruction coding description lR-198 overview LR-14 HCF See Host Communications Facility HOR1 tape label SG-295 header labels, tape SG-293 header record, text editor 10-385 header statement examples SM-14 purpose SM-60 rules SM-60 header, position descriptions position 1 - statement type SM-60 position 11 ascending/descending sequence SM-6.3 position 12 - message output SM-64 IG-298 SC34-0404 position 13 - keep/drop control fields SM-64 position 14 - warning message option SM-66 position 15 - data set organizat ion SM-66 .. position 16 - collating sequence SM-67 position 17 - I/O error processing SM-67 position 35-80 comments SM-68 positions 2-7 - Sort/Merge application SM-60 positions 8-10 - sum of control field lengths SM-62 HELP command ($OEBUG) OR-153 hold line active timeout SN-I06 holding spool jobs(s) CA-426 horizontal tabs, defining with $IMAGE OR-331 host assembler PP-39 Host Communications Facility data set characteristics CT-348 host data sets CT-348 internals 10-181 overview CT-11, CT-347, SG-14, SG-83 programming examples CT-365 requirements CT-347 return codes CT-373, MC-276 storage and performance . CT-352 system status data set CT-350 TP instructions CLOSE CT-355 FETCH CT-356 OPENIH CT-357 OPENOUT CT-358 REAO CT-359 RELEASE CT-360 SET CT-361 SUBMIT CT-362 TIMEOATE CT-363 WRITE CT-364 TPCOM module description ID-73 utility program . ($HCFUT 1) CT-367 host considerations, $RJE5NA 005/V5E (VSE/POWER) SN-235 OS/VS1 (RES) SN-233 OS/VS2 MVS (JES2) SH-227 05/VS2 MVS (JES3) SH-231 VTAM HCP SN-225 host data set naming conventions, Host Communications Facilit CT-348 host 10 data list, building SH-17 host initiated transactions, rejecting SN-41 host logon, $RJESNA SN-207 host-initiated transactions, accepting SN-40 . HOSTCOMM statement SG-10~ HOSTID parameter, HETIHIT 5N-21 HRJE command ($RJESNA) SN-212 HTAB command ($IMAGE) OR-331 HX subcommand ($OICOMP) CT-177 HXUT1, H exchange utility OR-298 ;Y' "''', I\~,_J c 0 , ,1 , o I-conversion (Iw) lR-164 I/O control block spool (IOSPTBl) description 10-151 listing 10-371 I/O device instruction level lR-18 I/O direct Series/l to Series/l CT-85, lR-367 with IOCB lR-209 with PRINTEXT LR-241 with REAOTEXT lR-300 I/O error exi t example SM-146 in parameter list SM-133 writing program with SM-131 I/O error logging activating SG-259 data set list utility, $OISKUT2 OR-180 description SG-259 device table 10-395 equates 10-391 invoking OR-400 log control record 10-395 log data set OR-400 lOG macro description SG-263 syntax SG-263 printing the errors SG-258 record layout 10-391 recording the errors 10-393, SG-258 storage requirements SG-220 tape log entries SG-262 USER instruction description SG-265 example SG-266 syntax SG-265 I/O error option SM-66, SM-61 I/O errors, SOLC device never retried SN-I07 retried until count exceeded SN-I07 retri ed unt i I successful SN-I01 I/O functions EXIO control internals 10-153 HOSTCOMM statement SG-I00 instruction level control LR-18 sensor-based sensor-based SBIOCB internals 10-159 summarized SG-56, SG-59 terminal SG-79 timers SG-42 IACB (indexed access control block) creating CA-54, IG-81 description IM-5 equates IM-I02 queue description IM-8 lAM module CA-12 IAMEQU (Indexed Access Method copy code module) LR-432 IAMEQU module CA-12 IBM 3105 communication controller SI-l 10 command ($INITOSK) OR-346 10 statement See $10 statement roc, immediate device control block SI-340 IOCB statement. coding description LR-201 function SG-57 IDCB command LR-201 overview lR-18 IOCHECK function, Remote Management Utility CT-267, 10-203 identifying batch job stream continuation point OR-386 identifying batch job stream data set OR-380 i denti fyi ng host application SN-17 IE command ($IAMUTl) IG-155 IF instruction coding description LR-203 overview LR-21 II command ($INITOSK) OR-358 II line command ($FSEOIT) OR-287 lIB (interrupt information byte) CA-220 1M function ($POS) SG-33l 1M subcommand ($OICOMP) CT-177 image dimensions, defining OR-328 image, formatted screen creating OR-321 See also screen formats, terminal support immediate action routines BSC access method (BSCIA) 10-178 interrupt servicing ID-37 specifying maximum number SG-I04 supervisor entry 10-38 immediate data LR-5 immediate device control block, IOC SI-340 immediate session termination SN-60 implied message acceptance SN-42 IMS/VS considerations SN-155 IMS/VS definition macros COMM macro SN-156 NAME macro SN-160 TERMINAL macro SN-157 TYPE macro SN-157 IMS/VS support SN-155 IN command ($OICOMP) CT-167 IN command ($OIUTIl) CT-198 in-storage specifications SM-131 INCLUDE control statement ($EOXLINK) PP-53 INClUOE control statement ($lINK) PP-91 include set definition SM-93 example SM-20 how to specify SM-95 INCLUDE statement requirement (EXTRN) LR-145 include-all See include-remaining statement include-remaining statement how to specify SM-95 purpose SM-94 include/omit statement example SM-20 how to specify SM-95 purpose SM-93 Common Index IG-299 include/omit, position descriptions factor 1 field, rules SM-99 factor 2 constant, rules SM-I02 factor 2 field, rules SM-I0l position 1 - statement type SM-97 position 14 - constant or field SM-I0l position 2 - AND/OR indicator SM-98 position 3 - data types SM-98 positions 12-13 - test relational SM-I0l positions 15-22 -factor 2 field SM-I01 positions 15-34 - factor 2 constant SM-I02 positions 35-80 comments SM-I03 positions 6-11 - factor 1 field location SM-99 specifying in header SM-66 independent indicator IG-68 index block description CA-159 internal description IM-6 index entry, text editor 10-386 indexed access control block description IM-S equates IM-I02 See also IACB (indexed access control block) Indexed Access Method $IAM load module CA-189 $IAMUTI utility CA-I03, IG-141 base records definition of CA-33, IG-61 load mode IG-61 loading CA-33, IG-61 processing mode IG-61 BTE (buffer table entry) IM-6 buffer management CA-143, IG-210 coding example CA-97, IG-233 components CA-12, 1G-4 concepts and facilities CA-ll, IG-l control block descriptions 1M-S equate listings 1M-81 .1 i nkages 1M-9 control flow IM-l data block header IM-6 data paging internals IM-33 delete threshold parameter CA-118 devices supported by CA-l1, 1G-3 diagnostic aids 1M-57 dynamic file facilities CA-20, 1G-41 error recovery common IM-45 data paging 1M-53 data-set-shut-down CA-150, IG-215 deadlocks CA-151, IG-218 error exit facility CA-148, IG-213 long-lock-time CA-151, IG-218 secondary index 1M-55 IG-300 SC34-0404 system function return codes CA-149, IG-215 features CA-2, IG-l file control block (FCB) IM-5 file locking system IM-7 I/O requests DELETE CA-67, IG-I01 D1SCONN CA-69, IG-I04 ENDSEQ CA-71, IG-I06 EXTRACT CA-73, IG-I08 GET CA-75, IG-l11 GETSEQ CA-78, IG-114 LOAD CA-81, IG-118 overview CA-13 PROCESS CA-84, IG-122 PUT CA-87, IG-127 PUTDE CA-89, IG-130 PUTUP CA-91, IG-133 RELEASE CA-93, IG-136 syntax summary CA-95, 1G-138 verifying CA-152, IG-219 index block header IM-6 indexed access control block (IACB) IM-5 installation CA-186, IG-221 languages supporting CA-12, IG-4 loading CA-15, IG-204 loading file CA-33, IG-61 locking, record CA-144 master control block (MCB) IM-5 overview SG-ll performance CA-142, IG-205 preparing application program $JOBUTIL procedure CA-196, IG-230 link-edit control file CA-197, IG-231 overview CA-195, 1G-229 problem determination 1M-57 queue description IM-8 record deletion processing CA-181, IM-21 record insertion processing CA-175, IM-15 record/request processing IM-2 requesting records CA-15 resource contention CA-144, IG-210 return codes DELETE CA-68, IG-I02 DISCONN CA-69, IG-I04 ENDSEQ CA-71, IG-I06 EXTRACT CA-74, IG-I09 GET CA-77, IG-113 GETSEQ CA-80, IG-116 LOAD CA-83, IG-120 PROCESS CA-86 , IG-125 PUT CA-88, IG-128 PUTDE CA-89, IG-131 PUTUP CA-92, IG-134 RELEASE CA-93, IG-136 summary CA-96, IG-139, MC-241 Secondary Index Directory IM-29 secondary indexes IM-25 services CA-13 storage allocation IM-l storage layout CA-15, IG-204 storage requirements CA-141, IG-203 /1 "'J ,~-., c o o tailoring $IAMUT1 buffer size CA-193 buffer/control block allocations CA-190 central buffer size CA-191 Indexed Access Method buffer size IG-44 usi ng al ternate allocations CA-189 using read-only $IAM CA-194 volume requirements SG-178 with data paging IM-33 indexed data set See indexed file indexed fi Ie building file CA-31 control block structure CA-155 design considerations CA-20 designing file CA-23 format blocks CA-157, IG-24 clusters CA-168, IG-30 data blocks CA-160, IG-26 file control blocks CA-159, IG-40 free blocks CA-170, IG-27 free pool CA-172, IG-39 free records CA-168, IG-27 free space CA-168, IG-27 higher-level index block CA-166, IG-37 index CA-161, IG-30 index blocks CA-159, IG-30 index example CA-167, IG-37 last cluster CA-171, IG-33 overview CA-154, IG-17 PIXB CA-161, IG-32 reserve blocks CA-170, IG-32 reserve index entries CA-170, IG-36 sequential chaining CA-161, IG-28 SIXB CA-164, IG-35 loading with $IAMUTI IG-62 maintenance backup and recovery CA-60, IG-94 deleting file CA-62, IG-96 dumping file CA-62, IG-96 recovery CA-61, IG-95 reorganizing file CA-61, IG-95 overview CA-18 processing accessing file CA-S5, 1G-89 connecting file CA-54, IG-87 deleting records CA-~9, IG-93 direct reading CA-55, IG-89 direct updating CA-S', IG-90 disconnecting file CA-54, IG-87 extracti ng fi Ie attributes CA-59, IG-93 inserting records CA-59, IG-93 loading sequential file IG-65 sequential processing summary CA-58, IG-92 sequential reading CA-57, IG-90 sequential updating CA-57, IG-91 setti ng up building file CA-31 defining file structure IG-19 defining the key CA-24, IG-18 designing file structure CA-25 loading base records CA-33, IG-61 loading from sequential file CA-36, IG-64 preparing input CA-35, IG-63 selecting block size CA-23 setting file structure CA-31 structured and dynamic files CA-20, IG-40 indexing, address feature LR-7 indicator, auto-update IG-69 Information Management System/Virtual Storage (IMS/VS) SI-1 INIT-SELF command SN-136 initial program load See IPL (initial program load) initialization automatic restart SG-174 disk (4962) OR-131 disk (4963) OR-136 disk and diskette SG-204 disk or diskette, $INITDSK utility OR-346 diskette (4964,4965,4966) OR-122 graphics data base CT-198 IPL SG-204 module overview ID-61 modules 10-9 nucleus 10-5 Seriesl to Series/1 CT-103 stand-alone dump diskette OR-120 tape SG-205 terminal SG-213 initializing IPL text OR-358 initializing volumes OR-357 INITMOOS table 10-9 INITTASK initialization task ID-5 input buffer, Multiple Terminal Manager contents during I/O operations CA-220 description CA-219 internals M-23, M-37 input data parsing ID-240 input data set SM-9 input error function, Remote Mangement Utility 10-208 input exit example SM-146 rules for passing records SM-139 uses SM-33 wri ti ng program with SM-137 input operations, GPIB ID-124 input record as data field example SM-3 how to specify SM-125 Common Index IG-301 required entries in field statement SM-109 restriction with summary fields SM-126 rules for specifying SM-125 use with variable input records SM-125 INPUT subcommand ($EDIT1/N) OR-222 input/output control block See IOCB instruction input, terminal 1/0 lR-32 insert secondary index directory entry IG-155 inserting block of text OR-288 inserting elements (graphics) CT-167 inserting line of text OR-286 inserting member (graphics) CT-171 installing $RJESNA SN-221 installing the system SG-27 instruction and statements overview lR-13 instruction definition and checking, $EDXASM ID-267 instruction expansions, 370 Channel Attach T-29 instruction format, Event Driven language ID-55, lR-3 instruction locations, directory of lR-34 instruction processing, SNA SN-141 instruction sequence, examples SN-13 integer and logical instructions lR-14 interactive debugging OR-142, SG-65 intercepting class interrupts OR-491 interchanging data SG-23 interface layers SI-4 interface routines, supervisor ID-50 interface, $JOBUTIl ($EDXlINK) PP-65 interface, $JOBUTIl interactive ($EDXlINK) PP-67 interface, $JOBUTIl non-interactive ($EDXlINK) ~P-66 interface, $l interactive ($EDXLINK) PP-62 interface, $l non-interactive ($EDXLINK) PP-61 interrupt information byte (lIB) CA-220 interrupt keys attention key CT-20 enter key CT-21 program function (PF) keys CT-20 interrupt line (Channel Attach) CT-466 interrupt servicing EXIO ID-156 GPIB ID-127 immediate action routines ID-37 Series/1 to Series/1 ID-132 terminal 1/0 CT-20, ID-106 interrupt types, PSW MC-282 INTIME instruction IG-302 SC34-0404 coding description lR-207 overview lR-32, SG-42 introduction to EDl lR-1 INVITE parameter, NETPUT SN-30 invoke your operator command ($U) OR-37 invoking $GPIBUT1 OR-292 invoking directory subcommands IG-150 invoking operator commands OR-22 invoking session manager OR-46 invoking Sort/Merge, methods with $JOBUTIL utility SM-42 with lOAD SM-44 invoking user written operator command SG-61 invoking utilities SG-62 IOCB instruction BUFFER parameter lR-209 coding description lR-209 direct 1/0 LR-209 function SG-79 overview lR-30 structure CT-35 terminal 1/0 instruction LR-209 use in accessing virtual terminals CT-205 use in defining logical screen CT-33 using PRINTEXT lR-247 using READTEXT lR-300 IODEF statement ,coding description SG-361 function SG-59, SG-360 SPECPI process interrupt user routine SG-365 lOR instruction coding description lR-214 overview lR-14 IOSPTBl (spool 1/0 control block) description ID-151 listing 10-371 IP command ($SIS1UT1) CT-103 IPl (initial program load) $SlSlUTl utility CT-86 automatic initialization SG-174 diagnosing a problem SG-270 internals ID-5 ISAPPID parameter, NETHOST SN-17 ISMODE parameter, NETHOST SN-17 ISPASWD parameter, NETHOST SN-18 ISQUEUE parameter, NETHOST SN-18 ISRQID parameter, NETHOST SN-18 ISUSFlD parameter, NETHOST SN-18 IV command ($INITDSK) OR-357 [~l JOB command ($JOBUTIl) OR-384 job control block spool active job (SPA) description ID-147 listing 10-371 spool job (SPJ) description 10-146 listing 10-372 job control statement OR-384 job stream control records SN-206 c o job stream processor, $JOBUTIL OR-376 job streams, submitting SN-214 JOURNAL command ($RJESNA) SN-212 journal data set SN-212 journaling messages SH-212 JP command ($PDS) SG-329 JP subcommand ($DICOMP) CT-177 JR subcommand ($DICOMP) CT-178 JUMP command ($JOBUTIL) OR-385 jump to address (graphics) CT-177 jump to reference (graphics) CT-178 jumping to batch job stream label OR-385 keep/drop option specifying SM-64 when to use SM-65 keeping spool job CA-427 key See program function (PF) keys key, primary IG-18 key, secondary IG-67 Keyboard define utility for 4978, $TERMUT2 OR-468 KEYS command ($IMAGE) OR-331 keyword operand definition LR-5 o LA command ($DISKUT1) OR-168 LA command ($DIUTIL) CT-199 LA command ($TERMUT1) OR-465 label field LR-3 syntax description LR-4 LABEL command ($JOBUTIL) OR-386 LABELS subroutine, $EDXASM ID-264 label s, tape See tape label s LACTS command ($DISKUTl) OR-l68 LAD command ($DISKUT1) OR-178 language control data set, $EDXASM ID-243, PP-22 language products SG-3 LAST parameter, NETPUT SN-30 LASTQ instruction coding description LR-216 overview lR-24, SG-42 lAVcommand ($DISKUTl) OR-179 layers, terminal I/O ID-97 lB function ($PDS) SG-326 LB subcommand ($DICOMP) CT-178 lC command ($TERMUT2) OR-476 LD command ($DISKUT1) OR-174 LD command ($IOTEST) OR-374 LDCB command ($GPIBUTl) CT-137 LDCTS command ($DISKUTl) OR-168 LE (less than or equal) LR-2l LE command ($IAMUTI) IG-156 level status block See LSB (level status block) LH command ($DIUTIL) CT-199 LI command ($TERMUT2) OR-477 LI function ($PDS) SG-327 LI subcommand ($DICOMP) CT~178 library definition SG-48 directory ID-77 licensed programs descriptions SG-5 Event Driven Language SG-26 FORTRAN SG-25 Macro Assembler Language SG-26 line command ($FSEDIT) OR-285 line commands, $FSEDIT OR-280 line connection types (SDLC) SN-I05 line continuation, source LR-4 line editing, $EDITI/N OR-235 description OR-237 line pointer reposition See moving line pointer LINK control statement ($EDXLINK) PP-54 link map ($EDXLIHK) PP-70 link-editing $HETCMD SH-12 LINK, Multiple Te~minal Manager CALL coding description CA-260 internals M-Il overview of CA-206 1 i nkage edi tor See $LINK linkage editor overlays See overlay support linkages AM-9 linking decompaction routines SH-224 LINKON, Multiple Terminal Manager CALL coding description CA-262 internals M-ll overview of CA-206 LIST command ($DEBUG) OR-154 LIST command ($EDITl/N) OR-206 with $EDITI/N READ OR-207 LIST command ($EDXASM) PP-13 LIST command ($EDXLIST) PP-25 list partitions and programs OR-24 LIST subcommand ($EDITI/N) OR-224 list i ng breakpo i nts and trace ranges OR-IS! listing characters (graphics) CT-178 listing control instructions EJECT LR-l10 overview LR-19 PRINT LR-244 SPACE LR-322 TITLE LR-380 listing data members OR-174 listing data members in CTS mode OR-168 listing data set with $DISKUT2 OR-185 with $DIUTIL CT-202 with $EDIT1/N OR-224 with $FSEDIT OR-270 listing data set status (graphics) CT-20l listing date/time CT-183, OR-44 listing device control block (GPIB) CT-137 listing devices OR-374 listing error specification PP-13 Common Index IG-303 listing hardware configuration OR-368 listing insert mask OR-289 listing members CT-168, CT-199, OR-175 listing members, all with $DISKUTI OR-168 with $DIUTIL CT-199 listing processor program, $EDXLIST PP-24 listing program function key codes OR-410 listing program function keys OR-331 listing program members OR-168 listing secondary index directory IG-156 Ii sting status of all tasks OR-162 listing storage OR-30 listing supervisor configuration OR-375 listing terminal names/types/addressses OR-465 listing variables CT-183 listing volumes on disk or diskette OR-362 LISTP command ($OISKUTl) OR-168 LISTT command ($OISKUTl) OR-168 LL command ($OISKUTl) OR-175 LL command ($OISKUT2) OR-186 LO command ($IAMUTl) CA-II0, IG-162 LOAD Indexed Access Method CALL description CA-81, IG-118 return codes CA-83, IG-120 LOAD instruction coding description LR-217 example SM-146 overview LR-28 preparing a job using SM-13l required parameters SM-132 return codes LR-221, MC-244 return codes from Sort/Merge SM-135 'used with overlays SG-40 when to use SM-131, wi th automat i c in,itialization SG-174 load mode IG-61 load point defined LR-26 loading $SNA SI-3 loading control store OR-476 loading image store OR-477 loading indexed file CA-l10, IG-162 loading overlay programs ID-19 loading overlay segments ID-20 loadi ng program $L,operator command OR-32 automatic initialization SG-174 EXEC $JOBUTIL command OR-383 internals 10-16 loading secondary index IG-75 loading SNA support SN-I00 LOCAL ATTNLIST LR-50 LOCATE command ($FSEDIT) OR-277 location dictionary, $EDXASM ID-277 locking queues AM-IO, 1M-II locks, Indexed Access Method block and record AM-IO, 1M-II conditional processing IG-88 IG-304 SC34-0404 description CA-54, IG-87 file AM-12, IM-13 overview CA-3, IG-2 LOG command ($JOBUTIL) 'OR-387 log data set for I/O errors OR-400 LOG macro SG-263 log statement default if not written SM-S7 how to wri te SM-58 purpose SM-57 relative position SM-57 logging device for messages changing SM-59 defaults SM-59 logging on to host ($RJESNA) SN-207 logical end-of-file on disk SG-354 logical screen, terminal support examples CT-33, CT-34 us; ng IOCB and ENQT to define CT-33 using TERMINAL to define CT-32 logical unit, defining SH-114 logon menu, session manager OR-46 low storage during IPL ID-6 during program load ID-16 LP command ($DISKUTI) OR-176 LP command ($OISKUT2) OR-181 LPCTS command ($DISKUTl) OR-168 LR function ($PDS) SG-331 LR subcommand ($DICOMP) CT-179 LS command ($OISKUTI) OR-177 LS command ($IOTEST) OR-375 LSB (level status block) ID-42 LT (less than) LR-21 LU command ($DISKUT2) OR-185 LU parameter NETCTL SH-48 NETGET SN-37 HETINIT SN-19 NETPUT SN-30 NETTERM SH-59 SHALU SN-l14 LUE control block, LUE SI-342 LUL control block, LUL SI-342, SI-352 LUS, system services control block SI-366, SI-367 LUSTAT command SH-136 macro assembler internals ID-279 macro library SG-7 macro library/host SG-8 magazine, diskette See 4966 Diskette Magazine Unit magnetic tape See tape mapping storage SG-I04 MASK line command ($FSEDIT) OR-289 master control block description IM-5 printer spooling description ID-144 listing ID-373 See also MCB (master control block) '-'\., ( _, ,I \ 1 .. ,'Ij c o (~: o Mathematical and Functional Subroutine Library SG-8 MCB (master control block) description AM-5, IM-5 equates AM-51 MCB (member control block) SG-333 MO command ($DIUTIL) CT-200 member area SG-324 member control block (MCB) SG-333 MENU command ($FSEOIT) OR-277 MENU Multiple Terminal Manager CALL coding description CA-264 overview of CA-206 MENU, Multiple Terminal Manager CALL internals M-ll menus option selection menu OR-52 parameter selection menu OR-52 primary option menu OR-55 primary option menus OR-264 See also session manager, menus See session manager, menus MERGE (merge) contrasted with sort SM-l example SM-16 func":i ons supported SM-13 output record size, determining SM-242 specifying in header SM-60 MERGE option ($FSEOIT) OR-271 message acknowledgment SN-33 message cancellation SN-52 message completion criteria SN-39 message flow, suspending SN-53 Message Format Service (MFS) SN-161 message length, specifying SN-30 message numbers SN-24 message output changing output device SM-57 overriding header statement SM-60 specifying SM-64 with header statement SM-64 with log statement SM-60 message resynchronization data set SN-63 data set content SN-64 data set size SN-63 disk considerations SN-65 main storage considerations SN-65 protocols for STSN SN-65 message resynchronization, definition of SN-7 message sending utility, $TERMUT3 OR-487 message syntax MC-3 message verification SN-52 message verification, requesting SN-30 message/module cross-reference, Sort/Merge SM-193 message, PRINTEXT instruction LR-248 messages compilation time ($EOXASM) MC-169 compilation time ($S1ASM) MC-191 definition SN-6 examples wi th explanation SM-36 execution time (alphabetized) MC-ll execution time (with variables) MC-5 list SM-249 program status SM-247 specification SM-247 statistics SM-247 system initialization SG-204 warning message option SM~66 messages, definition of SN-6 MFA See Multifunction Attachment mi xed preci si on combinations LR-15 MM line command ($FSEOIT) OR-290 mode table, patching $RJESNA SN-227 mode, load IG-61 mode, processing IG-61 modified data reading from the 3101 CT-57 reading from the 4978 CT-57 3101 considerations CT-71 3101 example CT-73 modified data tags CT-71 modify defaults, Remote Management Utility CT-320 modifying characte~ image screen OR-246 modifying character string with $EDITI/N OR-214 with $FSEDIT OR-273 modifying default storage allocation OR-190 modifying existing data set OR-267 modifying image/control store OR-468 modifying storage or registers OR-157 modifying the TERMINAL statement 10-116 module descriptions GPIB 10-71 Indexed Access Method common AM-23, IM-45 data paging 1M-53 secondary inde~ 1M-55 Multiple Terminal Manager component M-25 link modules T-18 overlay programs T-32 program modules T-8 utility M-29 utility program modules T-26 printer spooling 10-71 Remote Management Utility 10-217 Series/l to Series/l 10-72 supervisor 10-57 370 Channel Attach T-7, 1-25 module names, supervisor SG-465 module removal, $IAMSTGM IG-206 MOVE instruction coding description LR-225 overview LR-14 MOVEA instruction coding description LR-229 overview LR-14 Common Index IG-305 MOVEBYTE subroutine, $EDXASM ID-262 moving block of text OR-290 $FSEDIT line command OR-290 moving line pointer down OR-219 to bottom OR-213 to top OR-232 UP OR-233 moving tape OR-449 moving text • $EDITI/N subcommand OR-225 movi ng volumes on di sk or diskette OR-404 MP function ($PDS) SG-327 MP subcommand ($DICOMP) CT-180 MSGDATA parameter, NETINIT SN-20 MT command ($TAPEUTl) OR-449 MTMFILE5 utility CA-319, M-29 MTMPFMAP utility CA-315, M-29 MTMPGM5 utility CA-316, M-29 MTMRPT utility CA-318, M-29 MTMSCRNS utility CA-317, M-29 MTMSTORE file CA-212, M-20 MTM5TR volume CA-218 MTMUPDT utility CA-312, M-29 MTMUT2 utility CA-308, M-30 multi conditional force data types allowed 5M-112 definition 5M-119 how to specify 5M-119 keep/drop from output record 5M-64 length, maximum in a field statement 5M-112 specifying in header 5M-63 total in include set SM-119 number, maximum 5M-119 required entries in field statement SM-109 rules for SM-115 Multifunction Attachment attachment with 3101 Display Terminal CT-477 changing random access memory SG-212 considerations for attachment of devices 5G-113 defining SG-90 description CT-9, CT-467 module description ID-69 use in binary synchronous communications CT-l1 use with EDX terminals CT-9 multiple overlay areas, $EDXASM ID-249 Multiple Terminal Manager accessing the TEB CA-233 adding a new device M-6 application execution CA-217 application organization CA-219 application program design considerations COBOL CA-283 EDL CA-281 FILEIO CA-290 FORTRAN CA-285, PL/I CA-287 spooling CA-289 application program stub M-9 application swap-out CA-218 automatic OPEN/CLOSE CA-242 CALL functions IG-306 5C34-0404 ACTION CA-225, M-I0 BEEP CA-229, M-9 BLINK CA-231, M-I0 CDATA CA-233, M-9 \ CHGPAN CA-236, M-9 CYCLE CA-238, M-I0 FAN CA-240 FILEIO CA-242, M-9 FTAB CA-254, M-26 GETCUR CA-258, M-I0 LINK CA-260, M-l1 LINKON CA-262, M-ll MENU CA-264, M-l1 overview CA-205 SETCUR CA-266, M-9 SETFMT CA-268, M-I0 5ETPAN CA-272, M-9 WRITE CA-275, M-I0 CCB with printer spooling M-13 component flow M-3 components CA-205, M-3 concepts and facilities CA-201 creating additional copies CA-386 data files MTMSTORE M-20 MTM5TR volume M-20 PRGRMS volume M-5 data files/volumes considerations CA-290 MTMSTORE file CA-212 MTMSTR volume CA-2l8 PRGRMS volume CA-212 SCRNS volume CA-213 SIGNONFL file CA-293 TERMINAL file CA-212 debugging applications CA-300 direct file FCA format CA-244 request types CA-247 disk file support CA-208 distribution CA-362 ending application CA-304 endi ng manager operation CA-304 equate tables M-31 examples dynamic screen creation CA-324 dynamic screen modification CA-323 file m.aintenance transaction application CA-327 indexed file update CA-326 sample signon program CA-352 sample terminal I/O error program CA-352 screen display techniques CA-325 screen retrieval and display CA~321 file control area (FCA) CA-243 file management M-8 file manager CA-208 FILEIO direct file access CA-290 FILEIO indexed file access CA-291 hardware requirements CA-201 indexed fi Ie considerations CA-291 FCA format CA-245 request types CA-246 c o c' o input buffer address CA-219 input buffer contents during I/O operations CA-220 installation CA-369 interrupt information byte (lIB) CA-220 introduction CA-4 link-edit considerations COBOL CA-298 EDL CA-296 FORTRAN CA-297 PL/I CA-299 module descriptions M-25 output buffer CA-220 overview SG-12 printer spooling, with M-13 program management M-3 program manager CA-205 programming considerations COBOL CA-283 EDL CA-281 FORTRAN CA-285 PL/I CA-287 return codes FILEIO CA-247 FTAB CA-255 SETFMT CA-270 SETPAN CA-273 summary CA-278, MC-246 screen formats SCRNADD CA-313 SCRNFIOI CA-319 SCRNFI02 CA-320 SCRNIPL CA-214 SCRNMENU CA-2'6 SCRNMTMI CA-308 SCRNMTM2 CA-309 SCRNMTM3 CA-310 SCRNMTM4 CA-311 SCRNPFMP CA-315 SCRNPGM CA-314 SCRNSIGN CA-215 SCRNSREP CA-317 SCRNUPDT CA-312 screen image manager M-7 signing on and off CA-212 SIGNOFF CA-295 SIGNON CA-293 software requirements CA-204 spooling considerations CA-289 storage environment M-ll storage requirements SG-222 summary CA-278 swap-out data set CA-218 system generation considerations CA-367, SG-176 tailoring CA-376 terminal environment block (TEB) CA-220, M-17 terminal manager CA-207 terminal servers M-6 terminal states M-39 utilities $MTMUTI CA-307 $RECON CA-306 DISCONNECT CA-306 MTMFILES CA-319 MTMPFMAP CA-315 MTMPGMS CA-316 MTMRPT CA-318 MTMSCRNS CA-317 MTMUPTD CA-312 MTMUT2 CA-308 RECONNECT CA-306 3101 considerations CA-202 MULTIPLY instruction coding description LR-230 overview LR-14 precision table LR-231 multiprogramming automatic initialization SG-174 design feature SG-16 multitaskini SG-16 NBLINK subroutine CA-476 NCP major node definition operands SN-313 sample SN-318 Series/l related parameters SN-313 HE (not equal) LR-21 _ negative acknowledgments, respondi ng to SN-33 HETBIND return codes MC-260, SH-94 NETCLOSE MC-261 HETCLOSE return codes MC-261, SH-93 NETOPEN MC-262 HETCTL instruction coding examples SH-54 description SH-47 overview SN-9 return codes MC-251, SH-55 summary of protocols SN-50 syntax SN-47 types of control operations SN-49 HETGET instruction coding example SN-43 description SN-37 overview SN-8 return codes MC-253, SH-44 summary of protocols SN-38 syntax SH-37 HETHOST instruction description SN-17 syntax SN-17 , HETINIT i nstructi on coding examples SH-17 description SN-19 overview SH-6 return codes MC-256, SH-28 return codes from STSN processing SH-85 summary of protocols SH-23 syntax SN-19 HETOPEH return codes MC-262, SH-89 NETRECV MC-263 NETPUT instruction coding examples SH-34 description SN-29 overview SH-6 return codes MC-257, SN-36 summary of protocols SH-31 syntax SN-29 HETRECV return codes MC-263, SN-90 NETSEND MC-264 HETSEND return codes MC-264, SH-91 Common Index IG-307 NETUBNO MC-267 NETTERM instruction coding example SN-61 description SN-59 overview SN-10 return codes MC-258, SN-62 syntax SN-59 NETUBNO return codes MC-267, SN-94 session termination MC-268 network activation checklist SN-311 network control program (NCP) SI-1 newline subroutine ID-106 NEXTQ instruction coding description lR-233 overview LR-24 timers SG-42 no data record, PASSTHRU function of $RMU CT-293 NOFlOAT module description ID-66 NOLIST command ($EOXASM) PP-13 NOMSG command ($JOBUTIL) OR-388 non-compre~sed byte string CT-S8 non-labeled tapes description SG-299 layout SG-299 processing SG-300 NORING parameter, SNAPU SN-105 normal control field contrast with opposite control field SM-116 data types allowed SM-112 dropping SM-64 example 1-13 SM-29 how to specify SM-116 keep/drop from output record SM-64 length, maximum in a field statement SM-112 specifying in header SM-64 required entries in field statement SM-109 rules SM-12l specifying in header SM-64 when to drop SM-65 NOTE instruction coding description LR-236 function SG-57 overview lR-16 Version 3 conversion considerations SG-435 notify of an event See POST instruction NP;command ($IAMUT1) IG-166 NQ command ($COPYUT1) OR-1l3 NSPE command SN-136 nucleus initialization 10-5 NULL character, defining OR-332 NULL command ($IMAGE) OR-332 object data set for $EOXASM object module record format 10-381 object text elements, $EOXASM 10-237 obtaining a stand-alone dump SG-240 IG-308 SC34-0404 PP-11 OFF function, CONTROL instruction LR-65 OLE (operand list element) $EOXASM format 10-239 in instruction parsing 10-242 used in $10EF ID-267 omit set definition SM-93 how to specify SM-95 omit statement how to specify SM-95 purpose SM-93 op (operation field) LR-3 OPCHECK subroutine, $EOXASM 10-258 opening a data set on disk or diskette 10-90 on tape 10-94 opening EXIO device, EXOPEN 10-155 opening member, $POS utility SG-334 OPENT subroutine CA-477 operands defined lR-3 keyword LR-5 parameter naming (Px) LR-8 operating environment minimum system configuration SG-23 required for program preparation SG-23 operation codes description 10-56 emulator command table listing 10-323 in $EDXASM compiler 10-242 operations using index registers LR-15 operator command overview ($RJESNA) OR-42l, SN-210 operator command/utility selection guide OR-9 operator commands OR-21, SG-61 operator commands overview OR-2 operator termination ($EOXLINK) PP-69 operators, arithmetic LR-4 opposite control field contrast with normal control field SM-116 data types allowed SM-112 dropping when not ascending SM-65 examples SM-18 how to specify SM-116 keep/drop from output record default drop with variable records SM-6S example SM-20 specifying in header SM-64 when to drop SM-6S length, maximum in a field statement SM-112 specifying in header SM-64 total in include set SM-116 numbert maximum SM-116 required entries in field statement SM-109 rules for (see also control field) SM-116 .option selection menu OR-52 'optional features support LR-13 orderly session termination SN-60 c o o OTE $EDXASM instruct ion ID-253' output buffer, Multiple Terminal Manager contents during I/O operations CA-220 description CA-220 internals M-23, M-37 output considerations for terminal support end of forms for printers CT-24 forms control CT-23 output line buffering CT-23 OUTPUT control record ( $ LIN K) PP-8 9 output data set SM-9 output exit example SM-146 returning control SM-142 rules for passing output records SM-142 uses SM-36 writing program with SM-139 output operations, GPIB ID-125 output record size, determining SM-241 overflow indicator example SM-29 how to specify SM-127 purpose SM-127 rules 5M-127 overflow, arithmetic LR-15 OVERLAY control statement ($EDXLINK) PP-55 overlay function process table 1D-192 OVERLAY option ($EDXASM) PP-14 overlay support overlay program SG-37, T-30 loading ID-19 subroutines, $EDXASM ID-257 supervisor initialization routines 5G-210 overlay segment 5G-37 considerations PP-78 loading 1D-20 storage layout PP-78 overlay table, Remote Management Utility ID-192 overlay work area, $EDXA5M ID-247 pacing 5N-131 pacing response 5N-132 pad characters, specifying 5N-I05 PAD parameter, 5NAPU 5N-I05 page eject 5G-61 page table, data paging 1M-36 parameter equate tables LR-431 parameter list 5M-132 parameter naming operands (Px=) 5N-ll parameter naming operands in instruction format LR-8, 5N-11 parsing, input data ($EOXA5M) 10-240 partial messages, sending 5N-35 partition assignment, changing CP command ($GPIBUT1) CT-135 partitioned data sets 5G-321 partitions 5G-43 pass control to log routines 5G-263, 5G-265 passing parameters using $JOBUTIL OR-389 PA55THRU function communications flow CT-284 conducting a session CT-286 establishing a session CT-281 example of passing parameters CT-256 internals ID-205 logic flow diagram CT-288 overview CT-281 programming considerations CT-294 record blocking CT-294 sample program CT-306 types of records CT-289 virtual terminals CT-294 with $OEBUG CT-314 PA5STHRU record, Remote Management Utility CT-253 PATCH command ($OEBUG) OR-157 patch, Remote Management Utility defaults CT-320 patching $RJESNA mode table SN-227 patching disk/diskette OR-181 patching storage OR-33, 5G-61 patching storage or registers OR-157 PAUSE command ($JOBUT1L) OR-390 PC function ($P05) SG-329 PC subcommand ($OICOMP) CT-181 PO command ($IOTEST) OR-370 performance (Sort/Merge) SM-155 performance aids supervisor initialization routines 5G-2I0 using 1024-byte sectors 5G-208 performance volume defined 5G-96 description SG-208 performing a customized system generation 5G-194 PF keys See program function (PF) keys PG command ($IAMUT1) IG-167 PGPIB command ($GP1BUTl) CT-142 phase execution, $51A5M 10-281 physical unit services control block, PUS SI-371, SI-372 physical unit, defining 5N-I04 PI See process interrupt P10 program directory 5G-27 PIXB (primary-level index block) CA-161, 1G-32 PL subcommand ($OICOMP) CT-181, CT-182 realtime data member CT-184 PL/I estimating storage requirements SG-228 execution requirements 5G-25 link editing SG-72 overview SG-I0 program preparation requirements 5G-25 use with Multiple Terminal Manager CA-287 PLC, program list control block SI-369, 51-370 Common Index 1G-309 plot control block (graphics) CT-156 plot curve data member, $PDS utility SG-325 PlOTCB control block CT-156 PlOTGIN instruction coding description CT-155 overview CT-155 PlU bracket initiation SN-128 POINT instruction coding description lR-238 function SG-57 overview lR-16 polling and selection, BSC CT-215 post codes BIND event MC-218, SN-94 channel attach CT-438, MC-219 See also completion codes and return codes tape CONTROL lR-67, MC-222 tape READ lR-296, MC-222 tape WRITE lR-397, MC-222 POST command ($DEBUG) OR-159 POST instruction coding description lR-240 internals ID-48 overview lR-28, SG-31 POST supervisor function ID-36 posting GPIB operation complete CT-142 power outage, restoring after SG-174 PP command ($IAMUT1) IG-168 PR command ($CHANUTl) CT-409 PR command ($OICOMP) CT-168 precision combinations allowed lR-15 floating-point arithmetic lR-16 integer and logical lR-14 precision table lR-15 PREPARE IOCB command lR-201 PRGRMS volume CA-212 PRGRMS volume, Multiple Terminal Manager M-5 primary OR-264 primary commands, $FSEDIT OR-272 primary control statement data set PP-48 primary option menu, $FSEOIT OR-264 primary option menu, session manager OR-55 primary-level index block (PIXB) CA-161, IG-32 PRINDATE instruction coding description lR-242 function SG-79 overview lR-30, SG-42 PRINT statement coding description lR-244 overview lR-19 print utilities, remote job entry CT-343 printer function, $RJESNA SN-204 printer spooling advantages of CA-3 automatic writer start CA-441 capacity parameters changing CA-437 defaults CA-439 cold starting 'CA-438 components operator command CA-405 IG-310 SC34-0404 spool manager £A-400 spool utility CA-404 spool writers CA-402 concepts and facilities CA-393 considerations for Multiple Terminal Manager user CA-289 Pl/I user CA-408 control blocks descriptions ID-143 listings 10-371 controlling from a program controlling spool job processing CA-449 finding if spooling active CA-454 preventing spooled output CA-447 separating SPooled output CA-449 summary CA-447 cross-reference CA-409 data flow CA-397 functions summary CA-393 install i ng and optimizing CA-455 internals $SPOOL program ID-135 control block listings 10-371 control blocks 10-143 introduction CA-396 language considerations CA-408 Multiple Terminal Manager M-13 operator functions change max active spool jobs CA-441 change max spool jobs CA-441 change spool data set CA-441 change spool devices CA-441 delete generic spool jobs CA-420 delete spool jobs CA-418 display spool status CA-421 hold spool job(s) CA-426 invoking CA-412 keep spool job CA-427 release spool job(s) CA-429 restart spool writer CA-431 start spool writer CA-435 stop spool facility CA-430 stop spool writer CA-433 overview SG-18 requirements to use CA-397 restarting CA-438 return codes MC-249 starting CA-401 storage requirements SG-219 supervisor interface module 10-139 system generation CA-397 system generation considerations SG-176 term definitions CA-395 terminating CA-402 tips and techniques CA-406 PRINTEXT instruction coding description LR-247 function SG-79 overview LR-30 return codes lR-253 use in terminal support o c o o o changing individual fields CT-40 using on 3101 terminals CT-44 PRINTIME instruction coding description LR-259 function 5G-79 overview LR-30 printing B5C trace files CT-237 printing graphics member CT-168 PRINTNUM instruction coding description LR-261 function 5G-79 overview LR-30 PRINTON command ($RJE5NA) 5N-213 PRINTON command ($RJE2780/$RJE3780) CT-340 priorities, $RJE5NA workstation 5N-205 priorities, 5NA task 5N-11 priority assigned to tasks 5G-30 design feature 5G-16 illustrated 5G-34 program LR-267 SNA ta sk 5N-11 task LR-335 task internals 10-30 work station ($RJESNA) SN-205 PRNT command ($IMAGE) OR-334 problem determination access method AM-31, 1M-57 binary synchronous communications CT-235 BSC utilities for CT-10 Remote Management Utility 10-215 Sort/Merge SM-179 terminal I/O 10-112 PROC command ($JOBUTIL) OR-392 procedures, session manager See session ~anager PROCESS Indexed Access Method CALL description CA-84, IG-122 return codes CA-86, IG-125 process interrupt control block (SBIOCB) 10-159 description SG-357 100EF statement 5G-361 IOTEST command OR-368 supported by sensor I/O SG-20 user routine (5PECPI) 5G-364 processing compacted data 5N-223 processing compiler output with $LINK or $UPOATE PP-7 processing mode IG-61 processor status word (PSW) MC-282, 5G-275 processor-to-processor communications transmission protocol CT-81 use in Series/1 to Series/1 Attachment CT-87 PROGEQU (program header equate table) LR-431 program assembly or compilation PP-2 program check message, formats MC-279, SG-273 program control LR-20 Program Design Language (POL) listing conventions SI-6 overview SI-6 verbs SI-7 program design language, SOLe layer modules CDCABNO SI-244 CDCADDTO 51-246 CDCATTN 51-247 CDCBLDDC SI-248 CDCCL500 SI-250 CDCCMDPR 51-251 CDCCMDR SI-254 CDCCNTBU 51-255 CDCCNTRL SI-256 CDCD15AB 51-257 CDCENABL SI-259 CDCIHT SI-260 CDCISXMT SI-267 CDCNOI SI-271 CDCOIO SI-272 CDCPERME SI-274 CDCPURGE SI-275 CDCRCSS SI-276 CDCSETRE SI-278 program design language, Series/1 SNA base layer modules CDOACTLU SI-144 CDOBETBR SI-145 CDDB5MGR SI-146 CDDCLEAR 51-147 CDDCOMSC SI-148 CDDCPMGS SI-150 CDOCPMGX SI-151 CDDCP25 SI-152 CDOCTOLT 51-153 CDOCTGEN 51-154 CDDCTPRC SI-156 CDODRQRV SI-157 CDDEXRCV SI-158 CDDFISC SI-159 CDDGTBFS SI-161 CDDHXMGR 51-162 CDDINM5G SI-165 CDOl5EG SI-170 CDOLUPRG 51-172 CDDMRSCV 51-175 CDDNTDAC 51-176 CDDNTRCV 51-178 CDDNT5NO SI-180 CDDPCLUR SI-186 CDOPCNG5 SI-190 CDOPCPUR SI-191 CDOPC20T 51-194 CDOPSVOO SI-195 CDOPUSIN SI-198 CDDQCHK SI-199 CDOQOFF SI-200 CDOQON 51-201 CDDRECVY SI-202 CDDRELBL SI-203 CDDRElBS SI-204 CDORQCV SI-174 CDDRQRCV SI-205 CDDRQRSZ SI-211 CDDRQ5HN SI-212 CDDRQSNX SI-219 CDDR5RCV SI-220 CDDRS5NN SI-222 CDDR55NX SI-223 CDD5ElB SI-224 CD05E5CL SI-225 CDDSTPLK 51-227 CDD5VCCR SI-228 CDDZPNMS 51-229 NETBIND SI-134 NETCLOSE SI-140 NETOPEN SI-129 Common Index IG-311 NETUBND 51-139 program design language, 5eries/1 5NA top layer modules CDDFANE 51-98 CDEATTN 51-24 CDEBUFF 51-50 CDECD 51-25 CDECHKA 51-26 CDECHKRU 51-27 CDECHKOO 51-33 CDECLEAN 51-34 CDECTLOA 51-36 CDECTLOB 51-38 CDECTlOC 51-40 CDECTLOD 51-41 CDECTlOO 51-42 COECTl01 51-44 CDEOEQ 51-46 CDEDEQAB 51-47 CDEENQ 51-48 CDEEXIT 51-49 CDEGBUFF 51-51 CDEGETOO 51-52 CDEGET01 51-53 CDEINITA 51-59 CDEINITO 51-61 CDEINIT1 51-62 CDEP05T 51-64 CDEPUTOA 51-65 CDEPUTOO 51-69 CDEPUT01 51-72 CDERCVRU 51-75 CDEREJ 51-76 CDERSP SI-77 CDERSYNA 51-78 COERSYNC SI-79 CDE5NDRU 51-81 CDESTSN SI-83 COESTSNA SI-85 CDETERMA SI-88 COETERMO SI-91 COETERM1 SI-95 program end record, PASSTHRU function of $RMU CT-293 program execution via Remote Management Utility EXEC function CT-264 PASSTHRU function CT-281 SHUTDOWN function CT-276 program function (PF) keys internals 10-102 listing 4978, $PFMAP utility OR-410 PF6 with spool writer active CA-407 use in terminal support CT-20 use with attention lists CT-21 when using $FONT OR-252 when using $FSEDIT OR-262 when using $IMAGE OR-331 when using session manager OR-70 Program Function key record, PASSTHRU function of $RMU CT-289 program header description ID-21 listing ID-365 program identifier, $JOBUTll command OR-393 PROGRAM instruction coding description lR-266 overview LR-28, SG-31 program header generation ID-21 IG-312 SC34-0404 program library update See $UPOATE utility program library update (see ,$UPOATE) program list control block, PLC SI-369, SI-370 program loading See LOAD instruction program module sectioning functions LR-20 program organization, Sort/Merge SM-180 program preparation $EDXASM PP-l1 $S1ASM PP-27 example SG-383 host assembler PP-39 on System/370 PP-4, SG-7 overview PP-1, SG-6, SG-21 Remote Mangement Utility ID-210 summarized SG-66 utilities OR-56, PP-1 program sequencing functions LR-21 program structure SG-29 program table, Multiple Terminal Manager M-21, M-31 program termination, EXI0 10-157 program/storage manager, Multiple Terminal Manager M-3 program/task concepts SG-29 PROGSTOP statement coding description LR-274 overview lR-28, SG-31 prompting and advance input CT-22 protected field OR-322 protocol, HCF transmission ID-184 protocols, resynchronization SN-65 PRT3780 utility SG-64 overview SG-15, SG-64, SG-85 PS command ($IAMUT1) IG-169 PSW (processor status word) MC-284, SG-275 PSW bit settings MC-282 PSW interrupt types MC-282 punch data set formats SN-213 punch data set, defining SN-213 punch function, $RJESNA SN-205 PUNCHO command ($RJESNA) SN-213 PUNCHO/PUNCHS command ($RJE2780/$RJE3780) CT-340 PUNCH5 command ($RJESNA) SN-213 PUS, physical unit services control block 51-371, 51-372 pushing a digital output address OR-368 PUT command $FONT OR-249 full-screen text editor ($FSEDIT) OR-259 PUT Indexed Access Method CALL description CA-87, IG-127 return codes CA-88, IG-128 PUT CUR subroutine CA-480 PUTDAT subroutine CA-481 PUT DE Indexed Access Method CALL description CA-89, IG-130 return codes CA-89, IG-131 PUTEDIT instruction coding description lR-276 function SV-79 ovarv;ew lR-13 return codes LR-278, MC-232 . )' ( -~ c o PUTFMT subroutine CA-485 PUTUP Indexed Access Method CALL description CA-91, IG-133 return codes CA-92, IG-134 Px parameter naming operand LR-8, SN-l1 QC command SN-137 QCB resource control block ID-45 QCB statement coding description LR-282 overview LR-28 QD queue descriptor LR-24 QE queue entry overview LR-24 QEC command SN-137 QUALITY command $DEBUG OR-160 QUESTION instruction coding description LR-284 function SG-79, SG-80 overview LR-30 queuable resources SG-42 queue control block See QCB statement queue descriptor LR-24 queue entry See QE queue entry queue processing facilities SG-41 queue processing instructions LR-24 o RA command ($TERMUTl) OR-465 random records IG-18 RATE parameter, SNAPU SN-I05 RBN (relative block number) CA-18, IG-40 RCB (Remote Management Utility control block) description ID-191 listing ID-366 RD command ($INITDSK) OR-367 RDCURSOR instruction coding description LR-287 function SG-79 overview LR-30 RDSCB parameter, NETINIT SN-20 RE command ($COPY) OR-I07 RE command ($DISKUTl) OR-168 RE command ($DIUTIL) CT-201 RE command ($GPIBUTl) CT-139 RE command ($HCFUTl) CT-370 RE command ($IAMUTl) CA-113, IG-170 RE command ($SlSlUTl) CT-I04 RE command ($TERMUTl) OR-466 RE command ($TERMUT2) OR-478 READ command ($EDITl/N) OR-208 READ IDCB command LR-201 READ instruction coding description LR-290 disk/diskette return codes LR-293, MC-234 function SG-57 overview LR-16 tape post codes LR-293, LR-296, MC-222 tape return codes LR-293, LR-295, MC-235 read operations, HCF ID-184 READDATA command ($HCFUTl) CT-368 READID IDCB command LR-201 reading analog input OR-373 reading character image table from 4979 or 4978 OR-247 reading data set into work file with $EDITI/N OR-207 with $FSEDIT OR-268 reading digital input using external sync OR-371 reading program with $UPDATE PP-I08 with $UPDATEH PP-119 reading records from host ($HCFUTl) CT-369 READOBJ command ($HCFUTl) CT-369 READTEXT instruction coding description LR-300 function SG-79 gathqr read operations CT-40 overview LR-30 reading unprotected data CT-41, CT-43 return codes LR-253 using on 3101 terminals CT-43 ready task supervisor state ID-31 READI IDCB command LR-201 READ80 command ($HCFUTl) CT-369 realtime data member $PDS utility SG-325 RT $DICOMP subcommand CT-183 receive buffers, specifying SN-114 RECEIVE function, Remote Management Uti 1 i ty communications flow CT-271 internals ID-199 overview CT-269 sample program CT-302 receive operations (NETCTL) SN-51 receiving function management headers SN-42 receiving messages SN-37 receiving messages, overview SN-8 receiving status SN-47, SN-51 RECLEN parameter, HETGET SN-37 RECONNECT Multiple Terminal Manager utility CA-306 record blocking, Remote Management Utility CT-255 record exchange, Remote Management Utility CT-253 record format, specifying in DSD statement SM-74 record formats, explanation fixed SM-77 fixed block SM-79 variable SM-81 variable blocked SM-81 record header, Remote Management Utility. CT-253 record locks, access method AM-II, IM-12 directory IM-29 internals IM-25 record selection advantages SM-6· examples SM-20 how to include SM-93 Common Index IG-313 record size, determining SM-241 record sizes, Host Communications Facility CT-349 record summarization examples SM-29 record/request processing AM-2, IM-2 recording system release level LR-36, SG-239 RECVBUF parameter, SNALU SN-114 redirecting spool jobCs) CA-41S reformatting diskettes OR-119 register conventions $SIASM 10-282 BSCAM processing 10-177 common emulator setup routine 10-53 EBCOIC to floating-point conversion 10-227 terminal I/O support ID-99 register, index LR-7 register, software LR-7 rejecting host initiated transactlons SN-41 REL command ($HCFUT1) CT-370 relating Series/l support and applications SI-3 relational statements LR-206 relative block number (RBN) CA-18, IG-40 definition of loading sequential file CA-37 RELEASE Indexed Access Method CALL description CA-93, IG-136 return codes CA-93, IG-136 releasing space, $PDS utility SG-335 releasing spool jobCs) CA-429 releasing status record ($HCFUT1) CT-370 relocating program loader 10-15 relocation dictionary, $EOXASM 10-277 RELQ command SN-137 REMARK command ($JOBUTIL) OR-394 remote job entry utilities, BSC See $RJE2780, $RJE3780, $PRT2780, and $PRT3780 remote job entry utility, SNA OR-420, SG-15, SN-201 remote job entry, SNA SG-1S, SG-85, SN-201 Remote Management Utility CORRM equates CT-330 control block CRCB) description 10-191 listing 10-366 data areas 10-191 defaults CT-320, 10-213 error handling CT-327 function table 10-191 functions CT-250, 1D-193, SG-64 general equate listing 10-369 installation CT-252 logic flow 10-196 modifying defaults CT-320 module descriptions 10-217 module list 10-212 operation CT-257, 10-193 overlay function process table 10-192 overview CT-I0, CT-249, SG-82 IG-314 SC34-0404 problem determination 10-215 program preparation 10-210 requirements CT-250 sample programs CT-300 system generation considerations CT-251, SG-176 tables 10-191 removing breakpoints and trace ranges OR-156 removing storage modules IG-206 renaming member C$D1UT1L) CT-201 renaming volumes, RV $INITDSK command OR-366 RENUM command C$FSEDIT) OR-278 RENUM subcommand ($EOIT1/N) OR-226 reorganizing indexed file CA-61, 1G-171 report data member C$PDS) SG-32S reposition line pointer See moving line pointer REQDISCONT command SN-138 request for data record, PASSTHRU function of $RMU CT-293 request record, Remote Management Utility CT-253 request/response header SN-I0l request/response header, format SN-300 requesting right-to-send SN-53 reserved labels lR-5 RESET command ($RJESHA) SH-214 RESET command, $RJE2780/$RJE3780 CT-341 RESET control statement C$EOXLINK) PP-56 RESET instruction coding description LR-314 overview LR-28, SG-31 RESET option C$EOXASM) PP-14 RESET option C$FSEDIT) OR-279 reset punch data set name SH-214 resetting device, Series/l to Series/l CT-I04 resetting GPIB adapter CT-140 resetting indexed file parameters CA-113, IG-170 resetting line commands, $FSEOIT OR-279 resident assembler routines, $SlASM 10-281 resident program loader 10-15 resolution, graphics enhanced and standard 10-225 resource control, supervisor ID-44 restart, automatic SG-174 restart, session SH-24 restarting printer spooling CA-438 restarting spool writer CA-431 restore/dump volume, $MOVEVOL OR-404 restoring disk or disk volume from tape OR-452 restoring 4974 to standard character set OR-478 RESYHC parameter, NETINIT SH-21 resynchronization data set SH-63 resynchronization data set contents SH-64 resynchronization data, disk SH-65 ;f--~ (V c o o o resynchronization data, storage SN-65 resynchronization protocols SH-65 resynchronization support, specifying SH-21 retrieving Series/l data set OR-208 RETRY parameter, SNAPU SN-I05 return codes $DISKUT3 MC-225, SG-343 $IMDATA subroutine CT-54, MC-239 $IMOPEN subroutine CT-47, MC-239 $IMPROT subroutine CT-52, MC-240 $PDS MC-226 binary synchronous communications CT-246, MC-227 channel attach CT-440, MC-229 checking SN-I0 CONVTB LR-70, MC-232 COHVTD LR-75, MC-232 description SG-232 disk/diskette LR-295, MC-234 EXIO instruction LR-141, MC-236 EXIO interrupt LR-141, MC-237 extended error MC-259, SH-87 FADD LR-148, MC-238 FDIVD lR-151, MC-238 floating point MC-238 FMULT LR-161, MC-238 FSUB LR-179, MC-238 general terminal I/O LR-254, MC-269 GETEDIT LR-183, MC-232 Host Communications Facility CT-373, MC-276 Indexed Access Method 'DELETE CA-68, IG-I02 DISCONN CA-69, IG-I04 EHDSEQ CA-71, IG-I06 EXTRACT CA-74, IG-I09 GET CA-77, IG-113 GETSEQ CA-80, IG-116 LOAD CA-83, IG-120 PROCESS CA-86, IG-125 PUT CA-88, IG-128 PUTDE CA-89, 1G-131 PUT UP CA-92, IG-134 RELEASE CA-93, IG-136 summary CA-96, 1G-139, MC-241 LOAD lR-221, MC-244 Multiple Terminal Manager CA-278, MC-246 NETBIND MC-260 NETCLOSE MC-261 NETCTL MC-251, SN-55 NETGET MC-253, SN-44 NETINIT MC-256, SN-28 NETOPEH MC-262 NETPUT MC-257, SH-36 HETRECV MC-263 NETSEND MC-264 HETTERM MC-258, SN-62 HETUBHD MC-267 printer spooling MC-249 PRIHTEXT LR-253 PUTEDIT lR-278, MC-232 READ disk/diskette LR-290, MC-234 READ tape LR-296, MC-235 READTEXT LR-253 SBI0 instruction MC-247, SG-367 SDlC device MC-248, SH-113 See a I so compl et i on codes and post codes session termination MC-268 Sort/Merge SM-135 Systems Network Architecture MC-251 tape LR-67 TERMCTRL LR-253 terminal I/O lR-306, MC-269 terminal support FILEIO CA-247 for all EDX terminals CT-28 for DEVICE=ACCA CT-29, MC-270 FTAB CA-255 GETFMT CA-474 OPENT CA-478 PUTDAT CA-481 PUTFMT CA-485 SETFMT CA-270 SETPAN CA-273 summary CA-278, CA-488 virtual terminals CT-206, MC-274 WHERES LR-389 WRITE disk/diskette LR-394, MC-234 WRITE tape LR-394, MC-235 return from immediate action routine (SUPEXIT) ID-40 return from task level (SUPRTURH) ID-40 RETURN instruction coding description LR-316 overview lR-20, SG-41 RETURN supervisor interface 1D-51 REW (rewind tape) LR-65, OR-449 rewinding tape OR-449 RH command ($TERMUTl) OR-467 RHDATA area SN-299 RI command ($BSCUT2) CT-243 right-to-send, definition of SN-7 right-to-send, granting SN-30 right-to-send, requesting SN-53 ring support, specifying SN-I05 RLOADER resident loader module description ID-72 overlay programs ID-19 overlay segments ID-20 RO command ($1AMUTl) CA-112, IG-171 ROFF (rewind offline) LR-65 roll screen, terminal support description CT-7, CT-15, CT-25 differences from static screen CT-31 sample roll screen program CT-25 ROLlOFF command ($COPYUTl) OR-113 ROLLON command ($COPYUTl) OR-112 RP command ($UPDATE) PP-I08 RP command ($UPDATEH) PP-119 RS command ($GPIBUTl) CT-140 RS command ($SlSlUTl) CT-I04 RSHUTD command SN-138 RSTATUS IDCB command LR-201 RT command ($TAPEUTl) OR-452 RT function ($PDS) SG-332 RT subcommand ($DICOMP) CT-183 RTR command SN-138 Common Index 1G-315 RTYPE parameter, NETINIT . SN-22 RV command ($INITOSK) OR-366 RWI command ($BSCUT2) CT-240 RWIV command ($BSCUT2) CT-245 RWIVX command ($BSCUT2) CT-244 RWIX command ($BSCUT2) CT-241 RWIXMP command ($BSCUT2) CT-242 SA subcommand ($DICOMP) CT-183 sample SNA application (SNAIMS) SN-263 SAVE command ($EOITl/N) OR-227 SAVE command ($IMAGE) OR-337 saving a control store OR-479 saving a formatted screen OR-337 saving current task status (TASKSAVE) 10-44 saving disk or diskette volume on tape OR-457 saving graphics data CT-183 saving image store OR-480 sav!ng session parameters SN-20 savlng storage and registers OR-491 SB command ($IOTEST) OR-372 SBIO instruction coding description SG-367 function SG-59, SG-360 return codes MC-247, SG-369 SBIOCB (sensor based I/O control block) 10-159 SC command ($TERMUT2) OR-479 scatter write operation CT-37, CT-39, CT-42 screen format builder utility See $IMAGE utility screen formats, terminal support for 31~1 CT-37 for 4978/4979 CT-36 sample for 3101 static screen program CT-79 using $IMOPEN to retrieve CT-41 screen formatting/presentation support SN-171 screen image manager, Multiple Terminal Manager M-7 screen images buffer sizes CT-54 retrieving and displaying CT-41 storage format M-22 using $IMAGE subroutines CT-45 SCREEN instruction coding description CT-157 interprogram dialogue overview CT-157 screen table, Multiple Terminal Manager M-21, M-31 screens, terminal support logical screen See logical screen, terminal support roll screen See roll screen, terminal support static screen See static screen, terminal support IG-316 SC34-0404 SCRNAOD screen CA-313 SCRNFIOI screen CA-319 SCRNFI02 screen CA-320 SCRNIPL screen CA-214 SCRNMENU screen CA-216 SCRNMTMI screen CA-308 SCRNMTM2 screen CA-309 SCRNMTM3 screen CA-310 SCRNMTM4 screen CA-311 SCRNPFMP screen CA-315 SCRNPGM screen CA-314 SCRNS volume CA-213 SCRNSIGN screen CA-215 SCRNSREP screen CA-317 SCRNUPDT screen CA-312 scrolling, $FSEOIT OR-261 SCSS IDCB command LR-201 SDLC buffers, specifying SN-112 SDLC device address SN-I05 SDLC device I/O retries SN-I07 SDLC support options SN-I08 SDLC error logging SN-12 SDLC log record, format SN-12 SDLC return codes MC-248, SN-113 SDLC time-outs, specifying clear-to-send SN-I09 data set ready SN-I09 data terminal ready SN-I09 default value SN-I09 hold line active SN-I09 SDT command SN-138 SE command ($HCFUTl) CT-370 SE command ($IAMUTl) CA-114, IG-173 searching and dumping tape OR-437 second-level index block (SIXB) CA-164, IG-35 secondary control statement data set PP-48 secondary index IG-67 secondary index directory IG-68 secondary index, Indexed Access Method action chart IM-27 module descriptions 1M-55 secondary keys IG-67 secondary logical unit type P . formats and protocols advantages of Series/l as SLU type P SN-169 example of SLU type P/DPM configuration SN-169 message resynchronization SN-168 overview SN-165 relation to MFS formatting ~N-167 selecting SLU type P support SN-166 SLU type P without DPM SN-165 secondary option menus, session manager OR-56 sectioning of program modules LR-20 sector size for diskette initialization $DASDI utility OR-124 disk (4963) OR-136 sector, disk/diskette SG-46 segmenting SN-131 selecting paging IG-167 selection, record example SM-20 how to specify SM-95 self-defining terms LR-5 o o c o o send buffers, specifying SN-114 send data, HX $DICOMP subcommand CT-177 SEND function, Remote Management Utility communications flow CT-275 internals 10-198 overview CT-273 send/receive buffers, SDLC SN-I06 SENDBUF parameter, SNALU SN-114 sending commands to host SN-211 sending function management headers SN-32 sending message to another terminal OR-487 sending messages SN-29 sending messages, overview SN-6 sending partial messages SN-35 sending record to host, Host Communications Facility CT-364 sense codes SN-305 sensor based I/O assignments SG-359 control block (SBIOCB) ID-159 device data block (DDB) listing ID-358 module descriptions ID-70 statement overview SG-360 storage requirements SG-220 support summarized SG-20 SENSORIO statement description SG-lOl function SG-59 separator records SH-205 sequence numbers SN-63 sequencing instructions, program LR-21 sequential access, Indexed Access Method IG-90 serially reusable resource (SRR) ID-48, SG-42 Series/I layer elements SI-5 Series/I network activation procedure SN-309 Series/I screen formatting/presentation support SN-170 Series/I SNA base layer module cross reference SI-230 overview SI-4 program design language (PDL) SI-129 visual table of contents (VTOC) SI-103 Series/I SNA Control Block Data Maps BIND parameter control block (BND) SI-282 branch vector table (BVT) SI-286 correlation table entry, CTE SI-290 data control block, DCB SI-302 data link buffer, DLB SI-317 data link terminal, DLT SI-327 data set description, DSD SI-334 device descriptor block, DDB SI-306 function address table, FAT SI-337 immediate device control block, IDC SI-340 LUE control block, LUE SI-342 LUL control block, LUL SI-342, SI-352 physical unit services control block, PUS SI-371, SI-372 program list control block, PLC SI-369, SI-370 SNA data area, OAT SI-294 system services control block, LUS SI-366, SI-367 Series/l SNA instructions, overview SN-6 Series/I SNA SDLC layer module cross reference SI-280 overview SI-4 program design language (PDL) SI-244 visual table of contents (VTOC) SI-233 Series/l 5NA subset 5N-3 Series/I 5NA system generation 5N-l03 Series/1 5NA top layer module cross reference 51-100 overview 51-4 program design language (POL) 51-24 visual table of contents (VTOC) 51-11 5eries/1 to Series/l components CT-83 data transfers CT-84 error recovery CT-86 exercise attachment See $SlSlUTl utility 86 initiating processor CT-84 internals interrupt processing 10-132 request processing 10-129 IPL function CT-86 overview CT-7, CT-83, 5G-19, 5G-80 posting an event control block (ECB) CT-87 processor relationships (IPL) CT-84 program synchronization CT-84 programming considerations CT-84 reconfiguring CT-85 responding processor CT-84 return codes MC-274 sample programs CT-90 storage requirements 5G-219 using direct I/O CT-85 service request (5RQ) CT-116 session activation SN-17 session manager adding an option OR-80 automatic creation/deletion of data sets $SMOELET data set deletion control data set OR-51 $SMMALLOC data set allocation control data set OR-50 disk utilities OR-50 building a $JOBUTIL procedure OR-87 communication utilities OR-66 creating a new menu OR-81 data management OR-59 diagnostic utilities OR-68 execute program utilities OR-64 Common Index IG-317 graphics utility OR-63 interactive interface ($EDXLINK) PP-68 invoking OR-46 invoking a $JOBUT1L procedure OR-87 job stream processor utilities OR-64 logon OR-47 menus minimum partition size required OR-71 operational overview OR-71 option combinations OR-69 overview OR-71 primary option OR-55 procedures OR-77 program function keys OR-70 program preparation utility OR-56 programs OR-76 secondary option OR-56 session manager non-interactive interface ($EDXLIN PP-68 storage usage OR-71 tailoring the session manager terminal utilities OR-61 text editing utility OR-56 updating a primary option menu OR-8l updating a procedure OR-83 utilities supported session parameters, saving SN-20 session partner, definition of SN-6 ses~ion restart SN-24, SN-143 session termination return codes MC-268 session termination, immediate SN-60 session termination, orderly SN-60 session termination, overview 5N-lO session, definition of SN-6 session, PASSTHRU See PASSTHRU function session, termination SN-59 sessions, sample $RJESNA SN-218 SESSPRM parameter, NETINIT SN-20 SET command ($HCFUT1) CT-370 set time and date SG-61 SETCUR, Multiple Terminal Manager CALL coding description CA-266 internals M-9 overview of CA-207 SETEOD subroutine SG-354 SETFMT, Multiple Terminal Manager CALL· coding description CA-268 internals M-lO overview of CA-207 return codes CA-270 SETPAN, Multiple Terminal Manager CALL coding description CA-272 internals M-9 overview of CA-208 return codes CA-273 setting breakpoints and trace ranges OR-149 setting date and time OR-36 IG-318 SC34-0404 setting indexed file parameters CA-114, IG-173 setting paging area size IG-168 setting status ($HCFUT1) CT-370 setting tape offline OR-449 setup procedure for $JOBUTIL OR-376 with $JOBUT1L OR-378 SG command ($IOTEST) OR-372 SHIFTL instruction coding description LR-318 overview LR-14 SHIFTR instruction coding description LR-320 overview LR-14 SHUTC command SN-138 SHUTD command SN-139 SHUTDOWN function, Remote Management Utility CT-276, 1D-207 S1 command ($TERMUT2) OR-480 51G command SN-139 S1GNONFL file CA-293 single task program SG-31 SIXB (second-level index block) CA-164, IG-35 SLE sublist element, $EDXASM format ID-240 in instruction parsing ID-242 instruction description 1D-255 used in $IDEF 1D-267 SLU bracket initiation SN~128 SNA base modules SI-230 SNA base support, overview SN-99 SNA command and data flows controlling message flow SN-190 establishing a session SN-176 receiving messages SN-186 sending messages SN-177 terminating a session SN-194 SNA control block relationship SI-281 SNA data area, DAT SI-294 SNA functions 51-2 SNA return codes MC-250 NETB1ND MC-260 return codes MC-251, MC-253, MC-256, MC-257, MC-258 SNA SDLC layer modules S1-280 SNA storage requirements SN-295 SNA top layer modules SI-100 SNADACT command SN-I00 SNA1MS, sample SNA application SN-263 SNALU configuration statement parameter considerations SN-115 parameter descriptions SN-114 syntax SN-114 SNAPU configuration statement parameter considerations SN-I07 parameter descriptions SN-I04 syntax SN-I04 software register LR-7 software trace table SG-249 Sort/Merge data interpretation SM-221 debugging SM-179 examples merge SM-16 output record classification SM-6, SM-22 (....f "~ ,(1,.-.... '''''. "t_,; o o output record formatting SM-3, SM-18 record selection SM-l, SM-5 record summarization SM-22, SM-29 simple sort SM-2, SM-14, SM-44 improving performance SM-155 initiation SM-131 installation SM-295 job preparation SM-39 messages SM-247 overview SG-13, SM-l sample jobs SM-159 space requirements SM-239 statements alternate collating sequence SM-87 comments SM-68 data set definition SM-71 field SM-105 header SM-60 include/omit SM-93 log SM-57 user exit routines SM-137 SORTA (record address sort) description SM-7 dropping control fields SM-125 functions supported SM-12 input data sets number allowed SM-60 restrictions SM-60 inserting records input exit SM-137 output exit SM-140 output record size, determining SM-242 specification statements allowed with SM-60 specifying in header statement SM-60 when to use SM-7 sorting, how to write a sort job steps in preparing and running SM-44 using $JOBUTIL SM-42 using $L operator command SM-40 using $SMMAIN SM-48 using LOAO (see also LOAO instruction) SM-44 SORTR (record sort) drop/keep control fields SM-65 example using SM-14 functions supported SM-12 output record size, determining SM-243 rules for data fields SM-90 specification statements allowed with SM-64 specifying in header statement SM-60 SORTRS (record summary sort) examples using SM-8 functions supported SM-13 keep/drop control fields SM-64 output record size, determining SM-243 rules with data fields SM-129 specification statements allowed with SM-64 specifying in header statement SM-60 source program compiling SG-71 source program entry and editing PP-l, SG-64 source program line continuation using $EOXASM lR-4 SP command ($CHANUT1) CT-410 SP function ($RJE2780/$RJE3780) CT-341 SPA (spool active control block) description 10-147 listing 10-371 space requirements, determining for output data set SM-241 for work data set SM-239 SPACE statement coding description LR-322 overview lR-19 SPC (spool terminal control block) description 10-148 listing 10-374 special PI bit/group OR-372 specification data set SM-I0 specifications, data conversion LR-163 conversion specifications . See conversi on LR-163 specifications, in-storage SM-131 specifying dynamic storage ($EOXLINK) PP-77 SPECPI define special process interrupt SG-364 SPECPIRT instructi·on coding description SG-376 function SG-59, SG-360 speed rate, modem SN-I05 SPJ (spool job control block) description 10-146 listing 10-372 splitting volume OR-355 SPM (spool master control block) description 10-144 listing 10-373 spool active job control block (SPA) description 10-147 listing 10-371 SPOOL command ($RJE2780/$RJE3780) CT-341 spool control record COBOL, use of CA-452 format CA-450 FORTRAN, use of CA-451 functions CA-450 Pl/I use of CA-451 spool data set allocating CA-455 designating CA-437 estimating size of CA-456 spo.,l device definition of CA-395 designating CA-458 spool device control block (SPW) description 10-149 listing 10-371 spool forms type code altering CA-415 changing CA-407 using CA-406 spool I/O control block (IOSPTBL) description 10-151 listing 10-371 spool job definition of CA-396 deleting CA-418 dis~laying status CA-421 Common Index IG-319 estimating print time CA-458 holding CA-426 keeping CA-427 releasing CA-429 status definition CA-396 spool job control block (SPJ) description 10-146 listing 10-372 spool master control block (SPM) description 10-144 listing 10-373 spool printer assignment ($RJESNA) SN-213 spool return codes MC-249 spool session definition of CA-396 starting CA-401 terminating CA-430 spool terminal control block (SPC) description 10-148 listing 10-374 spool utility See $SPlUT1 utility spool writer definition of CA-396 displaying status CA-421 functions CA-402 procedure CA-402 restarting CA-431 starting CA-435 stopping CA-433 spool writer control block (WCB) description 10-150 listing 10-374 spooled output, $RJESNA SN-204 spooling See printer spooling SPW (spool device control block description 10-149 listing 10-371 SQ command ($COPYUT1) OR-113 SQRT instruction coding description lR-323 overview lR-14 SS command ($01SKUT2) OR-190 SSCPI0 parameter, NETHOST SN-18 ST command ($CHANUT1) CT-410 ST command ($OIUT1l) CT-201 ST command ($GPIBUT1) CT-140 ST command ($SlSlUT1) CT-105 ST command ($TAPEUT1) OR-457 stand-alone dump diskette OR-120 stand-alone dump, obtaining SG-240 standard labels, tape EOF1 SG-295, SG-298 EOV1 SG-295, SG-298 fields SG-297 HDRI SG-295, SG-297 header label SG-294 layouts SG-296 processing SG-296 trailer label SG-294 volume label SG-294 VOl1 SG-295, SG-297 start and termination procedure, $DEBUG OR-145 START, IOCB command lR-201 START, PROGRAM statement operand lR-266 starter system, supervisor description SG-167 terminal initialization SG-213 starting $RJESNA SN-207 IG-320 SC34-0404 starting spool writer CA-435 starting spooling CA-401 statement label lR-4 statement locations, directory of lR-34 static screen, terminal support description CT-7, CT-31 designing for device independence CT-38 differences from roll screen CT-31 3101 considerations CT-64 3101 sample program CT-65 4978/4979 sample program CT-60 station 10, exchange SN-I07 status commands ($HCFUT1) CT-370 status data set, Host Communications Facility CT-350 status display, WHERE $OEBUG OR-162 status obtaining error with $GPIBUTI CT-140 with $SlS1UT1 CT-105 status record, Remote Management Utility CT-253, CT-299 STATUS statement coding description lR-325 overview lR-13 status, receiving SN-47, SN-51 STAX1D parameter, SNAPU SN-107 ST1MER instruction coding description lR-328 in Series/1 to Serias/l error . reco'!ery CT-87 overVlew lR-32, SG-42 with PASSTHRU function CT-295 stopping spool writer CA-433 stopping spooling facility CA-430 storage environment, access method AM-I, IM-1 storage environment, Multiple Terminal Manager M-11 storage estimating application program size SG-225 supervisor size SG-217 utility program size SG-223 storage management address relocation translator SG-43 allocating 10-24 description SG-43 design feature SG-16 storage map generation SG-206 storage map, Indexed Access Method CA-15, IG-204 storage map, resident loader 10-26 storage maps ($SlASM) 10-286 storage requirements, SNA SN-295 storage usage during IPl 10-6 storage usage during program load 10-17 storage-resident loader (RlOADER) ID-15 store record, $PDS utility SG-335 strings, relational statement lR-206 STSN command SN-65, SN-139 STSN processing PlU to SlU flow (with resync) SN-76 return codes to NETINIT SN-85 sessions without resync SN-84 () c o 0'" " SlU to PlU flow (with resync) SN-68 STSN processing, Series/1 SN-67 SU command ($GPIBUT1) CT-141 SU command ($HCFUT1) CT-371 SUBMIT command ($EOIT1/N) OR-209 SUBMIT command ($FSEOIT) OR-270 SUBMIT command ($RJESNA) SN-214 SUBMIT command ($RJE2780/$RJE3780) CT-342 submitting job streams SN-214 submitting job to host ($HCFUT1) CT-371 SUBMITX command ($RJESNA) SN-214 SUBMITX command ($RJE2780/$RJE3780) CT-342 SUB ROUT statement coding description lR-330 in I/O error exit routine SM-143 in input exit routine SM-137 in output exit routine SM-141 overview lR-20, SG-41 subroutines $0ISKUT3 SG-339 $IMAGE CT-44 $POS SG-321 OSOPEN SG-347 overview SG-40 SETEOO SG-354 subset, Series/l SNA SN-3 SUBTRACT instruction coding description lR-332 overview LR-14 precision table lR-333 summary data field example SM-29 extending SM-32 how to specify SM-126 length, minimum/maximum SM-112 maximum number SM-125 rules for specifying SM-125 summary tagalong sort See SORTRS (record summary sort) supervisor/emulator calling control functions 10-49 class interrupt vector table 10-11 communications vector table description 10-12 listings 10-319 concepts SG-29 control block pointers 10-12 design features SG-15, SG-16 device vector table 10-12 emulator command table description 10-14 listing 10-323 entry points SG-465 entry routines 10-37 exit routines 10-40 features SG-15, SG-16 fixed storage area 10-11 functions 10-34 generation SG-167 interface routines GPIB 10-119 printer spooling 10-139 Serles/1 to Series/l 10-129 task supervisor 10-50 maintaining more than one SG-193 module descriptions 10-57 module names SG-465 module overview 10-58 overview SG-5, SG-29 PASSTHRU session with CT-281 referencing storage locations 10-13 service routines 10-44 size, estimating SG-217 storage requirements SG-218 task supervisor description 10-29 work area 10-14 SUPEXIT routine 10-40 support for optional features lR-13 SUPRTURN routine 10-40 surface analysing tape OR-439 suspending $GPIBUTI CT-141 suspending message flow SN-53 suspending transmission SN-150 SV command ($INITOSK) OR-355 SVC routine 10-38 SVCABENO routine 10-40 SVCBUF supervisor buffer 10-38 SVCI routine 10-38 switched major node definition operands SN-324 sample SN-325 symbol dictionary, $EOXASM 10-277 symbolic address (disk,tape) LR-IO symbolic disk/tape I/O assignments LR-I0 symbolic diskette lR-I0 symbolic reference to terminals SG-116 symbolic terminal I/O lR-I0 symbols (EXTRN) lR-145 symbols (WXTRN) LR-399 syntax rules lR-4 SYSGEN See system generation system alternate logging device SG-116 system AUTOCAll data set ($EOXLINK) PP-75 system class interrupt vector table ID-l1 system common area 10-13 system common data area ($SYSCOM) SG-l1, SG-172 system communications vector table description ID-12 listing ID-319 system configuration for program preparation SG-24 minimum for execution SG-23 minimum licensed programs SG-24 statements SG-89 system control blocks SG-44 system data tables, EOXSYS 10-67 system device vector table ID-12 system emulator command table description 10-14 listing 10-323 system generation customizing the starter system SG-194 procedure SG-179 system installation SG-27 system logging device SG-116 system printer SG-116 Common Index IG-321 system products SG-3 system program check MC-282~ SG-27S system release level~ recording LR-36~ SG-239 system reserved labels LR-S system services control block~ LUS SI-366~ SI-367 SYSTEM statement SG-I03 system task supervisor work area ID-14 System/370 Channel Attach See Channel Attach System/370 Program Preparation Facility SG-7 TA command ($TAPEUT1) OR-461 tables, Multiple Terminal Manager file table M-19, M-3S program table M-21~ M-31 screen table M-21, M-31 terminal table M-19, M-31 tables, parameter equate LR-431 tabs sett i ng horizontal ($IMAGE) OR-331 vertical ($IMAGE) OR-339 with $EDITI/N OR-228 TABSET command ($EDITl/N) OR-228 tagalong sort See SORTR (record sort) tailoring the Indexed Access Method IG-144 tailoring your supervisor SG-194 tape bypass label processing SG-300 characteristics and layout SG-55 CONTROL LR-64 data set LR-26 definitions for data sets LR-26 end-of-tape (EOT) .LR-26 examples SG-310 I/O instructions LR-26 internals ID-91 load point (BOT) LR-26 post codes MC-222 READ LR-290 record LR-26 return codes LR-67, MC-23S statement SG-l11 symbolic addressing LR-I0 used in Version 3 conversion SG-439 volume LR-26 WRITE LR-391 tape control commands OR-449 tape data set end-of-data requirements SM-82 rules for specifying SM-72 tape data set control block ID-93 tape device data block (TDB) description ID-92 listing ID-377 tape labels external SG-293 internal SG-294 tape standard·label fields SG-297 IG-322 SC34-0404 layout SG-296 processing SG-296 support SG-294 TAPE statement coding SG-lll description SG-l11 function SG-58 tape support SG-17 tape utility, $TAPEUTI OR-431 tape volumes, defining SG-304 tape, non-labeled layout SG-299 processing SG-300 support 5G-299 tapemark LR-64 task active/ready table ID-41 check and trap handling SG-231 control 10-44 definition and control functions 5G-30 dispatching ID-42 error exit facility SG-41, SG-253 error exit routine LR-270 error handling LR-31 execution ID-30 execution states ID-30~ SG-37 facilities SG-30 linkage conventions SG-256 multiple-task program SG-33 overview LR-28, SG-30 single-task program SG-31 states SG-37 structure SG-30 switching ID-42, SG-30 synchronization and control 10-44, SG-30 task code words LR-9 task control block See TCB (task control block) task error exit SN-ll, SN-217 TASK statement coding description LR-33S overview LR-28, SG-31 priority LR-335 task supervi sor functions ID-34 internals ID-29 work area ID-14 TASKSAVE supervisor service routine ID-44 TCB (task control block) description ID-32 listing ID-375 wi th QCB ID-46 TCBEQU LR-431 TCBGET instruction coding description LR-338 overview LR-28 TCBPUT instruction coding description LR-340 overview LR-28 TD command ($PDS) SG-332 TD subcommand ($DICOMP) CT-184 TDB (tape device data block) description 10-92 EDXTIO/EDXTIOU module ID-68 listing ID-377 virtual I/O ID-lll TEB (terminal environment block) description CA-220, M-17 equates M-32' Tektronix c o C 'I" o \ ,I devices supported SG-17 support for digital I/O CT-465 teletypewriter adapter SG-148 TERM-SELF command SN-139 TERMCTRL instruction ACCA attached devices LR-361 coding descriptions LR-342 function to terminal comparison table lR-343 General Purpose Interface Bus lR-371 overview LR-30 return codes lR-306 Series/l To Series/1 lR-367 teletypewriter attached devices lR-364 use on 3101 terminals CT-44 virtual terminal lR-365 2741 Communications Terminal lR-344 3101 Display Terminal (block mode) lR-345 4013 Graphics Terminal LR-349 4973 Printer LR-351 4914 Printer LR-352 4915 Printer LR-354 4918 Display LR-355 4919 Display LR-359 TERMERR operand of PROGRAM LR-270 of TASK lR-335 with end-of-forms LR-31 terminal #1850 teletypewriter adapter SG-148 ACCA support LR-361 adding support for new I/O terminals ID-113 characteristics CT-3 data representation LR-31 defining and accessing CT-16 definition CT-3, SG-19 device independence between display stations and printers CT-1 between 4978/4979 and 3101 CT-7 for static screens CT-38, CT-39 electrical interfaces CT-5 error handling LR-30 input LR-32 list of EDX terminals CT-4 output lR-31 relationship to a program CT-16 return codes LR-253, MC-269 sample I/O error program CA-352 sample signon program CA-352 specialized capabilities general purpose interface bus CT-7 graphics CT-8 Series/1 to Series/1 attachment CT-7 virtual terminals. CT-8 support summarized SG-11 terminal configuration utility, $TERMUTl OR-462 terminal control block See CCD (terminal control block) terminal environment block See TEB (terminal environment block) TERMINAL file CA-212 terminal I/O high-level language subroutines COBOL sample program CA-492 FORTRAN sample program CA-499 introduction CA-464 overview CA-465 performance CA-506 Pl/I sample program CA-495 preparing programs CA-503 internal design ID-98 problem determination ID-112 return codes MC-269 See also terminal support support routines ID-106 virtual ID-111 terminal message sending utility, $TERMUT3 OR-487 terminal page formatting parameters OR-463 terminal response mode SN-160 terminal servers, Multiple Terminal Manager M-6 terminal session manager See session manager TERMINAL statement coding by device ACCA CT-80, SG-136 GPIB SG-160 PROC CT-81, SG-154 Series/1 to Series/1 SG-163 TTY CT-80, SG-148 virtual terminal SG-158 2141 SG-120 4013 SG-123 4913/4914 SG-127 4915 SG-129 4918/4919 SG-132 description SG-113 DEVICE parameter CT-4 device-dependent operands SG-116 examples CT-16 function SG-19 terminal control function SG-80 use in defining virtual terminals CT-204 use of CT-3, CT-4 terminal states, Multiple Terminal Manager M-39 terminal support definition CT-3 EDL instructions for controlling a terminal CT-18 for defi ni ng and accessi ng a terminal CT-18 for formatting data CT-19 output considerations CT-23 overview CT-3, SG-77 sample roll sreen program CT-25 3101 sample static screen program CT-65 4978/4979 sample static screen program CT-60 terminal table, Multiple Terminal Manager M-19, 'M-31 terminal utilities (session manager) OR-61 Common Indax IG-323 terminals connected via digital I/O CT-467 terminating $RJESNA 5N-211, SN-216 terminating a session SN-59 terminating GPIB operation CT-134 terminating Remote Management Utility CT-276 terminating transmission, $RJESNA SN-210 test display ($DICOMP) CT-168 testing BSC conversational transparent mode CT-244 testing generated report or graphics profile member CT-168 testing label types OR-439 testing process interrupt OR-372 text editing utilities edit dataset subroutine examples ID-388 full screen-editor $FSEDIT OR-259 line editors, $EDITI/N OR-199 overview SG-64 work area internals ID-383 text record data area ID-192 text record, PASSTHRU function of $RMU CT-289 TEXT statement coding description LR-376 overview LR-13 . text wrapping, WRAP function of $RMU CT-279 THRESH parameter, SNAPU SN-I06 threshold considerations SN-ll0 threshold value SN-I09 time of day, GETTIME instruction LR-188 time/date display, $Woperator command OR-44 set, $T operator command OR-36 set, automatic initialization facility SG-175 timer control LR-32 TIMER statement SG-42, SG-165 timer storage requirements 5G-219 timer support SG-20 timing instructions lR-32, 5G-42 TITLE statement coding description LR-380 overview lR-19 TOCTS parameter, SNAPU 5N-I06 TODSR parameter, SNAPU 5N-I05 TODTR parameter, SNAPU 5N-I05 TOHlA parameter, SNAPU SN-I06 TOP subcommand ($EDIT1/N) OR-232 TP instructions (Host Communications Facility) CLOSE CT-355 coding description CT-353 FETCH CT-356 OPENIN CT-357 OPENOUT CT-358 READ CT-359 RELEASE CT-360 SET CT-361 subcommand internals ID-182 SUBMIT CT-362 TIMEDATE CT-363 use in examples CT-365 WRITE CT-364 TR command ($CHANUT1) CT-410 IG-324 SC34-0404 trace printing ~tility for B5C CT-237 trace ranges and breakpoint settings OR-149 trace table, software SG-249 trace utility for BSC CT-235 transaction retry, requesting 5N-41 transactions, definition of 5N-6 transfer rates for data, Host Communications Facility CT-353 transferring an object module SG-72 transferring data set from host ($HCFUT1) CT-368 transferring data set to host 5END function, Remote Management Utility CT-273 WR command ($HCFUT1) CT-372 transient program loader ID-15 transmission codes 5G-114 transmission header, format 5N-301 transmission protocol, HCF ID-184 transmission, suspending 5N-150 TRAPDUMP attention command ($TRAP) OR-491 TRAP END attention command ($TRAP) OR-491 TRAPOFF attention command ($TRAP) OR-491 TRAPON attention command ($TRAP) OR-491 TS profi les 3 and 4 supported commands SN-119 TYPE parameter, NETCTl SN-49 TYPE= return codes (NETCTl) 5N-57 types of session termination SN-60 UE command ($IAMUT1) IG-158 UN command ($IAMUT1) CA-120, IG-184 UNBIND command 5N-139 unblocked sequential IG-164 unconditional force data types allowed 5M-I09 definition SM-117 example SM-22 how to specify 5M-117 keep/drop from output record 5M-64 number, maximum SM-121 required entries in field statement 5M-I09 rules for 5M-116 unconditional session termination SN-60 undefined length records, tape 5G-303 units (basic) of information 5N-297 unloading indexed file CA-120, IG-184 unprotected field OR-322 UP subcommand ($EDIT1/N) OR-233 update indicator, automatic IG-69 update ut iii ty c o o o $UPDATE convert object program PP-I0S $UPDATEH convert host~object program PP-117 updating a session manager menu OR-81 updating directory IG-158 user defined data member, $PDS utility SG-326 user exit routines SM-33 keep/drop from output record specifying in header SM-64 selectirig the invocation facility SM-39 user initialization modules ID-I0 USER instruction coding description LR-381 effect on ENDPROG LR-116 overview LR-20 using SELB to connect support SI-3 utilities listed by type SG-62 overview SG-6 utility program size SG-223 VA command ($DICOMP) CT-183 VA function ($PDS) SG-328 valid arithmetic operators LR-4 variable blocked record format SM-81 variable length records, tape SG-303 variable names LR-4 variable record format SM-81 variable unblocked record format SM-80 varying device offline OR-38 varying device online OR-40 VDE (volume descriptor entry ID-85 vector addition (ADDV) LR-41 vector data manipulation LR-15 verification, requesting message SN-30 VERIFY parameter, NETPUT SN-30 VERIFY subcommand ($EDIT1/N) OR-234 verifying disk or diskette dataset OR-360 verifying identification of systems, $RMU CT-267 verifying tape executing correctly OR-439 tape, $TAPEUTI utility OR-442 vertical tabs, defining OR-339 virtual terminals accessing the virtual terminal CT-205 defined by TERMINAL statement SG-158 description CT-203 establishing the connection CT-204 examples of use CT-203 internals ID-ll1 interprogram dialogue CT-206 loading from a virtual terminal CT-204 return codes CT-206, MC-274 sample programs CT-207 storage requirements SG-219 TERMINAL statement example SG-159 using TERMINAL to define CT-204 volume accessing ID-82 allocating OR-353 definitions (disk/diskette) LR-17 deleting OR-365 directory entry listings ID-347 directory internals ID-77 dump/restore~ $MOVEVOL OR-404 initializing OR-357 listing OR-362 renaming OR-366 split OR-355 verifying OR-360 VOLUME control statement ($EDXLINK) PP-56 volume descriptor entry (VOE) 10-85 volume label s logical SG-47 physical SG-46 VOLI tape label SG-295 VTAB command ($INITDSK) OR-339 VTAM considerations block number SN-293 network deactivation SN-293 pacing SN-293 station address SN-293 VTOCs for SOLC layer modules CDCABNO SI-238 CDCAOOTO SI-238 COCATTN SI-238 COCBlDDC 51-238 COCClSOO SI-239 CDCCMDPR 51-239 CDCCMDR SI-239 COCCNTBU SI-240 COCCNTRL SI-240 COC01SAB SI-240 COCENABL SI-240 CDCIHT SI-241 CDC1SXMT 51-242 COCN01 51-243 COCOIO 5I-243 CDCPERME 51-243 CDCPURGE S1-243 COCRC5S 5I-243 COC5ETRE 5I-243 SDlC abnormal/error handling SI-235 SOlC close 51-237 SOLC interrupt handler 51-234 SOlC issue command to adapter 51-236 SOlC read cycle steal status processing 51-236 SOlC receive 5I-235 SOlC send 51-235 SOlC stop device SI-237 VTOCs for Series/l 5NA base layer modules $NETCMO, interface to 5NA modules 5I-I07 $SNA, SNA load program 5I-128 CODACTlU, ACT LU command processor 51-108 Common Index IG-325 CDDBETBR, between brackets check SI-108 CDDBINDO, bind command processor SI-108 CDDBNDCK, process basic bind checking SI-108 CDDBR5PO, BIND response processor SI-109 CDDBSMGR, bracket state manager SI-109 CDDCLEAR, reset data traffic subtree SI-109 CDDCLSOO, SNA close SI-110 CDDCOMSC, common session control processor SI-111 CDDCPMGS, CP manager send for LU-LU sessions SI-111 CDDCPMGX, process expedited flow queue SI-111 CDDCP2S, pacing queue processor SI-111 CDDCTDLT, correlation table entry delete processor SI-112 CDDCTGEN, RSP correlation table entry generation SI-112 CDDCTPRC, correlation table entry processor SI-112 CDDDRQRV, OFC commands processor SI-112 CDDEXRCV, convert RQ to EXR SI-113 CDDF1SC, Fl for session control processor SI-113 CDDGTBFS, allocate buffer pool SI-113 CDDHXMGR, half-duplex manager SI-114 CDDIMM5G, inbound message processor SI-114 CDD1SEG, queues and releases segmented buffers SI-115 CDDLUPRG, purge queues SI-115 CDDMRQCV, create negative RSP and SEND SI-115 CDDMRSCV, change RCV/SEND buffer count SI-115 CDDNTBND, send user bind response SI-116 CDDNTDAC, network deactivation SI-116 CDDNTRCV, receive message SI-116 CDDNTSND, send message SI-117 CDDOPNOO, SNA NETOPEN phase o 51-118 CDDOPN01, SNA NETOPEN phase 1 51-118 CDDOPN02, SNA NETOPEN phase 2 SI-118 CDDOPN03, SNA NETOPEN phase 3 SI-118 CDDOPN04, SNA NETOPEN phase 4 SI-118 CDDPBUFF, post send event SI-119 CDDPCLUR, SSCP-LU command processor SI-119 CDDPCNG5, path control no-good message processor SI-119 CDDPCPUR, PU message processor SI-119 CDDPC20T, outbound path control SI-l20 IG-326 SC34-0404 CDDPSVOO, perform physical unit services SI-120 CDDPUS!N, process write buffers and SDLC commands 51-120 CDDQCHK, check all network queues 51-120 CDDQOFF, remove from FIFO queue SI-121 CDDQON, insert on FIFO queue SI-121 CDDRECVY, half-duplex recovery SI-121 CDDRELBL, release link buffer SI-122 CDDRELBS, release buffer SI-122 , CDDRQRCV, request received processor SI-123 CDDRQRSZ, convert RQ to EXR SI-124 CDDRQSNN, normal request send processor SI-124 CDDRQSNX, expedited request send processor SI-124 CDDR5RCV, response received processor SI-125 CDDRSSNN, normal response send processor SI-126 CDDRSSNX, expedited outbound response processor SI-126 tDDSELB, interface to $NETCMD 51-126 CDDSESCL, session cleanup SI-126 CDDSTPLK, halt SDLC 51-127 CDDSVCCR, process NETSEND/NETRECV requests SI-127 CDDTCB, find active TCB SI-127 CDDUBND, send term-self SI-127 CDDWTUBD, wait for UNBIND SI-128 CDDZPNM5, convert to minus response SI-128 NETBIND 51-105 NETCL05E 51-107 NETOPEN 51-104 NETRECV 51-106 VTOCs for Series/l SMA Top Layer Modules CDDFANE 51-13 CDEATTN SI-19 CDECD SI-20 CDECHKRU 51-19 CDECHKOO 51-20 CDECLEAN SI-20 CDEDEQ 51-21 CDEDEQAB SI-21 CDEENQ 51-21 CDEEXIT 51-21 CDEFBUFF 51-21 CDEGBUFF 51-22 CDEINIT1 - NETINIT phase 1 SI-15 CDEPOST SI-22 CDEPUTOO - HETPUT phase o SI-17 CDEPUTI - HETPUT phase 1 51-17 CDERCVRU SI-22 CDEREJ SI-22 CDERSP SI-23 CDERSYHC SI-23 CDESNDRU 51-23 c o CDE5T5N - NETINIT phase 1 51-16 CDETERMO - NETTERM phase 1 51-18 CDETERMI - NETTERM phase 1 51-18 HETCTL phase 0 51-12 HETCTL phase 1 51-12 HETGET phase 0 51-14 HETGET phase 1 51-14 HETIHIT phase 0 51-15 VV command ($IHIT05K) OR-360 wait state, put program in, W5 $IOTE5T command OR-368 WAIT statement coding description lR-385 overview LR-28, 5G-31 use of WAIT KEY ;n terminal support CT-21 WAIT supervisor function 10-36 waiting, task supervisor state 10-31 WAITKY subroutine CA-487 warning message option 5M-66 WCB (spool writer control block) description ID-150 listing 10-374 WE command ($COPY) OR-I09 WHERE command ($OEBUG) OR-162 WHERE5 instruction coding description LR-388 overview LR-28 return codes LR-389 WI command ($B5CUT2) CT-243 WIX command ($B5CUT2) CT-243 word boundary requirement DO LR-21 IF LR-21 PROGRAM LR-266 work areas, Multiple Terminal Manager buffer areas M-23, M-37 common area M-16, M-34 MTMSTORE work.file M-20 work data set SM-9 $EOXASM PP-l1 $EOXASM internals ID-275 $EDXLINK PP-48 $LINK PP-86 $51A5M PP-28 $51A5M internals ID-284 work file (MTMSTORE), Multiple Terminal Manager M-20 workstation features SN-203 workstation function priorities, $RJESNA SN-205 workstation functions card reader 5H-204 console SN-203 printer SN-204 punch 5N-205 workstation, defining Series/l SN-225 WR command ($GPIBUT1) . CT-142 WR command ($HCFUT1) CT-372 WR command ($51S1UTl) CT-I05 WRAP function, Remote Management Utility CT-279, 10-202 WRITE command ($FSEDITl/N) OR-210 WRITE command $EDITI OR-210 WRITE $EDITI command WRITE OR-210 WRITE disk/diskette I/O instruction coding description LR-391 disk/diskette return codes LR-396, MC-234 function 5G-57, 5G-58 IDCB command LR-201 overview LR-16 return codes SN-96 tape post codes LR-397 tape return codes LR-397, MC-234 WRITE IDCB command lR-201 WRITE instruction WRITE Multiple Terminal Manager CAll coding description CA-275 overview of CA-208 write operations, HCF ID-184 WRITE option ($F5EDIT) OR-269 WRITE, Multiple Terminal Manager CALL internals M-IO writer control block, spool (WCB) description ID-149 listing ID-374 WRITEl IDCB command LR-201 writing data to the GPIB adapter CT-142 writing data, 5eries/l to Series/l CT-I05 writing decompaction routines SN-223 writing IPL text OR-358 WS command ($IOTEST) OR-368 WTM (wri te tape mark) LR-65 WXTRN statement coding description LR-399 overview LR-20 X.21 protocol CT-ll x-type format lR-170 XI command ($IOTEST) OR-371 XO command ($IOTEST) OR-370 XYPLOT instruction coding description CT-158 overview CT-158 YTPlOT instruction coding description overview CT-159 CT-159 Common Index IG-327 1024-byte sectors alternate load SG-209 I/O module description ID-70 storage requirements SG-218 taking advantage of SG-208 1310 Multifunction Attachment defined by ADAPTER statement SG-90 description CT-9, CT-467 use in BSC CT-11 with 3101 Display Terminal CT-477 1610 asynchronous communications single line controller attachment with 3101 Display Terminal CT-471 considerations for attachment of devices SG-113 considerations when DEVICE=PROC CT-81 2091 asynchronous communications eight line controller attachment with 3101 Display Terminal CT-471 considerations for attachment of devices SG-113 2092 asynchronous communications four line adapter attachment with 3101 Display Terminal CT-471 considerations for attachment of devices SG-113 2095 feature programmable eight line controller attachment with 3101 Display Terminal CT-471 considerations for attachment of devices ~G-113 2096 feature programmable four line adapter attachment with 3101 Display Terminal CT-471 considerations for attachment of devices SG-113 2741 Communications Terminal as an EDX termi nal CT-5 defined by TERMINAL statement SG-120 storage requirements SG-219 TERMINAL statement example SG-122 3101 Display Terminal as an EDX terminal CT-5, CT-6 attribute characters CT-36, OR-326 block mode CT-474, OR-259 character mode CT-470 data stream CT-36 IG-328 SC34-0404 defined by TERMINAL statement SG-136, SG-148 interface with Multiple Terminal Manager CA-202 PF key support CT-20 reading modified data CT-57 SEND key CT-478 setup switch settings block mode CT-474 character mode CT-470 static screen considerations CT-64 static screen sample program CT-65 storage requirements SG-219 TERMINAL statement examples SG-144, SG-152 transmitting data from CT-36 3585 4979 Display Station attachment SG-132 4952 Processor maximum partitions SG-43 timer feature SG-42 4953 Processor maximum partitions SG-43 timer feature SG-42 4955 Processor maximum partitions SG-43 timer feature SG-42 4962 Disk Storage Unit storage capacity SG-285 4963 Disk Storage Unit storage capacity SG-285 4964 Diskette Storage Unit description SG-51 part of minimum configuration SG-23 required for program preparation SG-24 storage requirements SG-218 4965 Diskette Storage Unit description SG-51 part of minimum configuration SG-23 required for pro~ram preparation SG-24 storage requirements SG-218 4966 Diskette Magazine Unit part of minimum configuration SG-23 required for program preparation SG-24 storage requirements SG-218 4969 Magnetic Tape Subsystem SG-293 4973 line Printer as an EDX terminal CT-5 defined by TERMINAL statement SG-127 end of forms CT-24 storage requirements SG-218 TERMINAL statement example SG-128 4974 Matrix Printer as an EDX terminal CT-S defined by TERMINAL statement SG-127 end of forms CT-24 o o c modify image/control store, $FONT utility OR-242 restore to character set, RE $TERMUT2 OR-478 storage requirements SG-218 TERMINAL statement example SG-128 4975 Printer as an EDX terminal CT-6 defined by TERMINAL statement SG-129 end of forms CT-24 storage requirements SG-218 TERMINAL statement example SG-131 4978 Display Station $FONT utility OR-468 as an EDX termi nal CT-5 control/image store SG-212 defined by TERMINAL statement SG-132 modify image/control store static screen sample program CT-60 storage requirements SG-218 TERMINAL statement example SG-135 4979 Display Station as an EDX termi nal CT-5 defined by TERMINAL statement SG-132 static screen sample program CT-60 storage requirements SG-218 TERMINAL statement example SG-135 4993 channel attach device CT-380 5230 Data Collection Interactive SG-13 5620 4974 matrix printer attachment defined by TERMINAL statement SG-127 5630 4973 line printer attachment defined by TERMINAL statement SG-127 5719-AM3 See Indexed Access Method 5719-AM4 See Index~d Access Method 5719-ASA See macro assembler 5719-CB4 See COBOL 5719-F02 See FORTRAN IV 5719-LM7 See macro library 5719-MS2 See Multiple Terminal Manager 5719-PL6 See PL/I 5719-SM2 See Sort/Merge 5719-SX2 See $RJESNA 5719-UT5 See ut iii ties 5719-XS3 See basic supervisor and emulator 5719-XX4 See program preparation 5740-LM4 See macro library/host 5799-TDE See Data Collection Interactive CDCI> 7850 teletypewriter adapter attachment with 3101 Display Terminal CT-470 considerations when using CT-80, SG-113 overview CT-I0 Common Index IG-329 'c-.··.~' \ I l 7 IG-330 SC34-0404 READER'S COMMENT FORM SC34-0404-O o IBM Series/1 Event Driven Executive Indexed Access Method Version 2 Guide Your comments assist us in improving the usefulness of our publications; they are an important part of the input used in preparing updates to the publications. I BM may use and distribute any of the information you supply in any way it believes appropriate without incurring any obligation whatever. You may, of course, continue to use the information you supply. Please do not use this form for technical questions about the system or for requests for additional publications; this only delays the response. Instead, direct your inquiries or requests to your I BM representative or the I BM branch office serving your locality. Corrections or clarifications needed: Page Comment Please indicate your name and address in the space below if you wish a reply. ·~· i C·· ." I I I I I I I I I I Thank you for your coOperation. No postage stamp necessary if mailed in the U.S.A. (Elsewhere, an IBM office ~representative will be happy to forward your comments.) Reader's Comment Form Fold and tape Please Do Not Staple Fold and tape 111111 NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 40 ARMONK, NEW YORK /1( POSTAGE WILL BE PAID BY ADDRESSEE \(... )i.' I BM Corporation I nformation Development, Dept 27T P.O. Box 1328 Boca Raton, Florida 33432 Fold and tape Please Do Not Staple ,--,~; Fold and tape ------ ----- ------_ ----- - - ---.. SC34-0404-0 Printed in U.S.A. / SC34-0404-0 Printed in U.S.A.
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2013:01:03 09:40:51-08:00 Modify Date : 2013:01:03 16:44:32-08:00 Metadata Date : 2013:01:03 16:44:32-08:00 Producer : Adobe Acrobat 9.52 Paper Capture Plug-in Format : application/pdf Document ID : uuid:7919d194-c603-4c2f-968e-423c1d6c112e Instance ID : uuid:6af16183-e3ae-4b5a-83e9-413e78b3e1cf Page Layout : SinglePage Page Mode : UseNone Page Count : 346EXIF Metadata provided by EXIF.tools