C20 1663 0_System_360_Operating_System_User_Libraries_Feb67 0 System 360 Operating User Libraries Feb67
C20-1663-0_System_360_Operating_System_User_Libraries_Feb67 C20-1663-0_System_360_Operating_System_User_Libraries_Feb67
User Manual: C20-1663-0_System_360_Operating_System_User_Libraries_Feb67
Open the PDF directly: View PDF .
Page Count: 54
Download | |
Open PDF In Browser | View PDF |
C20-1663-0 IBM System/360 Operating System User Libraries The purpose of this document is to illustrate, by means of a program testing application, the creation, use, and maintenance of user program libraries operating under the IBM System/360 Operating System. The program testing application was chosen for illustrative purposes only and should not be construed as a workable system as it stands. The information in this text is based on information and components available at the time of the initial release of Operating System/360. The use of Assembler E, COBOL E, FORTRAN E, and Linkage Editor E is assumed. The user should therefore refer to the following texts and their most recent technical newsletters for the most complete, accurate, and up-to-date information: IBM System/360 Operating System: Utilities (C28-6586) IBM System/360 Operating System: System Generation (C28-6554) IBM System/360 Operating System: Linkage Editor (C28-6538) IBM System/360 Operating System: Job Control Language (C28-6539) IBM System/360 Operating System: System Programmer's Guide (C28-6550) Programming This text is a major revision of, and obsoletes IBM Operating System/360 User Libraries, Preliminary Edition (Y20-0008). The major changes are on pages 12, 14, 22, 32, 34, and 37. Copies of this and other IBM publications can be obtained through IBM branch offices. Address comments concerning the contents of this publication to IBM, Technical Publications Department, 112 East Post Road, White Plains, N. Y. © International Business Machines Corporation, 1966 10601 Technical Newsletter Re: Form No. C20-1663-0 This Newsletter No. Date N20-1010-0 February 15, 1967 Previous Newsletter Nos. None IBM SYSTEM/360 OPERATING SYSTEM USER I.JBRARIES This technical newsletter amends the publication IBM System/360 Operating System User Libraries (C20-1663-0). Make the corrections and additions listed below in existing copies of the publication. Cover and Preface Pages Add the following to the list of reference texts on both pages: IBM System/360 Operating System: System Control Blocks (C28-6628) Page 12 In the drawing at top of page, change the word above the volume containing the SYSl. PROCLIB from "TESTVL" to "SYSRES". In the program listing below this drawing, add a comma at the end of the second line of item 4: "DISP=(NEW, KEEP), ". Similarly, add a comma at the end of the second line of item 5. The commas indicate continuation of the data definitions. Page 32 In the Note at bottom of page, change the next to last line from: require an additional parameter, that is VOLUME=SER-TESTVL. to the following: require two additional parameters, that is, VOLUME=SER=TESTVL and UNIT-2311. Page 37 Add "( see C28-6628)" to the end of the next to last paragraph. Note: File this newsletter at the back of the publication. It will provide a reference to changes, a method of determining that all amendments have been received, and a check that the publication contains the proper page s. IBM Corporation, Technical Publications Dept., 112 E. Post Road, White Plains, N. Y. 10601 Printed in U.S.A. N20-1010-0 (C20-1663-0) Page 1 of 1 PREFACE The purpose of this document is to illustrate the creation, use, and maintenance of user program libraries operating under OS/360. To facilitate the explanation of interplay and control among the various components of OS/360, the application of program testing has been chosen as a vehicle to demonstrate: Library creation and use Cataloged procedure creation and use Library maintenance Backup procedures The program testing application, hereafter referred to as TESTS, was chosen for illustrative purposes only and should not be construed as a workable system as it stands. The information in this manual is based on the information and components available at the time of the initial release of OS/360. The use of Assembler E, COBOL E, FORTRAN E, and Linkage Editor E is assumed. The user should therefore refer to the following texts and their most recent technical newsletters for the most complete, accurate, and up-to-date information: IBM System/360 IBMSystem/360 IBM System/360 IBM System/360 IBM System/360 Operating Operating Operating Operating Operating System System System System System Utilities (C28-6586) System Generation (C28-6554) Linkage Editor (C28-6538) Job Control Language (C28-6539) System Programmer's Guide (C28-6550) CONTENTS Definition of a Library. . . . . . . . Overall Example - Program Testing The Test Cycle. . . . . . Overall Flow. . . . . . . . . . . Creation of TES TS Libraries . Volume Initialization . . . . . . . Library Naming and Creation. Utilization of TESTS. . . . . Source Library. . . . . . . . . . Source Module Creation. . . Source Module Correction. Obj ect Module Creation . . Load Module Creation. . . Execution of Load Modules. Library Maintenance. . . . . . . . . Reducing Extent Requirements . Purging Unused Members . . . . . Completed Programs . . . Library Backup - Audit Trail . . . . Backup Copy . . . . . . . . . . . Reinitialize TESTS . . . . . . . . Multiple Job Flow in TESTS . . . . . . . . "TESTS" . . 1 2 2 4 9 9 9 . 14 14 14 14 14 19 26 29 29 30 30 37 37 40 43 LIST OF ILLUSTRATIONS Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure FigUre Figure Figure Figure Figure Figure Figure 6. 7. 8. 9. 10. 1I. 12. 13. Figure Figure Figure Figure Figure Figure Figure Figure Figure 14. 15. 16. 17. 18. 19. 20. 21. 22. Figure Figure Figure Figure Figure Figure 23. 24. 25. 26. 27. 28. Figure 29. Libraries in TES TS system Job flow of one program from source to execution: source program to source library Job flow of one program from source to execution: source program in source library assembled into object library Job flow of one program from source to execution: object module is linkedited and becomes a load module in the load library (TEST. LOAD) Job flow of one program from source to execution: execution of program A13 To initialize the TESTS volume To create the TESTS libraries and add a procedure that will add procedures To add a procedure to SYS1. PROCLIB with ADDPROCS To enter symbolic (source) module into the source library Form fOl entering changes into the source library To make corrections to the source library Results of source correction To compile or assemble a source module from the source library into the obj ect library To create object modules using TESTS cataloged procedure for FORTRAN To create object modules using TESTS cataloged procedure for COBOL To linkage-edit multiple load modules in one Linkage Editor run To test programs from the load library Generalized compile-Linkage-Edit - Execute procedure Increasing the available space in a PDS To list TESTS system control data To reduce extent requirements on a volume To print and punch a source program and delete it from the source, object and load libraries PRINT, PUNCH, and DELETE To concatenate utility control statements To obtain a backup copy of the TESTS volume Document received from BACKUP procedure To reinitialize the TESTS volume Document received from reinitializing the TESTS volume (see Figure 27 for execution) Job flow of multiple programs from source to execution DEFINITION OF A LIBRARY A 'library' is a partitioned data set (PDS), which is a data set with one or more sequentially organized members, residing on and not exceeding in space one direct access volume. OS/360 libraries may be categorized as follows: 1. Libraries required by OS/360 for its operation, and residing on either the system residence volume or some other direct access volume. 2. Libraries required when using certain processors or features of 08/360 (for example, the COBOL and FORTRAN libraries), but not required for the system to function. 3. Libraries defined, organized, and named by the user to best accommodate the installation's requirements. The libraries falling in category 1 and referred to in this document are: SYSI. LINKLIB (Link library) SYSI. PROCLIB (Procedure library) Those falling in category 2 and referred to here are: SYSl.MACLIB (Macro library) SYSI. COB LIB (COBOL library) SYSl. FORTLIB (FORTRAN library) Full descriptions of these two categories may be found in C28-6554. Libraries in category 3 may be given simple or qualified names. Since a library is nothing more than a data set, it may be created during execution of any job step by defining the library name, allocating space on a volume, etc. (see "Library Naming and Creation"). While libraries in categories 1 and 2 are neither created nor named by the user, they may be accessed and used as in category 3. User programs may be located in the Link library. To execute such a program, the user merely specifies the name of this program in the EXEC statement. User programs may also be located in a library createdby the user (category 3). To execute a program in a user-created library, the user must define this library by inserting a data definition (DD) statement (with a ddname of JOBLIB) prior to the EXEC statement or statements requiring the use of this library. This DD statement causes OS/360 to search the identified user's library for the program to be executed before searching the Link library. 1 OVERALL EXAMPLE - PROGRAM TESTING - "TESTS" In many installations the development and testing of applications consumes a great deal of effort and time. While testing systems vary from installation to installation, certain library maintenance methods should be followed to take full advantage of the computing system. The Test Cycle The sample testing system example, TESTS, is based on the concept of using a separate disk-pack exclusively for all program testing within an installation. The basic reason for this approach is to isolate undebugged programs and to ensure that they do not contaminate space on other packs or the system residence volume. TESTS is further thought of as a "stacked testing" procedure in which it is desirable to perform testing at convenient intervals during a shift and thus stack all tests to be performed, mount the TESTS pack, and perform the tests required. This approach will probably be valid for most OS/360 installations, at least in the early phases of their development. From an operations point of view, TESTS is thought of as an application in which the user may specify certain standard procedures to be performed in this test environment. From a programmer's point of view the tests performed on his program are done on a remote basis. The programmer must request the type of test he wishes. The TESTS system consists of three libraries, or PDS's. As shown in Figure 1, a library is available for each of the following: Source modules - programs in source language Object modules - compiled programs or subroutines Load modules - Linkage Editor output (executable programs) The programmer's first action is to request that his source module be entered into the source library. Once this is done, he may request one or more of the following: 1. 2. 3. 4. 5. 6. Compilation Modification of his source program Linkage editing Execution Linkage editing to combine additional object or load modules Compile - linkage edit - execute Each of the modules (source, object, load) is retained in the appropriate library until the test cycle has been completed and the programmer wishes to remove it. 2 TESTVL 1. 2. 3. 4. Source code and modifications entered Compilations Link-edit runs Program executions Figure 1. Libraries in TESTS system 3 Thus the programmer debugs his program using computer output. He then updates and retests his program by requesting the appropriate phases mentioned above, without having to continually maintain a source deck throughout the complete compilation and testing cycle. Once his program has been thoroughly tested, he may request (among other things) the updated source deck, a listing, and the deletion of his program from the three TEST libraries. Overall Flow To illustrate the flow of operations that occur in the TESTS application environment, two examples have been given. Both consist of a diagrammatic representation of the job stream, the processing to occur, and the libraries used, as well as a description of the function of each statement in the job stream. The statements in the job stream are illustrative rather than actual. The actual job control language and control statements are specified in the detailed illustrations of each phase of the TEST application. The first example (Figures 2-5) illustrates the processing of A13, a source program that is to be placed in the source module library (TEST. SOURCE), assembled into an object module library (TEST. OBJEC T), link-edited into a load module library (TEST. LOAD) and executed from TEST. LOAD. The second example (see "Multiple Job Flow in TESTS") illustrates the flow of multiple programs operating in the TESTS environment and is more meaningful as a summary of the contents of this document. 4 SYSRES I EBUPDAT AI TESTVL A2 OS/360 A3 SOURCE DECK ./ ADD AI3 PROC= NEWSORC Job Stream Processing Incurred AI. EXEC PROC=NEWSORC Invokes cataloged procedure to place source program on source library (see Figure 9). A2. ADD Al3 Indicates the name of the source program, A13. A3. Source Deck The source statements that are entered into TEST.SOURCE as A13. Figure 2. Job flow of one program from source to execution: source program to source library 5 SYSRES TESTVL LI NKEDIT COBOL FORTRAN 83 OS/360 II SYSPUNCH DO AI3 I I SYSIN DO AI3 81 II EXEC PROC=TESTASSM Job Stream Processing Incurred Bl. EXEC PROC=TESTASSEM Invokes the cataloged procedure to assemble the source module A13 (see Figure 13). B2. SYSIN DD A13 (Input) Represents the DD statement indicating the name of the source module to be assembled. B3. SYSPUNCH DD A13 (Output) Represents the DD statement indicating that the member name A13 be assigned to the output object module to go into TEST. OBJECT. Figure 3. Job flow of one program from source to execution: source program in source library assembled into object library 6 SYSRES TESTVL LINKEDIT COBOL FORTRAN TEST. LOAD OS/360 NAME AI3 INCLUDE AI3 CI II EXEC PROC=TESTLINK Job Stream Processing Incurred Cl. EXEC PROC=TESTLINK Invokes the cataloged procedure to link-edit the object module (see Figure 16). C2. INCLUDE A13 Represents the Linkage Editor statement that speCifies the name of the object module to be link-edited, A13. C3. NAME A13 Represents the Linkage Editor statement that specifies the name to be assigned to the output load module going into the load library. Figure 4. Job flow of one program from source to execution: object module is linkedited and becomes a load module in the load library (TEST. LOAD) 7 TESTVL 360 II EXEC PGM=AI3 Job Stream Processing Incurred DI. JOBLIB TEST. LOAD Specifies to the control program that the program to be executed resides in the library named TEST. LOAD. D2. EXEC PGM=AI3 Specifies the member name, A13, of the program in the library to be executed. *D3. OUTPUT Al3 Symbolically represents one or more DD statements required to specify the devices and data sets required for the output results of A13. *D4. INPUT Al3 Symbolically represents one or more DD statements required to specify the sources of input data for A13. *Must be specified by the programmer or set up as standard DD statements for input and output at the user's descretion. Note: It is not the intent of this document to stress test data set manipulation and control-.-Figure 5. Job flow of one program from source to execution: execution of program Al3 8 CREATION OF TESTS LIBRARIES Two phases are required before TESTS may be put into operation: (1) initialization and (2) library naming and creation. Volume Initialization In this phase the Independent utility DASDI (see C28-65.86) is used to create a volume label and to allocate space for the Volume Table of Contents (VTOC). Figure 6 shows the control statements required for this phase. The volume serial number to be placed in the volume label is TESTVL. Library Naming and Creation Three libraries (partitioned data sets) are required in the TESTS environment (see note at end of this section). They will be named: TEST. SOURCE - for source modules TEST. OBJECT - for object modules TEST. LOAD - for load modules Although the three libraries in the TESTS example are not cataloged, each library is assigned a two-element name. The reason for this is that someone else may wish to refer to a data set called SOURCE. To avoid duplication, the second person could call his library MY. SOURCE instead of TEST. SOURCE. It is apparent that all users of a test volume could have unique names for their libraries. However, if this were the case, each user would have to develop his own procedure or use the TESTS procedures and override certain DD cards. The approach taken in the TESTS example is a more standardized one permitting more accurate control, easier procedure specification, and more convenient maintenance of the TESTS volume. This standardization, however, requires the programmer to name his program according to some convention. A member (module) or program may have a name as large as eight characters. Without some type of naming convention, two independent programmers could name their programs by the same name - say, MATRIX. This would be intolerable, especially if both programs were expected to be in TESTS at the same time. Therefore, a naming convention must be established. For our example we will assign a two-digit code to individuals or departments. Thus department 23 will submit a program named MATRIX23 to TESTS. It must retain this name at least for the life of this program within TESTS. 9 Figure 7 shows the job control statements required to allocate space for and create the three libraries as well as to enter a standard procedure, described in the following paragraphs, into SYS1. PROCLIB. It is desirable to develop standard procedures for the testing environment such as those for updating source modules, linkage editing, compiling, etc., and to place these procedures in the procedure library (SYS1. PROCLIB). This document describes several of the procedures used in TESTS. Since the entering of a procedure into the SYS1. PROC LIB is a procedure itself, it will also be convenient to place that procedure in SYSl. PROCLIB. This procedure (called ADDPROCS) was initially put into the SYS1.PROCLIB via the UPDATE utility, as seen in Figure 7. The use of ADDPROCS for adding a procedure to SYSl. PROCLIB is illustrated in Figure 8. It is possible to add to or delete from a procedure in SYS1.PROCLIB through the UPDATE utility program. However, since a TESTS procedure would represent relatively few cards, a change to the procedure could also be accomplished by updating the original card deck. The updated procedure deck would then be added to SYSl.PROCLIB using the ADDPROCS procedure (Figure 8). Although the original procedure has the same name as the new one, the ADDPROCS will remove the pointers in SYS1.PROCLIB to the old one and point to the new procedure. Although not illustrated, all procedures for TESTS have been entered into SYS1.PROCLIB. Further references to these TESTS procedures will assume their residence in SYSl. PROCLIB. Note: Although not implemented in the TESTS examples, it would be advantageous to preallocate space for all utility (work) data sets - for example, SYSUT1 and SYSUT2 - at the same time that the TESTS libraries are created (see Figure 7). If this were done, space allocation for the utility (work) data sets would be avoided in subsequent procedures. 10 CC2 i 1. JOB 'INITIALIZE DISK ON 191 TO VOLIO=TESTVL' 2. MSG TOOEV=1403,TOADDR=OOE 3. CADEf TOOEV=2311,TOAOOR=191,VOlID=SCRATCH ~ VlD NEWVOlIO=TESTVl,OWNERID=INSTlWORK 5. VTGCD STRTADR=OOOl,EXTENT=0009 6. Et'lD Card Narrative 1. JOB with comments. Messages will be printed on the printer. The specific pack to be initialized. The volume will be called TESTVL and owner is INSTLWORK. The VTOC will span nine tracks starting in cylinder 0, track 1. END card indicating end of JOB to the DASDI utility. 2. 3. 4. 5. 6. Figure 6;. To initialize the TESTS volume 11 TESTVL ~IIINITAL EXEC 2. I ISY SUT2 DO 3. IISYSPRINT DO 4. 11001 DO 1. I I' JOB 007,INSTLWORK,MSGLEVEL=1 PGM=IEBUPDAT,PARM=NEW OSNAME=SYS1.PROCLIB,DISP=OLO SYSOUT=A DSNAME=TE~T.SOURCE~VOLUME=SER=TESTVL,UNIT=2311, II SPACE=(TRK,(SO,lO,lO»,DISP=(NEW,KEEP), OCB=(,RECFM=F,BLKSIZE=80) 5. 11002 DO DSNAME=TEST.OBJECT,VOLUME=SER=TESTVL,UNIT=2311, II SPACE=(TRK,(400,20,10»,DISP=(NEW,KEEP). II OCB=(,RECFM=F,BLKSIZE=80) 6. 11003 DO DSNAME=TEST.LOAO,VOLUME=SER=TESTVL,UNIT=2311, II SPACE=(TRK,400,20,10»,DISP=(NEW,KEEP) IISYSIN DO DATA 7. • I ADD ADOPROCS,Ol ,0,1 , {IIPROC EXEC PGM=IEBUPDAT,PARM=NEW 8. IISYSUT2 DO OSNAME=SYS1.PROCLIBioISP=MOO . IISYSPRINT DO SYSOUT=A II 9. * * * * * 1* 1. 2. 3. 4,5,6. 7. 8. 9. Execute the utility UPDATE program (see C28-6586) in order to enter into SYS1. PROCLIB a standard procedure for entering procedures into SYS1. PROCLIB. The data to follow will be put into SYSl. PROCLIB (SYSIN DD DATA). Required by the utility. DD cards which allocate space on TESTVL. Note that each library directory will handle 10x(4 to 7) members. Therefore, at anyone time, a library directory can handle 10x6 (on the average) = 60 members. Note also that the actual number of modules that can be stored in a library depends on the size of the modules and the total space allocated to the data set. Control statement for IE BUPDAT • It names the member to be added. In this case it will be named ADDPROCS. The job control language for the procedure called ADDPROCS. Required by the utility and the control program. Figure 7. To create the TESTS libraries and add a procedure that will add procedures 12 ACOPROCS DATA ~.,.'b... NEWSORCE,Ol,Ot 1 IINEWSORCE lXEC PGM=IEBUPOAT,PARM=NEw IISYSPRINT 00 SYSOuT=A 4 { IISYSUT2 00 DSNAME=TEST.SOURCE,VOlUME=SER=TESTVl, II UNIT=2311,DISP=OlD i. IISTEP EXEC 2. IIPROC.SYSIN 3. • 1 e~'o""""'ADO 5. 1* - CO . 1. Executes the ADDPROCS procedure (see Figure 7) for entering a procedure into the SYSl. PROCLIB. 2. DD * statement for the ADDPROCS procedure - that is, the member(s) follows. Note: the DD name must be qualified with the step name of the procedure. The step name is PROC (see Figure 7). 3. Required by the utility UPDATE (see C28-6586). The NEWSORCE name will be the name of the member (procedure) that will be added. 4. The job control cards that will be entered as a procedure. 5. Required by the utility and the control program. Note: Any procedure may be added in this manner. If multiple procedures are to be added with one EXEC ADDPROCS, the ADD cards (with the procedure names and associated job control statements to be entered) must be in binary collating sequence. Figure 8. To add a procedure to SYSl. PROCLIB with ADDPROCS 13 UTILIZATION OF TESTS Source Library The library called TEST •SOURCE contains source modules. Each module is in source code (Assembler, FORTRAN, COBOL, PL/I). The original source code is entered into the TEST. SOURCE PDS once. After errors are detected via the debugging cycle; the programmer requests changes to his source code. This method eliminates voluminous card and tape handling since the source code is always on disk. SOURCE MODULE CREATION By executing the NEWSORCE procedure, any set of symbolic coding may be entered into the TEST. SOURCE library. This source coding then becomes a member of the source library, with a program name specified by the programmer. Figure 9 illustrates this method. Note that NEWSORCE assigns a sequence number to each source statement. This sequence number can be referenced by the programmer when making changes to the source module. SOURCE MODULE CORRECTION After a debugging run, changes to the original source code may be needed. The procedure CHGSORCE allows the programmer to specify which original source statement(s) he desires to have deleted (if any) and whether he wishes new source statements added to the original source. A standard TESTS form is illustrated to allow the subsequent additions and deletions of source code (see Figure 10). The implementation of these changes is shown in Figure 11, and the listed results indicating what took place is shown in Figure 12. Obj ect Module Creation Once the source modules have been entered on TEST .SOURCE, they are processed by one of the language translators (Assembler,. FORTRAN, PL/I, or COBOL). The output of a language translator is defined as an object module, which in this application becomes a member in the object library (TEST. OBJECT). 14 SOURCE CODE MODULE ./ •./ NUMBR . ------ADD I III t:l:3~ III 01 ~ 0, 1 I ·. · . ··"is:nS!]R(~. S'y':? L·I Dtl I OOOOOOOO~OOOOOOOO~00000010~00000010 DAT1~ I II III PR~OC=NE[·fst!f<:CE G 11000 I III I I . II II 00 olooooooooooolluuuooooooooooooooooooooooooooOOOOOOOOO l234517 9W"nU~ft~Dq~~nn~u~a~aa~~nUM~.n • • g~ua~a~~~U~~~~MH~~~9H~a 11 111111111111111111111111111111111111111111111111111111 1111 2222222222222222122222222222222222222222222222222222222 "NE~SORCE EXEC PGM=IEBUPOAT,PARM=NEW IISYSPRINT 00 SYSOUT=A 2. IISYSUT2 DO OSNAME=TEST.SOURCE,VOlUME=SER=TESTVl, II UNIT=2311,OISP=OlD I 1. 2. 3. 4. 5. 6. CC7:2. ~ * Execute the NEWSORCE procedure. NEWSORCE procedure in SYS1.PROCLIB. Name the added member B13. Sequence-number the source code, starting at 10 and incrementing by 10. Symbolic code to be entered into TEST. SOURCE. Required by IEBUPDAT (C28-6586) and reader-interpreter. ~ote: Source code for multiple members may be entered with one EXEC NEWSORCE; however, the ADD card with the member name and associated source code must be in collating sequence by me~ber name.) Figure 9. To enter symbolic (source) module into the source library 15 /; GENERAL PURPOSE CARD PUNCH LAYOUT DEPT. NAME BLDG. PHONE DATE SHEET I{ ~checksquareiftobepunched I 2 3 4 5 6 II III CH G~ 7 8 9 10 " 12 13 14 15 16 17 18 19 20121 22 2425 26 27 28 29 30131 3213< 3' EIx EC Ie HG so RC E aiR CE sly SI N DD bA TA o~ ~v. I napE IP: CIH NlQrn % · I II'" · I V · I I I ~ S)l ~F~C ES I,<~r ~EllV ENT~ ~rp ¢lrJ p2. II 4E 474849 50 51 52 53/ , 9 7; J 73 74 7576 7 '8 9 80 /1 III I 0 I 1 "/ I ILA ST S--'I , 01t ¢,'J 19 8~ ¢Itf !~rJ 211 50 ¢Ift (11¢ Z{i S'~ \ , \ l , 'C~L LP, ~ "7 ) J/ 4~ • S~, o{.ll~ 1\Ji'--' ~l\T ,TUfl Rl=i t"h GO 'TO 6 (;:; 'fiR. IT Ei( b ~ 'I~ IS-) No '\ r. Y'R. ... P AY Pi. IUJ ~ IT rt: ( 6 ,"Ib ?" 3637 38 3940 41 4243 44 p n lB' 3 R 3~ ~.~ ~f 0 ~ra FI Ir.::E LET IDE LEIT IDE LEIT IDE LEIT IDE LET ~ 2~ OF I Nc . 7~ 1\ ' \\ EO ~ NI .... I" PII YI Wr. To D4 r~ !:1M ()() " S , e qn o lDl¢ N7\ \ \ ~~~ J n.,,;, y ttl ~ld ~ rJ I , J I~ I I 1/ / * 2 3 4 5 6 7 8 9 10 /I 12 13 14 15 16 17 18 19 20 21 22 2324 2526 2728 2930 31 32 333 35 36 3738 3940 4142 4344 4~ 4E 4748 4950 511 i J Figure 10. Form for entering changes into the source library L 7273 4 5 6f'? 890 DELET OOOO~~50~o~bb2050 11_1 __ ~ II DELET I I I I I II I I 00001370~00001380 U I I (H:"hJEJ::13 ~ 02;O~ 1-- II II I III III I I II G II II I D~EC-- F'Rt1C~(f-l!~:~:O~~:E··"" I III III II II 1100000 001 00000000000100000000000000000000000000000000 123458789WI 111111 111 a~M~~"n~~~un~~~n~~~~~~M~~~~H~~~~~~~O~~~~~~~~~ 111111111111111111111111111111111111111111111 000000000 n 787980 111111111 7273747576 222222222 TE5TVL MERGE 05/360 ! 5Y51 PROCLIB I ~ CHG-ORCE 111 ~ IICHGSORCc EXEC PGM=IEBUPDAT,PARM=MOO IISYSPRINT DO SYSOUT=A IISY5UTl 2. 1. 2. 3. 4. 5. 6. II IISYSUT2 II OD OSNAME=TEST.SOURCE.VUlUME=SER=TESTVL. UNIT=2311,DISP=OLD DO DSNAME=TEST.SOURCE,VOlUM~=SER=TESTVl, UNIT=2311,DISP=OLD Invoke the CHGSORCE procedure. CHGSORCE JCL in SYS1.PROCLIB. Name of the program (member) to be changed - in this case B13. Specified deletions of 80-character records and source code to be added. Required by IEBUPDAT (C28-6586) and the Interpreter. This DELET card is not required since both the old 1970 and 1980 would be automatically deleted and replaced by the new 1970 and 1980 source statements. Figure 11. To make corrections to the source library 17 * * 604 WK t", SOURCE Ll~E C\ 0 , ~"'.......... ~ • _ " 605 fORMAT(2I3,4FI0.2) IYK=IYR+l 1=1 GO TO 603 lN~tRTED C C C BALANCE DUE IS LESS THAN MUNTHLY PAYMENT PAYPRN=AMOUNT+PAYPRN 606 AMOUNT=O. SUURCE LiNE DELETtD SOURCf LINt DELETED SOURCE LINt INSERTtD SOURCE LINE INSERTED . DELET 00001970,00001980 WR1rE(S,60QlMO,IYR,PAYPRN,PAYINT,TODATE,AMOUNT .1 wRITE(5,602) WRITEt6,60S)MO,IYR,PAVPRN,PAYINT,TODATE,AMOUNT WRITE(6,6071 607 fDRMAT('O'/'O***** LOAN AMORTIZED *****'/'0'/'0'/'0') CALL CLDCK(ITIME) IDELTA~{lrlMES-lTIME)/76800 IF (IOELTA) 710,720,710 WRITE (6,999) IDELTA FORMAT (. TOTAL TIME = ',110,' SECONDS') DELET 00002050,00002050 PAuSE 99999 110 999 .1 SOURCE LINE DELETED 720 GO TO 1 END ABOVE NAMEUH3 jfDUNU IN NM DJRECTORV,TTR IS NUW ALTERED ENU Of J08, ./ ENDUP READ HIGHEST CONCODt: iN PROGRAM WAS 00 ******** Figure 12. Results of source correction A cataloged procedure named TESTASSM, using the assembler as the language translator, compiles a source module from TEST. SOURCE into an object module. The name of each of the input source modules from the source library, and the names of each of the output modules to be entered in the object library (TEST. OBJECT), are specified in the job stream for each language translator job step. This procedure and the required DD statements specifying input and output are illustrated in Figure 13. Similar procedures may be executed for FOR TRAN and COBOL (see Figures 14 and 15). Load Module Creation Object module output from language translators is in relocatable, but not executable, format. Therefore, before execution, the object modules must be processed by Linkage Editor so that they may become executable load modules. In addition, adhering to OS/360's basic concept of modularity, modules that have been separately tested may be combined by the Linkage Editor. Also, any editing or overlay structuring of existing object or load modules is done at this time. Because in this application all object modules are in TEST. OBJECT and all load modules are in TEST. LOAD, each has access to the others in the TESTS environment, easing conSiderably the difficulties in locating modules. While the linkage editing can be done on a compile-linkage edit-execute basis for each program to be tested within the TEST environment (see Figure 18), the procedure to be discussed here addresses itself to a single Linkage Editor run during which multiple load modules are created, thereby reducing the number of times the processor is brought into core storage. Once the programs to be tested are in the TEST. OBJECT library as object modules, they will be link-edited via the cataloged procedure TESTLINK, onto the load module library (TEST. LOAD). This, then, allows the programmer to reference these libraries for any additional modules he may require by use of the Linkage Editor INCLUDE statement. As illustrated below, the job stream for the Linkage Editor run, contains (1) an EXEC statement calling for execution of the cataloged procedure TESTLINK, (2) a DD * statement named TESTLINK. SYSLIN, which indicates that the input specifications to Linkage Editor will follow in the job stream, and (3) a set of Linkage Editor control statements specifying the names of the input and output modules of each load module to be created. / / EXEC PROC=TESTLINK / / TESTLINK. SYSLIN DD * INCLUDE OBJPDS (object module name 1) NAME load module name 1 (R) INCLUDE OBJPDS (object module name 2) NAME load module name 2 (R) 19 JOB STREAM 9. IITESIASSM.SYSPUNCH DO DSNAME=TEST~OBJECT(A13) DO PROC=TESTASSM EXEC OS/360 ASSEMBLER TES T. OBJECT AI3 SYS1. PROCLI B I lIES IA.SSM IISYSUTI DO EXEC ..f?GM: I E lASM. . C.C..71 ~ OSNAME=UTX,UNIT=2311,SPACE=(TRK,(SO,lO»,. VOlUME=SER=TESTVl // IISYSUT2 DO DSNAME=UTY,UNIT=2311,SPACE=(IRK,(SO,lO),+ VOLUME=SER=TESTVl DD DSNAME=UTl,UNIT=2311,SPACE=(TRK,(50,lO)),~ /1 IISYSL13 /1 IISYSPRINI DO IISYSllB DO II ./ /SYSIN DD /1 IISYSPUNCH ,II DP VOlUME=SER=TESTVl SYSOlJT=A DSNAME=SYSl.MACLIB,UNIT:2311,DISP=OlO, YOLUME=SER=llllll DSNAME=TEST.SOURCE,UNIT=2311,OISP=OLD, VOlUME=SER=TESTVl DSNAME=TEST.OBJECT,UNIT=2311,DISP=OlO, VOlUME=SER=TESTVl Underlined parameters are not necessary. Figure 13. To compile or assemble a source module from the source library into the object library 20 1. This EXEC statement in the job stream invokes the cataloged. procedure TESTASSM. 2. This EXEC statement invokes the assembler IETASM. 3. Three DD statements defining the space and volume (TESTVL) on which the three utility data sets required by the assembler should be allocated. 4. SYSPRINT specifies that the assembly listing should be printed. 5. This SYSLIB DD statement specifies that SYS1. MAC LIB, which is required for the assembler, resides on the system residence volume, 111111. 6. SYSIN specifies the name of the library (TEST. SOURCE) containing the input source modules, which will be used as input to the assembler or compiler, and indicates that this library resides on TESTVL. 7. TESTASSM. SYSIN specifies the name of the source module (A13) to be assembled from the library and overrides the parameter in 6. 8. SYSPUNCH specifies that the library named (TEST. OBJECT) reSiding on TESTVL is the library in which the object modules are to be placed. 9. TESTASSM. SYSPUNCH specifies that the name of the object module to be placed in TEST. OBJECT is A13 and overrides the DSNAME parameter in 8. Figure 13 (continued). 21 CC72 SYS1. PROCLI B IITESTFORT IISYSPRINT IISYSUTI II IISYSUT2 II I/SYSIN II EXEC PGM=IEJFAAAO,PARM~'SIZ~=50000' SYSOUT=A 00 OSNAME=UTl,UNIT=2311,SPACE=(TRK,(30,lO», VGlUME=SER=TESTVl DD DSNAME=UT2,UNIT=2311,SPACE=(TRK,(30,lO», VGlUME=StR=TESTVL CD U5NAME=TEST.SOURCE,UNIT=2311,DISP=OLD, VOlUME=SER=TESTVL 00 * * * Job stream to execute FORTRAN procedure //TESTFORT.SYSLIN IITESTFORT.SYSIN EXEC DO DSNAME=TEST.OBJECT(B13) DSNAME=TEST.SDURCEtB13) 00 PROC=IESTFORr SPECI FY THE NAMES OF THE INPUT AND OUTPUT MODULES FOR FORTRAN Figure 14. To create object modules using TESTS cataloged procedure for FORTRAN CC72 SYS1. PROCLIB EXEC PGM=IEPCBlOO IITESTCOBL IISYSUTI DO USNAME=UTA,UNIT=2311,SPACE=(TRK,(40,lO», VOLUME=SEK=TESTVL II IlSYSUT2 CD OSNAME=UTb,UNIT=2311,SPACE={TRK,(40,lO», VOlUME=SER=TESTVL II IISYSUT3 DO DSNAME=UTC,UNIT=2311,SPACE=(TRK,(40,lO), VClUME=SER=TESTVl II IISYSPRINT 00 SYSOUT=A IISYSIN CD OSNAME=TEST.SUURCE,UNIT=2311,OISP=OlO, VULUME=SER=TESTVl II /ISYSPUNCH DO DSNAMf=TEST.OBJECT,UNIT=2311,DISP=OlD, II VOlUME=SER=TESTVL * *' * * Job stream to execute COBOL procedure IITESTCOBl.SYSPUNCH '/TESTCOBl.SYSIN II EXEC 00 00 DSNAME=lEST.OBJECT(CD13) OSNAME=TEST.SOURCECCD13. PROC=TESTCUBl Underlined parameters are not necessary • SPECIFY THE NAMES OF THE INPUT AND OUTPUT MODULES FOR COBOL Figure 15. To create object modules using TESTS cataloged procedure for COBOL 22 To combine additional object modules in a load module, their names may be specified in one INCLUDE statement (see item 1 below), or additional INCLUDE statements may be inserted (see items2 and 3 below). 1. INCLUDE OBJPDS (name 1, name 2, name 3) 2. INCLUDE OBJPDS (name 2) 3. INCLUDE OBJPDS (name 3) Load modules from the load library may be combined with other modules as follows: INCLUDE SYSLMOD (load module name or names) Additional specifications for each load module may be inserted between the INCLUDE and NAME statements. If more than one module is to comprise the load module, an ENTRY statement specifying the entry point to be assigned to the load module should immediately precede the NAME statement. Any Linkage Editor control statements to create an overlay structure or to edit the modules should be placed in the job stream preceding the NAME statement as specified in the Linkage Editor manual (C28-6538). The Linkage Editor procedure in Figure 16 (TESTLINK) produces a module map and a list of all Linkage Editor control statements. If additional or different processing options are desired, all parameters required should be specified in the EXEC card, as shown in Figure 16. FOR TRAN and COBOL object modules require that SYSl. FOR TLIB and SYSI. COBLIB respectively be specified as the Linkage Editor automatic call library (SYSLIB) (see C28-6538). Therefore, they have been concatenated in the TESTLINK procedure. 23 NAME C013(R) f::NTRY START INClUUt SYSlMOo(C13) lKCLUDE OBJPCS(D13) NAME BI3(R) INCLUDE OBJPOS(B13) NAMf:: ASUB13(R) INClUDf:: OBJPOS(A13,SUBAI3) DO * TESTVL 05/360 SYS1.PROCLIB IITESTlINK IISYSl18 II II II IISYSUTl 00 II IISYSPtUNT 00 IIOBJPDS CD .II IISYSLMOo II DO EXEC PGM=lINKEDIT,PARM='MAP,lIST' DSNAME=SYS1.FORTlIB,UNIT=2311,PISP=Olo, vel tlME= SER= 111111 DO OSNAME=SYSl.COBlIB,UNIT=2311,DISP=OLD, YOlUME=SER-llll11 oSNAME=LTl,UNIT=2311,SPACE=(TRK,(60,lO», VOlUME=SER=TESTVL SYSOUT=A DSNAME=TEST.ObJECT,UNIT=2311,OISP=OlD, VOlUME=SER=TESTVl DSNAME=TEST.lOAD,UNIT=2311,OISP=OlD, VOlUME=SER=TESTVl * * * * * 1. The EXEC statement in the job stream invokes the cataloged procedure TESTLINK. PARM. TESTLINK='XREF, LIST, LET' overrides the PARM field in the EXEC statement of the cataloged procedure and will cause a cross-reference listing to be produced instead of a memory map and put into effect the processing option LET. 2. The EXEC statement invokes Linkage Editor and specifies processing optioris MAP and LIST (in this example they were overridden). Figure 16. To linkage-edit multiple load modules in one Linkage Editor run 24 3. SYSLIB defines the automatic call library to Linkage Editor and concatenates SYS1. FORTLIB and SYS1. COBLIB. This allows any object modules to be processed, whether compiled by COBOL or FORTRAN. 4. SYSUT1 specifies that the Linkage Editor's utility (work) data set be allocated space on the volume TESTVL. 5. SYSPRINT specifies that the diagnostic messages, memory map, and a list of Linkage Editor control statements processed should be written on the printer. 6. This DD statement indicates that any reference to OBJPDS in Linkage Editor control statements will refer to the obj ect library (TEST. OBJECT), which resides on volume TESTVL. 7. The SYSLMOD DD statement specifies that all load modules created by Linkage Editor in this run will be placed in the load library (TEST. LOAD), which resides on the volume TESTVL. 8. This specifies that the primary input data (SYSLIN) follows immediately in the job stream. 9. This Linkage Editor control statElment specifies that there are two members, A13 and SUBA13, in the library specified by the DD statement named OBJPDS that will be the input to this load module. 10. This control statement specifies that the name of the first load module to be placed in TEST. LOAD is ASUB13. 11. This control statement specifies that the input to the second load module is the member named B13 on TEST. OBJECT. 12. This control statement specifies that the name of the second load module to be entered in the load library is B13. 13. This statement specifies that member D13 on TEST. OBJECT will be part of the third load module. 14. This specifies that C13, previously link-edited and on TEST. LOAD (indicated by the SYSLMOD DD statement, which points to that library) is to be combined with D13 as input to the third load module. 15. This ENTRY statement assigns an entry point named START to the load module. 16. This NAME statement assigns the module name CD13 to the load module containing C13 and D13 on TEST. LOAD. 17. /* denotes the end of the Linkage Editor input. Figure 16 (continued). 25 Execution of Load Modules Because all of the load modules now ready for execution are in the library named TEST. LOAD, the JOBLIB DD statement required for execution of each of the load modules to be tested is the same (see "Definition of a Library") . Therefore, the job stream required to execute any load module will contain a JOB card, a JOBLIB DD statement pointing to TEST. LOAD, an EXEC statement where PGM='member name to be tested', followed by the appropriate DD statements for that particular program. (See Figure 17 for an illustration of a job stream to test programs in TEST. LOAD). While it is possible to test multiple load modules in one JOB, each as a separate job step, all using only one JOB LIB statement, it should be noted that once an abnormal end of one execution is encountered, the ensuing job steps will be bypassed. 00 IIOUT 14 SYSOUT=A VOlU~E=SER=TESTVl 13 1~___________O_b___D_S_N_A_M_E_=_O_A_i_A_{_O_N_E_)_'U_N__ IT_=_2_3_1_1_'_0_1_S_P_=_O_l_0_'___ ~ 12 EXEC PGM=F13 .C.C.72 DO II 0~NAME=INPGT,UNIT=(2400,~OEFER),lABEl=(,Nl) DO 10 , TESTVL PGM=C013 t:XEC 9 DATA 8 7 IIFT03FOOl DO PGM=B13 6 DATA 5 DO 4 DO 3 f:Xf:C * SYSOUT=A 813 PGM=ASUB13 VOlUME=SER~TESTVL DO 2 Joe Figure 17. OSNAME=TEST.lOAD,UNIT=2311,OISP=COlD.PASS), C07.TESTf:XEC,MSGlEVEl=1 To test programs from the load library 26 C.C.72 1. The JOB statement indicates that a new job, JOBD, follows. 2. JOB LIB indicates that before searching the Link library for the programs to be executed, the library TEST. LOAD on volume TESTVL should be searched. 3. The EXEC statement causes the program ASUB13 to be executed. 4. This DD statement indicates that the output (assigned the ddname OUTPUT by the programmer) of ASUB13 is to go on the printer. 5. This DD statement specifies that the input data (INPUT) for ASUB13 follows in the job stream. 6. The second job step indicated by this EXEC statement causes program B13 to be read into core from TEST. LOAD and executed. 7. FT03F001 is the ddname assigned by FORTRAN to the output data set for B13, the printer. 8. FT01F001 is the ddname assigned by FORTRAN to the DD statement that specifies that B13 f S input data follows in the job stream. 9. The third job step causes program CD13 to be executed. 10. INFILE specifies that the input data set for CD13, INPUT, is on tape. 11. OUTFILE specifies that the results of CD13 are to be printed. 12. The fourth job step causes program F13 to be executed from TEST. LOAD. 13. IN, the ddname defining the input data set for F13, indicates that it is a member named ONE in the PDS named DATA. 14. OUT specifies that the results of F13 are to be printed. Figure 17 (continued). 27 Job Stream IITESTPROC JOB II EXEC 007, INSTLTEST, MSGLEVEL=1 PROC =@ I I@AA.SYSINDDDSNAME=TEST.SOURCE(@) II DDDSNAME=TEST.OBJECT (@) COMPILE ®.@ II EXEC PROC=TESTLINK, PARM. TESTLINK='@' IITESTLINK. SYSLIN DD* INCLUDE OBJPDS (@) NAME (R) LINKEDIT ® 1* IITEST B IIJOBLIB EXECUTE II II II 1* ® ® 007, INSTLEXEC, MSGLEVEL=1 DSNAME=TEST. LOAD, DISP=(OLD, PASS). VOLUME=SER=TESTVL EXEC PGM=@ DD DD JOB DD @ Language Procedure Name FORTRAN PROC=TESTFORT COBOL PROC=TESTCOBL ASSEMBLER PROC=TESTASSM ®C = Member name, that is, name of program to be compiled = Compiler Qutput ddname FOR TRAN SYSLIN (See Figure 14) COBOL SYSPUNCH ASSEMBLER SYSPUNCH = Optional Linkage Editor parameters = Member name to be assigned to load module. E may equal B = DD statements required to specify input and output data sets for execution of the program. © i~ Figure 18. Generalized compile- Linkage-Edit - Execute procedure 28 LIBRARY MAINTENANCE Three types of maintenance are required to keep the three libraries (source, object, load) to a manageable size: Reducing the PDS's extent requirements 2. Purging unused members 3. Punching, listing, and deleting completed programs 1. Reducing Extent Requirements The frequency with which the installation would wish to reduce the extents of a PDS depends on the volume of testing being performed and the original size of the PDS. Additional extents may be required, as new members (programs) are added or updated in a library. As an example, if a source program named MA TRIX13 were originally put into the source library and subsequently changed through the CHGSORCE procedure, the original space for the MATRIX13 module would be unavailable for use. Probably on a shift basis or daily basis, the installation would want to obtain a picture of the situation. In order to do this, a procedure is included here called TESTPEEK. This procedure allows the printing of the TESTVL Volume Table of Contents, and the contents of each library. Figure 20 illustrates the TESTPEEK procedure~ Note that only one card is required in the job stream to obtain the listings, because the control statements for the utility IEHLIST are located in SYS1. PROCLIB, cataloged under the name CNLPEEK2. The control statements are called by the SYSIN DD statement in TESTPEEK, which, of course, is also in SYS1. PROCLIB. An examination of the output, with particular attention to the number of extents in each library, may lead to the decision to reorganize the libraries if they contain much space that is unavailable for use. To perform this function, we MOVE (see C28-6586) the TESTVL volume to itself. This particular utility program for each PDS specified, examines the directory and moves it to the new PDS. It also places the members in the top of the new PDS as illustrated in Figure 19. To perform this for all the partitioned data sets on the entire TESTS volume, a procedure called CLEAN can be used, which is illustrated in Figure 21. Note that again only one card is required in the job stream to perform the CLEAN procedure, because both the CLEAN procedure and the IEHMOVE control statement required by it are on SYS1. PROCLIB. The SYSIN DD in C LEAN calls the control statement which is cataloged under the name C LEAN1. 29 --- OLOPOS~ I A C B I F A } 01 RECTORY l IB pos B C F { t------'------I B 1 A MOVEO UNAVAILABLE SPACE IF C AVAILABLE SPACE __________ _ _- -_ _ _ _ _ _ _- . . . J Figure 19. Increasing the available space in a PDS Purging Unused Members From the listing received from the TESTPEEK procedure, it will be desirable to audit the usefulness and timeliness of the va.rious modules (programs) • If it is determined, for instance, that a particular module is no longer useful, the installation may run the utility IEHPROGM and scratch a particular member from all libraries. A procedure for this has not been included in this document, but it could be similar to the last three steps in the SORCEDOC procedure (see Figure 22). Completed Programs After a program has completed its required testing and is performing satisfactorily, it can be (1) moved to LINKLIB or a specific JOB LIB ; (2) used to obtain a copy on tape or cards, or to obtain a listing; etc. One of the most common joint functions performed on a completed program would be to (1) list the source code, (2) punch a source deck, and (3) delete the program member from the source, object, and load libraries. The SORCEDOC procedure, (see Figure 22) together with the cataloged control statements that are also in SYSl. PROCLIB (see 30 Figure 23) will perform all these functions. To reduce the number of cards required in the job stream (only four are required to print and punch a program while deleting it from three libraries), the SORCEDOC procedure uses several features of OS/360: 1. The ability to execute a multiple-step procedure. (SORCEDOC contains a number of EXEC statements.) 2. The ability to call utility control statements from a library rather than placing them in the job stream. 3. The ability to specify that a sequential data set is to be concatenated with a PDS member, and the ability to continue a utility control statement. (See "Data Set Utilities" in C28-6586 for concatenation restrictions. ) In this case (Figure 22) the name of the program to be printed, punched, and scratched (entered in the job stream) is recorded in a newly created temporary data set called TEMP (see point 1 in Figure 22) by the utility IEBGENER. This temporary data set then supplies the name of the program to the other utility programs in SORCEDOC. Note that the SYSIN DD statements in steps 2-6 of SORCEDOC call a utility control statement (a member of a PDS) from SYSIN. PROCLIB. The following DD statement, since it has no ddname, concatenated this temporary data set with the control statement. Also note that each utility control statement is prepared with an = sign in cc 71 (following ME MBER or MEMBER NAME) and a continuation indicator in cc 72. Therefore, each utility in steps 2-6 of SORCEDOC looks for the member name in TEMP after reading the = sign of the control statement. (See Figure 24 for a detailed illustration of the concatenation of the data sets and continuation of the utility control statement.) Further, it is important to observe that to print/punch a member using the utility Print/Punch program, the detailed statement must be written MEMBER NAME = XXXX. In the IEHPROGM utility, to scratch a member, it must be specified as ••• , MEMBER = XXXX. One of the most important features of the SORCEDOC approach is that it protects the user from inadvertently scratching a library. If, for example, a nonexistent member is speCified or a member specification was omitted from the job stream, the utility will not scratch the library, since no member name was specified for the MEMBER or MEMBER NAME parameter. 31 II EXEC TESTPEEK SYSl. PROCL I B 2 CNLPEEK2 TESTPEEK '/PEEK2 EXEC /ISVSPRINT DD PGM=IEHLISI SYSOUT=A 1/001 { IISYSIN ~ llSrVTOC lISTVTOC 3.~ l I STPOS llSTPDS llSTPDS DO DO VOLUME=SER=TESTVL,UNIT=2311,OISP=OLO OSNAME=SYS1.PROCLIB(CNLPEEK2),OISP=OLD VDL=2Jll=T.ESTVL DUMP,VOl=2311=TESTVl VGl=2311=TESTVL,OSNAME=lEST.SOURCE VOl=2311=TESTVl,DSNAME=TEST.OBJECT VOl=2311=TESTVl,OSNAME=TEST.lOAD IITEST" SYSTEM CONTROL 1. Only one card required to obtain listings. 2. The procedure TESTPEEK located in SYSl. PROCLIB. 3. The control statements for the utility IEHLIST to list the desired data. Note that these five statements are located in SYSl. PROCLIB under the name CNLPEEK2. These statements are called by the DD Statement in TESTPEEK. A SYSIN DD * cannot reside in a cataloged procedure. 4. Output results. Note: In the TESTs environment it would be desirable to have the SYSl. PROCLIB on the TESTVL volume. This would allow the procedures for TESTs to be mounted only when the testing is in process and would leave system residence SYSl. PROCLIB space open for more universal procedures. It should be noted, however, that if the SYSl. PROCLIB were on TESTVL and pOinted to at IPL time, DD eards in this writeup that reference SYSI. PROCLIB would. requireT: : additional parameter~ that is, VOLUME=SER..TESTVL. f This would eliminate a catalog search. Figure 20. To list TESTS system control data 32 II EXEC CLEAN I. /IClEAN EXEC PGM=IEHMUVE IISYSPRINT DO SYSOUT=A IISYSUTI DO UNIT=2311,VOlUME=SER=111111,OISP=OlD /1002 DO DNIT=2311,VOlUME=SER=TESTVl,DISP=OlD //SYSIN DD DSNAME=SYSl.PRGClIB(ClEANl),OlSP=OlD VOlUME=2311=TESTVl.TO=2311=TESTVl NOT C.C.! 1. One card required to invoke the C LEAN procedure. 2. The CLEAN procedure is located in SYSl. PROCLIB. 3. Control statement for the utility IEHMOVE located in SYSl. PROCLIB under the name CLEAN1. This single statement moves TESTS volume to itself. 4. Conceptually, the action that takes place. The running time depends on the number of data sets and members within the data sets. The old data sets are deleted. Figure 21. To reduce extent requirements on a volume 33 I * TESTVL CC16 AI3 II SORCE DOC. SYSUT 1 DO * PROGRAM LISTING PROGRAM PUNCHED SYS1.PROCLIB II~URCEOOC EXEC PGM=IEBGENER IISYSPRINT DO SYSOUT=A n 1. IISYSUI2 00 OSNAME=TEMP,UNtT=2311,VOlUME=SER=TESTVl,OISP=(NEW,KEEP), II DeB= ( ,RECFM=F t. 61-KS ILE:=8Q ._, Sf:lACE::;(TRK, (2) ) IISYSIN DO CUMMY IISI EXEC PGM=lERPTPCH IISYSPRINT 00 SYSOUT=A IISYSUTI DO OSNAME=TEST.SOURCE,VOlUME=SER=TESTVl, 2.( II UNIT=2311,0ISP=OlD IISYSUT2 DO SYSOUT=A IISYSIN 00 DSNAME=SYSl.PROClIB(PRTSORC1),OISP=OlO -II DO OSNAME=TEMP,VOlUME=SER=TESTVl,UNIT=2311,0ISP=OlO IIS2- - -EXEC PGM=IEBPTPCH IISYSPRINT DO SVSOUT=A IISYSUTI 00 OSNAME=TEST.SOURCE,VOLUME=SER=TESTVl, 3. 1/ UNIT=2311,0ISP=(lLO I/SYSUT2 00 UNIT=OOO ~ /ISVSIN DO OSNAME=SYSl.PROCLIB(PCHSORCl),OlSP=Ol~v II 00 OSNAME=TEMP~VOLUME=SER=TESTVL,UNIT=2311,0ISP=OlO I/scm EXEC PGM=IEHPROGM 11001 DO VOlUME=SER=TESTVl,UNIT=2311,0ISP=OLO 4 /ISYSPRINT DO SYSOUT=A /ISYSIN DO OSNAME=SVSl.PROCLIB(SCHSORCE),DISP=OlO ____~ _IL~D---PSNAME=TEMP, VOLUME=SER=TES TVL, UN I T=2311, ° I SP=OlO I I SCH2 EXEC PGM= I EHPROGM 11001 00 VOlUME=SER=TESTVL,UNIT=2311,0ISP=OlD ~. IISYSPRINT 00 SYSOUT=A IISVSIN DD OSNAME=SYSl.PROClIB1SCHOBJCT),0(SP=OlO -L/__ ~ ___OSNAME=TEMP,VOLUME=SER=TESTVL,UNIT=2311,OISP=Ol° IISCH3 EXEC PGM=IEHPROGM 11001 DO VOLUME=SER=TESTVl,UNIT=2311,DISP=OlO ~ IISYSPRINT DO SVSOUT=A /ISYSIN DO OSNAME=SYSl.PROClIB(SCHlOAOT),OISP=OlO _-L1_ ....QO_DSNAME=TEMP, VOLUME=SER=TES TVL, UN I T=2311, DI SP=( OLD, DEL ETE) ~ ~ * * * 1 ~ ~ ~ A. 1. 2. 3. 4,5,6. JCL required to execute procedure SORCEDOC. Brings program name (in this example, A13) from card reader and stores it in a newly created sequential data set called TEMP. Prints program - A13 (source). Punches program - A13 (source). Scratches member A13 from TEST. SOURCE, TEST. OBJECT, TEST. LOAD, respectively. Figure 22. To print and punch a source program and delete it from the source, object and load libraries 34 r,:PROCLIBI \ --- PCH SORCi I~I PRTSORCl It I SCH LOADT I I 6. 112" PRINl-rVPGRG=PO,MAXNAME= 1 ,MAXFLDS= 1 \ if SCHOBJCT I I SCHSORCE I I 5./f 4./1 CC71 . TITLE ITEM=('PRINT OF SOURCE PROGRAM',48) ~31:PUNCH TVPO~G=POtMAXNAME=l.CDSEQ=OOOOOOOO,MAXFLDS=l MEMBER NAMF.!* MEMBER NAME=* ~C1 4. SCHSGRCE jC1 SCRATCH DSNAME=TEST.SGURCE.VOl=2311=TESTVl,MEMBER=* 6. SCHlOADT SCRATCH DSNAME=TEST.LOAU~VOL=l311=TESTVL,MEMBER=* CL 5. I SCH08JCT SCRATCH DSNAME=TEST.OBJECT,VOL=2311=TESTVl.MEMBER=* Figure 23. PRINT, PUNCH, and DELETE 35 SORCE DOC SYSLPROCLIB EXEC P~M=iEHPRUGM 1:)0 VULUME=SER=TlSIVL,UNII=2311,DISP=OLD I~SYSPRINT OD 5YSUUT=A IISYSIN 00 OSNAME=SYS1.PkGCLld(SCHSORCt),QISP=OLO II 00 O~NAM£=TEMP,VOLUM~=SER=TESJVL,UNIT=2311,DISP=OLO_ IISCHl /1001 ~ TESTVL OUTPUT DOCUMENT S¥SIEjloj SUPPUAT UTiLITIES ---- lEHPkUGM CGI6 o. GCHSGRCt: b. L _ _ _ -=-_ ~_ -=ll.lW-=-L _ _ _ _ _ -..! NCHMAL tND SCRATCH DSNAI"lt:=TES T • SOURCE, VOL=2Jll=TESTVl CC71 I 'MEM8ER~ uf TASK RtTURNEO FKOM SCRATCH UTILIT¥ END 4. See Figures 22 and 23, the fourth step. a. utility control statement to scratch an unnamed member. The named member is found on TEMP, which is concatenated with the control statement. b. The concatenated sequential data set containing the member name. Figure 24. To concatenate utility control statements 36 LIBRARY BACKUP - AUDIT TRAIL It is apparent that with such a system as described in this example, a means of protection against unforeseen circumstances is mandatory. Backup Copy It will be desirable to obtain a "backup" of the TESTS volume as well as a listing of its condition at the time a copy is made. The frequency with which a backup copy should be made will depend upon the volume of testing, but presumably a copy would be made at least once per shift or at the end of a large test run where multiple tests were performed. The overall procedure for obtaining a backup copy of the TESTS volume is shown in Figure 25. Before executing the BACKUP procedure, a standard volume label of "BACKUP" must be written on a tape reel, with the eleventh byte an EBCDIC zero. Is., ( J & , , ~ II ) Excluding the listing received from TESTPEEK, Figure 26 illustrates the document received when the BACKUP procedure is executed. 37 G /1 EXEC TESTPEEK II EXEC BACKUP BACKUP! IIBACKUP EXEC I/SYSPRINT DO IISYSllTl DO IIDOI 00 11002 DO I/SYSIN DO PGM.= I EHMOVE SYSOUT=A UNIT=2311,VOLUME=SER=111111,OlSP=OlO UNIJ=2400,VOlUME=SER=BACKUP,DISP=OlO UNIT=2311,VOlUME=SER=TESTVl,OISP=OlD DSNAME=SYSl.PROClIBfBACKUPl),OISP=OlO VOlUME=2311=TEST~l,TO=2400~BACKUP TE5TVL 05/360 DOCUMENT SEE FIG. 26 1. 2. 3. 4. A. Invokes the BACKUP procedure. JCL for the BACKUP procedure. Utility control statement for IEHMOVE. Invokes the TESTPEEK procedure (see Figure 20). Overall flow. Figure 25. To obtain a backup copy of the TESTS volume 38 S't'.').J!:M SUPPORT UTILiTiES ---- IEHMOVE COpy VOLUME=2311=TESTVL,TO=2400=bACKUP ThE FOLLOWING DATA SET IS BEING MUVED. TEST.DBJECT H4111 DATA SET TEST .OBJE(.T UNLOADED BECAUSE ACCESS METHOD NOT COMPATIBLt: A _ DATA SET TEST.ObJECT HAS BEEN CUPtED TO VOLUMEtS) . >- BACKUP, 000 1 ThE FOLLGWl~b DAIA SET IS BEING MOVED. TEST.LOAD lEH411I DATA SET fEST.LOAD UNLOADED BECAUSE ACCESS METHOD NOT COMPATIBLE MEMB~ ASUb13 HAS dEEN UNLOADED M- b~ TEMPNAME HAS BEEN UNLOADED A DATA SET TEST.LOAD HAS BEEN COPIED TO VOLUME(S) . 8ACKUP,0002 Tht FOLLOWING DATA SET IS BEING MUVED. TEST.SOURCE lEH4111 DATA SET JEST.SOURCE UNLOADED BECAUSE ACCESS METHOD NOT COMPATIBLE MtMb~ 813 HAS BEEN UNLOADED MEMB~ TEMP HAS BEEN UNLOADED f:\ DATA SET lEST.SOURCE HAS BEEN COPIED TO VOLUMElS) > i3ACKUP t 0003 8 0..J A. Note: These are sequence numbers assigned to the data sets on tape. These numbers will be used to retrieve the libraries (see Figure 28). Note also that all data sets have been put on tape in an "unloaded" version (C28-6586). This is perfectly all right, because, when they are returned to disk, they are returned as they were originally. Figure 26. Document received from BACKUP procedure 39 Reinitialize TESTS If the TESTS volume should be damaged, it must be reinstated to its condition at the time the last BACKUP procedure was executed. Since this reinitializing will be performed infrequently, the job control statements to accomplish this are maintained in a card deck rather than in SYS1. PROC LIB. After a volume has been initialized using DASDI (see Figure 6), the MOVE/COPY utility for data sets will copy the three data sets (source, object, load) onto the disk volume (see Figure 27). If additional data sets were on the original volume, these could be retrieved at this time by reviewing the listing from the BACKUP procedure and observing the sequence number of the data set (Figure 26). Figure 28 shows the results of this copy of data sets from tape to TESTVL. Note: The MOVE/COPY volume utility will MOVE/COPY with direct ~ss as the FROM device only. Since FROM (in the MOVE/COPY volume utility) may not refer to a non-direct access device such as tape, we must use the MOVE/COPY for data sets rather than volume in order to retrieve the data sets from tape. 40 I l. . ."" .·....:;:·lS I r'~ lJD I II ····lJD2 TID II II DD UNIT -2:311, I.... OLUNC::::::.ER=TE:~TVL, DISP-']LII I II I I I IU I I I III II I I UNIT=2:311,VOLUME-SER-l11111,DISP=QLD II .····.··'S··t::::F'~~H-n . liD I I I II I S'lSDUT=A "I . '.~>::EC:II P!~l'l- I Ef-U"1DVE .......... II I .......... REI~11 T J'JB II I I I I urUT=240Q, l,l8UJME-SER-BACKUP, II I SP=QLD I I III 007, I~ETu.m~:K, !'EGLE'·lEL=l I I II \ I I I I I III I I • 110000010000000110100110100010100010000000000000000000000000000000000000000000]0 1234567'9ronttnM~nundM~~~~~ava~~~~~~~~».H~~U~~~~U~U~~~~~~~~~9M~uaM~M~upMnnnU~NnnNM 11111111111111111111111111111111111111111111111111111111111111111111111111111 n 1 22222222222212222222212222212212222222222222222222222222222222222222222122222212 33333331333333333313331133331333133313333333333333333333333333333333333333333313 444444444444444444444444444441444444444444444444444444444444444444444444444444~4 555151555555555555551555555555555111555555555555555555555555555555555555555555t5 66666666666166666666666611666666666661666666666666666666666666666666666666666l6B 77777777777777777177777777777771777777777777777777777777777777777777777777777777 a8 a8888 a8 a8 8 aaaaaala a8 aaaaaala 8 8 a8 a8 al8 8a8 a8 8 8 a8 8 8 8 8 8 8a8 a8 8a 8 8 aaa8 88 a8 8 aaaa8 a8 8 8 9919191999999999999199999S19J9999999J9999999999999999999999999999999999999999999 - 123456789wnnnM~nunaM~u~~~~~n~~~~~~~~D~~~~U~~~~UUU~~~~~~~~g"~~U~M~M~""MnnnU~nnnn~ I IBM SDB1] A. Three COpy utility statements to retrieve the three TESTS libraries. Notice that the sequence number (BACKUP, 0001) specification corresponds to the sequence number assigned when BACKUP was executed (see Figure 26). Figure 27. To reinitialize the TESTS volume 41 SYSTEM ~UPPURT UTILITL~S ---- IEHMOVE U~NAME=TtST.UBJECTtTO=23tl=TESTVl.FROM=2400=(BACKUP,0Q01) DATA S~f TtST.OBJECT HAS BEEN COPIED TO VOLUME(S) TESTVL LOPY OSNAMt=TEST.LUAD,TO=2311=TESTVL,fRUM=2400={BACKUP.0002) MEMBER ASU813 hAS BEEN MOVED/COPIED~ MtMBER TEMPNAME HAS uEEN MUVED,COpIED. DATA SET TEST.LUAD HAS BEEN COPltD TO VOLUME{S) TESTVL CUPY DSNAME=TEST.~UURCl,TO=2311=TESTVL,FROM=2400=(BACKUPtOO03) MEMBER B13 HAS BEEN MUVED/COPIED. MtMeER TEMP HAS BEEN MOVED/COPIED. DATA SET TEST.SOURCE HAS BEEN COPIED TO VOLUME(S) TESJVl 1. Note: Although there were no members in this library, the data set still exists, and the original space that had been allocated is still in effect. Figure 28. Document received from reinitializing the TESTS volume (see Figure 27 for execution) 42 MULTIPLE JOB FLOW IN "TESTS" Figure 29 illustrates the processing of multiple programs through the TESTS environment. The purpose of this figure is to illustrate the logical flow, rather than the actual format of the statements. The operations involve programs Al3, SUBAl3, Bl3, Cl3, and Dl3. Al3. To be modified and reassembled. SUBAl3. To be entered as a new source module and link edited with Al3 to form the new executable module ASUBl3. Bl3. Entered as a new source module to be compiled by COBOL and executed. Cl3 and Dl3. Both have individually completed the test cycle and are to be combined into a new load module (CDl3) for execution. Both are members of the object and load module libraries and could be combined in either format. This example combines the object modules. The processing illustrated in Figure 29 has been separated into four jobs: JOBA enters the source decks into the source library or modifies a module already there. JOBB assembles or compiles the source modules onto the object library. JOBC link-edits the object modules into the load library. JOBD executes the programs from the JOBLIB (TEST. LOAD) in . successive job steps. 43 04 II EXEC PGM= BI3 II EXEC PGM=ASUBI3 02 /1 JOBLI B DO TEST. LOAD 03 OS/360 II JOBO JOB 01 O. COl3 013 C2 CI /1 EXEC PROC=TESTLINK ~--==--t;---r--l II JOBC JOB C. /1 SYSIN DO BI3 B9 B8 II EXEC PROC=TESTCOBL B3 B2 BI II SYSIN DO SUB AI3 II EX EC PROC=TESTASSM ~--I I JOBB JOB B. /1 EXEC PROC=NEWSORCE 05/360 SOURCE DECK A. A3 .I CHNGE AI3 A2 AI II EXEC PROC=CHGSORCE II JOBA JOB Figure 29. Job flow of multiple programs from source to execution 44 Job Stream A Processing Incurred A 1. / /JOBA JOB Job statement indicating start of JOBA. A2. / /EXEC PROC=CHGSORCE Invokes the cataloged procedure to update programs already on the source library. A3. • / CHNGE A13 Indicates the name of the program (A13) to be updated in the soUrce library. A4. SOURCE for A13 The source statements which will update A13. AS. / /EXEC PROC=NEWSORCE Invokes the cataloged procedure to enter new programs in the source library. A6. • / ADD B13 Indicates the name of the program (B13) to be added to TEST. SOURCE • A7. B13 The deck of source statements comprising B13. A8. . / ADD SUBA13 (See A6.) In this case SUBA13 is the new subroutine to be added to TEST. SOURCE . A9. SUBA13 Source statements for SUBA13. Job Stream B B1. //JOBB JOB Specifies JOBB, in this application the language translation. B2. / /EXEC PROC=TEST ASSM Invokes the cataloged procedure for Assembler. B3. / /SYSIN DD SUBA13 Represents the DD statement which specifies the name of the module (SUBA13) to be assembled. B4. / /SYSPUNCH DD SUBA13 Specifies to the assembler the name (SUBA13) to be given the output module on the object library. BS. / /EXEC PROC=TESTASSM (See line B2.) Second job step. B6. / /SYSIN DD A13 (See B3.) In this case, program A13 which has just been modified is to be recompiled. B7. / /SYSPUNCH DD A13 (See B4.) The new object module will replace the one named A13 previpusly placed in the object library. B8. / /EXEC PROC=TESTCOBL Invokes the cataloged procedure for COBOL. B9. / /SYSIN DD B13 Specifies that the name of the COBOL source module to be compiled is B13. B1D. / /SYSPUNCH DD B13 Specifies that B13 is the name to be assigned to the compiled object module. Job Stream C Processing Incurred C 1. / /JOBC JOB Job statement-start of JOBC. C2. / /EXEC PROC=TESTLINK Invokes the cataloged procedure to link-edit object modules into load modules. C3. Linkage Editor control statement indicating that the name of the first object module to be link edited is B13. INCLUDE B13 In this case, only one job step occurs. C4. NAME B13 Specifies that the resultant new load module which becomes a member of TEST. LOAD is to be named B13. CS. INCLUDE A13 Linkage Editor control statement indicating that the second object module to be link-edited is called A13. C6. INCLUDE SUBA13 (See CS.) Indicates that SUBA13 is to be link-edited with A13. C7. NAME ASUB13 (R) C8. INCLUDE (C13, D13) (performs same function as CS and C6) C9. NAME CD13(R) Specifies that the resultant load module consisting of A13 and SUBA13 is to be entered into TEST. LOAD and ASUB13. Linkage Editor control statement indicating that the input for this load module will be object modules C13 and D13. Linkage Editor control statement specifying the resultant load module consisting of C13 and D13 should be entered on TEST. LOAD as CD13. Job Stream D D1. / /JOBD JOB Job statement indicating start of JOBD. D2. / /JOBLm DD TEST. LOAD JOBLm pOints to the library, TEST. LOAD, containing the programs to be executed in this job step. D3. / /EXEC PGM=ASUB13 (DD statements for ASUB13 not shown) SpeCifies that the first job step will execute program ASUB13, followed by the appropriate DD statements defining the input and output data sets for this program. D4. l/EXEC PGM=B13 (DD statements for B13 not shown) The second job step will execute program B13. (See line 3. ) The third job step will execute program CD13. (See line 3, ) DS. / /EXEC PGM=CD13 (DD statements for CD13 not shown) Figure 29 (continued). 45 C20-1663-0 () N l' ...... 0'\ 0'\ W I o llrn~ ® International Business Machines Corporation Data Processing Division 112 East Post Road, White Plains, N. Y. 10601 (USA Only) IBM World Trade Corporation 821 United Nations Plaza, New York, New York 10017 (International) READER'S COMMENTS IBM System/360 Operating System User Libraries (C20-1663-0) Your comments regarding this pubhcation will help us improve future editions. Please comment on the usefulness and readability of the publication, suggest additions and deletions, and list specific errors and omissions. I I I USEFUlNESS AND READABILITY I I I I I I I I I I I I I I SUGGESTED ADDITIONS AND DELETIONS I I I I .I I I I I I : ERRORS AND OMISSIONS (give page numbers) I I I I I I I I I I I I I I Name______________________________ Title or Position~_ _ _ _ _ _ _ _ _ __ Address'---__________________ FOLD ON TWO LINES, STAPLE AND MAIL No Postage Necessary if Mailed in U. S. A. C20-1663-0 fold fold ....................................................................................................................... : FIRST CLASS PERMIT NO. 13.59 WHITE PLAINS, N.Y. BUSINESS REPLY MAIL NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES POSTAGE Will BE PAID BY . . . IBM Corporation 112 East Post Road White Plains, N. Y. 10601 Attention: Technical Publications fold fold () N oI ...... 0\ 0\ w I o ~rnllir ® International Business Machines Corporation Data Processing Division 112 East Post Road, White Plains, N. Y. 10601 (USA Only) IBM World Trade Corporation 821 United Nations Plaza, New York, New York 10017 (International)
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 : 2012:06:01 18:37:11-08:00 Modify Date : 2012:06:02 07:17:20-07:00 Metadata Date : 2012:06:02 07:17:20-07:00 Producer : Adobe Acrobat 9.51 Paper Capture Plug-in Format : application/pdf Document ID : uuid:4284d307-1277-4961-82aa-03cdb0664df1 Instance ID : uuid:78b49912-4110-49b8-949a-503b4efb861a Page Layout : SinglePage Page Mode : UseNone Page Count : 54EXIF Metadata provided by EXIF.tools