Mark - 5% of final.
I will use the filename you indicate to pick up your submission electronically. Marks are deducted for misspelling the pathname or placing the file in a directory that I can't search through.
Read the class notes on JCL, both here and here.
Note: there is at least one essential piece of info missing in the following description. Identify it and explain briefly how you would get this info 'on the job' and earn bonus marks! (Enter your explanation in JCL comments near the top of the file, after your absolute pathname comment.)
Code all JCL for a job which will compile, link edit and test an instream COBOL source program that reads two test datasets. Use account number MVSLAB2 for the job, and your name as programmer name. Ensure that JCL messages from MVS contain full detail, except that we are not interested in JES allocation messages. Spool the JCL messages to the laser printer. Select medium priority in our particular job class.
The first test data set is called TESTSET1 (about 6,000 records of 155 bytes) and is on tape #200200 (ANSI labels). It should first be copied to a disk dataset, using IDCAMS. This first tape data set should be deleted after use. The disk copy should also be deleted when the job ends. Send IDCAMS error messages to TSO user SMITHH at node MVS1.
The second test data set is called TESTSET2 (about 6,000 records of 90 bytes, unblocked) and is on tape #200300. It should first be copied to a second disk dataset (different from the one above). This second tape data set should be catalogued after use. The disk copy should be deleted when the job ends. Specify that these IDCAMS error messages should be held for viewing via TSO.
Next use the COBCLG procedure to compile and test a COBOL program. The compiler will read the source program (instream) from COMP.SYSIN. Hold the compiler listing output (generated on DDname SYSPRINT) for viewing via TSO. The linkedit step (called LKEDIT) should read all needed subroutines from a library called MYTEAM.COBOL.TESTLIB using DDname SYSLIB.
At the execution step of the proc (called RUN) the COBOL program will read the two new disk datasets of test data created in the previous steps, from DDnames DATAIN1 and DATAIN2 respectively, combining each record from each of the two datasets into one longer record.
The output dataset will be written to disk using DDname DATAOUT. This new disk output dataset will have the same number of records as the inputs, but the new record length (specified in the COBOL program) will be the sum of the two input record lengths. This output disk dataset should be catalogued for future use.
At the same time, the program will also create a duplicate output dataset on tape #200400 using DDname BACKUP2, with ANSI labels. Name this dataset DATABACK.
In addition to specifying the new combined output logical record length, the COBOL for both output datasets also contains the following clause:
BLOCK CONTAINS 0 RECORDS ORGANIZATION IS SEQUENTIAL.
The test run will also produce about 160 labels of an average of 16 lines each on the laser printer, using forms background INVENTRY. Request that this output be separated at the perforations.
After the test, print the new disk output dataset from the previous step using IDCAMS. Ask for 2 copies on special form GREEN1.
Assume that all tapes are in group SYSSQ and all disks are in group SYSDA.
CLASS A - no tapes, no special forms - maximum 500 print lines, 10 mins run time CLASS B - 1 tape, special forms allowed - maximum 7000 print lines, 30 mins run time CLASS C - no tapes, no special forms - maximum 7000 print lines, 1 hour run time CLASS D - 1 tape, special forms allowed - maximum 10000 print lines, 1 hour run time CLASS E - 2 tapes, no special forms - maximum 10000 print lines, 1 hour run time CLASS F - 4 tapes, special forms allowed - no print line maximum, no run time limit
CLASS A - no special forms, maximum 500 print lines CLASS B - no special forms, maximum 7000 print lines CLASS C - special forms allowed, 7000 print line maximum CLASS D - special forms allowed, no print line maximum CLASS L - all output for laser printer (only)