JCL Perguntas e respostas - www.cadcobol.com.br


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

JCL Perguntas e respostas
  1. What is JCL?
    Answer:
    • It is an interface between operating system (MVS) & the application program.
      When two related programs are combined together on control statements, it is called job control language

  2. What is a GDG?
    Answer:
    • A GDG is Generation Data Group.
      GDG’S allow users to create multiple data sets with the same base name distinguished by a logical number.
      History files can be referenced by using a negative generation number.
      GDG base can be created using a utility (IEBPROGM or IDCAMS) With (+1) we will be creating.
      EX:
      //OUTDD DD DSN=QZ6P03T.ARUN.MASTER(+1) (Create new data set)
      //INDD DD DSN=QZ6P03T.ARUN.MASTER(+0) (Reference most current data set).
      Yes - GDG can be sequential, direct, or partitioned Organization and can be reside on tape or direct-access volumes GDG must always be cataloged

  3. What is a Generation Data Group (GDG)?
    Answer:
    • A generation Data Group is a group of chronologically or functionally related datasets.
      GDGs are processed periodically, often by adding a new generation, retaining previous generations, and sometimes discarding the oldest generation.

  4. How is GDG base created?
    Answer:
    • A GDG base is created in the system catalog and keeps track of the generation numbers used for datasets in the group.
      IDCAMS utility is used to define the GDG base for MVS/XA, and MVS/ESA.
      Older systems required that the IEHPROGM utility be used.

  5. How are GDG concatenated?
    Answer:
    • Generation data groups are concatenated by specifying each dataset name and the generation number of all generations of the generation data group.
      To retrieve all generations of a generation data group, omit the generation number.
      The DD statements refers to all generations
      The result is the same as if all individual datasets were concatenated.
      If generations are not on the same volume, this will not work.

  6. What is the status of the GDG when an abend occurs?
    Answer:
    • The GDG is in a bad state because it may consist of partial information.
      If used in this state, it is possible to get incorrect or improper results.
      It is recommended to reset the current generation by deleting the bad generation before executing the job, which will re-create a new generation.

  7. How is a previous GDG coded?
    Answer:
    • Previous GDGs are coded as (-1) after the dataset name.
      An example would be DSN=JAN.DATA(-1).


  8. How is the current GDG coded?
    Answer:
    • Current GDGs are coded as (0), (+0), or (-0) after the dataset name as follows: DSN=JAN.DATA(0).
      The +(0) and (-0) have the same effect as (0) Normally, it is coded as (0).

  9. How is a new GDG coded?
    Answer:
    • A new GG is coded as (+1) after the dataset name as follows:
      DSN=JAN.DATA(+1).
      This will cause all generations to be pushed down one level at the end of the job.

  10. What are the parameters used in creating a GDG?
    Explain in detail? Can you alter the parameters for the existing GDG?
    If yes, How? Creating a Model Data Set Label (or control block, DSCB)
    Answer:
    • This label is a data set which contains DCB attributes and is usually referred to in the DCB parameter when creating new GDG data sets.
      Most shops create the model DSCB with no DCB attributes.

  11. What for the Model data set used for a GDG?
    How much space will you give to the Model Data set ?
    Answer:
    • The system needs an existing data set to serve as a model supplying the DCB parameters for the GDG to you want to create.
      The system uses the data set label to obtain the DCB sub-parameters, and the model is called the DSCB for reasons lost to history.
      Need not specify any space while creating a model data set.

  12. How many Maximum generations can be created for a GDG?>
    How will you create a Generation data set ?
    Answer:
    • The maximum number of GDG versions that can be created is 255.
      A GDG data set is created with "(+1)" appended to the name of the GDG base.

  13. Can we browse or edit the GDG dataset if it is a tape entry?
    Answer:
    • No

  14. What are the differences between JES2 & JES3 ?
    Answer:
    • JES3 allocates Data Sets for all the steps before the job is scheduled.
      In JES2, allocation of Data Sets Required by a step are done only just before the step executes.
      JOB /EXEC/DD ALL PARAMETERS JOBLIB/STEPLIB PROCEDURES, PARAMETERS PASSING CONDITION VARIABLES ABEND CODES.

  15. What are the kinds of job control statements?
    Answer:
    • The JOB, EXEC and DD statement

  16. What is the meaning of keyword in JCL?
    What is its opposite?
    Answer:
    • A keyword in a JCL statement may appear in different places and is recognized by its name, eg MSGCLASS in the JOB statement The opposite is positional words, where their meaning is based on their position in the statement, eg in the DISP keyword the = (NEW,CATLG,DELETE) meaning are based on first, second and third position.

  17. Describe the JOB statement, its meaning, syntax and significant keywords.?
    Answer:
    • The JOB statement is the first in a JCL stream Its format is // jobname, keyword JOB, accounting information in brackets and keywords, MSGCLASS, MSGLEVEL, NOTIFIY, CLASS, etc.

  18. Describe the EXEC statement, its meaning, syntax and keywords.?
    Answer:
    • The EXEC statement identifies the program to be executed via a PGM=program name keyword Its format is //jobname EXEC PGM=program name The PARM= keyword can be used to pass external values to the executing program.

  19. Describe the DD statement, its meaning, syntax and keywords.?
    Answer:
    • The DD statement links the external Data Set name (DSN) to the DDNAME coded within the executing program It links the File names within the program code to the File names know to the MVS operating system The syntax is // ddname DD DSN=Data Set name Other keywords after DSN are DISP, DCB, SPACE, etc .

  20. What is a PROC?What is the difference between an instream and a catalogued PROC?
    Answer:
    • PROC stands for procedure It is 'canned' JCL invoked by a PROC statement An instream PROC is presented within the JCL; a catalogued PROC is referenced from a proclib partitioned Data Set.

  21. What is the difference between a symbolic and an override in executing a PROC?
    Answer:
    • A symbolic is a PROC placeholder; the value for the symbolic is supplied when the PROC is invoked, eg &symbol=value An override replaces the PROC's statement with another one; it substitutes for the entire statement

  22. What is RESTART? How is it invoked?
    Answer:
    • A RESTART is a JOB statement keyword It is used to restart the job at a specified s step rather than at the beginning

  23. Explain concatenating Data Sets ?
    Answer:
    • Data Sets can be grouped in a DD statement one after another, eg in a JOBLIB statement where the load module can exist in one of many Data Sets.

  24. What is the difference between specifying DISP=OLD and DISP=SHR for a Data Set?
    Answer:
    • A DISP=OLD denotes exclusive control of the Data Set; DISP=SHR means there is no exclusivity .

  25. What is MOD and when would you use it?
    Answer:
    • DISP=MOD is used when the Data Set can be extended, ie, you can add records at the end of an existing Data Set

  26. hat are the keywords associated with DCB?
    How can you specify DCB information?
    What is the OS precedence for obtaining that DCB information, ie where does the system look for it first?
    Answer:
    • The keywords associated with the DCB parameter are LRECL, RECFM, BLKSIZE and DSORG The DCB information can be supplied in the DD statement The system looks for DCB information in the program code first


  27. How do you designate a comment in JCL?
    Answer:
    • The comment statement is //* followed by the comments.

  28. What is the meaning of the EXEC statement keyword, COND? What is its syntax?
    Answer:
    • COND specifies the conditions for executing the subsequent job step The value after the COND= is compared to the return codes of the preceding steps and if the comparison is true, the step is bypassed (If this answer confuses you, welcome to the club - memorize it and don't ask questions!).

  29. What is the improvement to COND= in the latest version of MVS?
    Answer:
    • MVS now allows for an IF bracketed by an END IF around any job step to replace the COND= syntax Again, if the IF statement is true, the step is bypassed.

  30. What is the purpose of the PARM keyword in the EXEC statement?
    Answer:
    • The value after the PARM= specifies control information to be passed to the executing program of the job step

  31. What is the purpose and meaning of the REGION keyword and what JCL statement is it associated with?
    Answer:
    • REGION specifies the maximum CPU memory allocated for a particular job or job step If REGION is in the JOB card, it relates to the entire job;
      if in the EXEC statement, it relates to the job step .

  32. What is the purpose and meaning of the TIME keyword and what JCL statement is it associated with?
    Answer:
    • TIME specifies the maximum CPU time allocated for a particular job or job step If TIME is in the JOB card, it relates to the entire job;
      if in the EXEC statement, it relates to the job step.

  33. What is the meaning of data definition name (DD name) and Data Set name (DSN name) in the DD statement?
    Answer:
    • Data definition name is the eight character designation after the // of the DD statement It matches the internal name specified in the steps executing program In COBOL that's the name specified after the ASSIGN in the SELECT ASSIGN statement Data Set name is the operating system (MVS) name for the File.

  34. How is the keyword DUMMY used in JCL?
    Answer:
    • For an output File DUMMY specifies that the output is to be discarded For input it specifies that the File is empty.

  35. What does a mainframe compiler output in the object deck and what does the linkage editor do with it?
    Answer:
    • The compiler outputs the source code into the object deck in a form to be read by the linkage editor.
      The linkage editor combines the object dataset (object deck) from the compiler with machine language code for input/output and other tasks to create an executable load module.

  36. If a program executed attempts to divide a number by zero, do arithmetic on a field that does not contain numeric data, or has some other serious logic error, an abend will occur. What is the normal response that MVS would issue?
    Answer:
    • MVS would issue a "system completion code" that would indicate the nature of the problem, dump the program’s memory area, and flush the job from the system.
      The dump may be used for problem analysis.
      The dump is printed or stored in a dataset as specified in the //SYSUDUMP DD statement.
      If //SYSUDUMP is omitted, MVS will provide the completion code value, but not the dump.

  37. Where must load module(s) reside?
    Answer:
    • Load module(s) must reside on a Partitioned DataSet (PDS).

  38. What are some of the common linkage editor options and what do they mean?
    Answer:
    • Some of the commonly used linkage editor options are
      1. LIST - Lists the linkage editor control statements and is usually specified.
      Omit the parameter if no linking is declared.
      2. MAP - Produces a storage map showing the length and relative locations of all control sections.
      Default is NOMAP.
      3. XREF - Includes MAP plus a cross-reference table of the load module (MAP and XREF are mutually exclusive)
      4. NOCALL - Cancels the automatic library call mechanism.
      NOCALL is used for creating subroutine libraries so that the load module contains a single subroutine.
      CALL is the default.
      5. LET - Marks load modules as executable even if minor errors are found.
      NOLET is the default.
      6. PRINT - Allows the messages to be written to a SYSOUT DD statement and it is the default. NOPRINT suppresses the message.
      7. AMODE - Specifies whether the program uses 24 or 31- bit addressing. AMODE ANY specifies both 24 and 31 - bit addressing. AMODE 24 requires the program to run below the 16-meg line.
      The default is established by the compiler and is usually AMODE 24.
      8. RMODE - Indicates where the program can reside in virtual storage.
      RMODE ANY allows the program to reside above the 16-meg line and requires AMODE 31 or AMODE ANY.
      RMODE 24 requires the program to reside below the 16-meg line.
      The default is established by the compiler and is usually RMODE 24.
      9. TERM - Causes linkage editor diagnostic message to be written to a SYSTERM DD statement.
      NOTERM is the default.

  39. What causes the message ‘MODULE HAS BEEN MARKED NOT EXECUTABLE’?
    Answer:
    • An unresolved external reference often causes the message ‘MODULE HAS BEEN MARKED NOT EXECUTABLE’.
      Although the module is not executable, one may be able to recover by link-editing the control section causing the problem and replacing it in the load module.

  40. Why would the linkage editor add a member to a load library under the name ‘TEMPNAME’?
    Answer:
    • The linkage editor will add a member to the load library under the name of ‘TEMPNAME’ when a member of the same name already exist on the library and the disposition on the SYSLMOD statement was coded as DISP = MOD. This indicates a problem and need s to be resolved.

  41. What is an IEBGENER used for?
    Answer:
    • IEBGENER is a dataset utility used to copy sequential datasets, produce a partitioned dataset or member from a sequential dataset, produce an edited sequential or partitioned dataset, and reblock / change the logical record length of a dataset.

  42. What is an IEBCOPY used for?
    Answer:
    • IEBCOPY is a dataset utility used to copy one or more partitioned datasets or to merge partitioned datasets.
      A partitioned dataset that is copied to a sequential dataset is said to be unloaded. When one or more dataset created by an unload operation are used to recreate a partitioned dataset, it is called a load operation.
      Specific members of a partitioned or unloaded dataset can be selected for, or excluded from, a copy, unload or load process.

  43. What is an IEFBR14 used for?
    Answer:
    • IEFBR14 is used to delete datasets, find dataset, catalog, and uncatalog datasets.

  44. What is an IEHLIST used for?
    Answer:
    • IEHLIST is a system utility used to list entries in an OS CVOL, entries in the directory of one or more partitioned datasets, or entries in an indexed or nonindexed volume table of contents (VTOC).

  45. What is an IEHINIT used for?
    Answer:
    • IEHINIT is a system utility used to write an IBM volume label onto any number of magnetic tapes mounted on one or more tape units.
      Each volume label set created by this program contains a standard volume label, and 80-byte dummy header and a tapemark.

  46. What is an IEBPTPCH used for?
    Answer:
    • IEBPTPCH is a dataset utility used to print or punch all or selected, portions of a sequential or partitioned dataset.
      Records can be printed or punched to meet either standard specifications or user specification.

  47. What is an IEBUPDTE used for?
    Answer:
    • IEBUPDTE is a dataset utility used to create and update dataset libraries, modify existing partitioned members or sequential dataset and change the organization of dataset from sequential to partitioned or Vice Versa.

  48. What utility can be both used for VSAM and NON VSAM files?
    Answer:
    • IDCAMS utility is used to handle VSAM and NON VSAM files.

  49. Which parameter is required to copy the dataset using IEBCOPY?
    Answer:
    • The parameter "COPY" is required to indicate one or more IEBCOPY copy, unload or load operations. Any number of operations can follow a single COPY statement and any number of COPY statements can appear within a single job step.

  50. What is the parameter ‘GENERATE‘ used for on utility IEBGENER?
    Answer:
    • The parameter ‘GENERATE’ for the utility IEBGENER is used when output is to be partitioned, editing is to be performed or user routines are provided and / or label processing is specified.

  51. What is the parameter ‘MEMBER’ used for an utility IEBGENER?
    Answer:
    • The parameter ‘MEMBER’ for the utility IEBGENR is used when the output is to be partitioned. One member statement must be included for each member to be created by IEBGENER.
      ALL RECORD statements following a MEMBER statement pertain to the number named in that MEMBER statement.

  52. What is the parameter ‘RECORD’ used for on utility IEBGENER?
    Answer:
    • The parameter ‘RECORD’ for the utility IEBGENER is used to define a record group and to supply editing information.
      A record group consists of records that are to be processed identically.

  53. Which utility uses the ‘REPRO’ command and what function does it perform?
    Answer:
    • The utility IDCAMS uses the ‘REPRO’ command.
      The REPRO command copies sequential datasets.
      It performs much the same function as IEBGENER.

  54. How does one verify that a utility has ended normally?
    Answer:
    • To verify if a utility has ended normally, one must check the JCL for a return code of zero.
      Various utilities generate return codes of 0004, 0008, 0012 and higher, in increments of 4, when problems or unusual conditions have been encountered.

  55. When a utility ends with a nonzero return code, what must be done to resolve the problem?
    Answer:
    • When a utility ends with a nonzero return code, it is necessary to determine what caused the error.
      One may start by checking for error message generated by the utility and look them upon on a utility messages manual.
      Also, the JCL statements and / or control statements should be checked to make sure they were properly coded.
      Once the error has been identified, it should be fixed and the job resubmitted.

  56. What are the kinds of job control statements?
    Answer:
    • The JOB, EXEC and DD statement.

  57. What is the meaning of keyword in JCL? What is its opposite?
    Answer:
    • A keyword in a JCL statement may appear in different places and is recognized by its name, e.g. MSGCLASS in the JOB statement.
      The opposite is positional words, where their meaning is based on their position in the statement, e.g. in the DISP keyword the =(NEW, CATLG, DELETE) meanings are based on first, second and third position.

  58. Describe the JOB statement, its meaning, syntax and significant keywords.
    Answer:
    • The JOB statement is the first in a JCL stream. Its format is // jobname, keyword JOB, accounting information in brackets and keywords, MSGCLASS, MSGLEVEL, NOTIFIY, CLASS, etc.

  59. Describe the EXEC statement, its meaning, syntax and keywords.
    Answer:
    • The EXEC statement identifies the program to be executed via a PGM=program name keyword. Its format is //jobname EXEC PGM=program name. The PARM= keyword can be used to pass external values to the executing program.

  60. Describe the DD statement, its meaning, syntax and keywords.
    Answer:
    • The DD statement links the external dataset name (DSN) to the DDNAME coded within the executing program.
      It links the file names within the program code to the file names know to the MVS operating system.
      The syntax is // DDname DD DSN=dataset name.
      Other keywords after DSN are DISP, DCB, SPACE, etc.

  61. What is a PROC? What is the difference between an instream and a catalogued PROC?
    Answer:
    • PROC stands for procedure.
      It is 'canned' JCL invoked by a PROC statement.
      An instream PROC is presented within the JCL; a catalogued PROC is referenced from a proclib partitioned dataset.

  62. What is the difference between a symbolic and an override in executing a PROC?
    Answer:
    • A symbolic is a PROC placeholder; the value for the symbolic is supplied when the PROC is invoked, eg. &symbol=value.
      An override replaces the PROC's statement with another one; it substitutes for the entire statement.

  63. Explain concatenating datasets.
    Answer:
    • Datasets can be grouped in a DD statement one after another, eg. in a JOBLIB statement where the load module can exist in one of many datasets.

  64. What is the difference between specifying DISP=OLD and DISP=SHR for a dataset?
    Answer:
    • DISP=OLD denotes exclusive control of the dataset; DISP=SHR means there is no exclusivity.

  65. What is MOD and when would you use it?
    Answer:
    • DISP=MOD is used when the dataset can be extended, ie, you can add records at the end of an existing dataset.

  66. What are the keywords associated with DCB?
    How can you specify DCB information?
    What is the OS precedence for obtaining that DCB information, ie. where does the system look for it first?
    Answer:
    • The keywords associated with the DCB parameter are LRECL, RECFM, BLKSIZE and DSORG.
      The DCB information can be supplied in the DD statement.
      The sysem looks for DCB information in the program code first.

  67. How do you designate a comment in JCL?
    Answer:
    • The comment statement is //* followed by the comments.

  68. What is the meaning of the EXEC statement keyword, COND?
    What is its syntax?
    Answer:
    • COND specifies the conditions for executing the subsequent job step.
      The value after the COND= is compared to the return codes of the preceding steps and if the comparison is true, the step is bypassed.

  69. What is the improvement to COND= in the latest version of MVS?
    Answer:
    • MVS now allows for an IF bracketed by an END IF around any job step to replace the COND= syntax. Again, if the IF statement is true, the step is bypassed.

  70. What is the purpose of the PARM keyword in the EXEC statement?
    Answer:
    • The value after the PARM= specifies control information to be passed to the executing program of the job step.

  71. What is the purpose and meaning of the REGION keyword and what JCL statement is it associated with?
    Answer:
    • REGION specifies the maximum CPU memory allocated for a particular job or job step.
      If REGION is in the JOB card, it relates to the entire job; if in the EXEC statement, it relates to the job step.

  72. What is the purpose and meaning of the TIME keyword and what JCL statement is it associated with?
    Answer:
    • TIME specifies the maximum CPU time allocated for a particular job or job step.
      If TIME is in the JOB card, it relates to the entire job; if in the EXEC statement, it relates to the job step.

  73. What is the meaning of data definition name (ddname) and dataset name (dsname) in the DD statement?
    Answer:
    • Data definition name is the eight character designation after the // of the DD statement.
      It matches the internal name specified in the steps executing program.
      In COBOL that's the name specified after the ASSIGN in the SELECT ASSIGN statement.
      Dataset name is the operating system (MVS) name for the file.

  74. How is the keyword DUMMY used in JCL?
    Answer:
    • For an output file DUMMY specifies that the output is to be discarded. For input it specifies that the file is empty.

  75. What does the keyword DCB mean and what are some of the keywords associated with it?
    Answer:
    • DCB stands for data control block; it is a keyword for the DD statement used to describe datasets.
      Keywords associated with it are BLKSIZE, DEN, LRECL and RECFM.

  76. What is the difference between BLKSIZE and LRECL?
    Answer:
    • BLKSIZE specifies the number of bytes.

  77. What is the purpose of the Data Definition (DD) Statement?
    Answer:
    • Data Definition statements describe each dataset (a file on a direct-access storage device, tape or printed output) and request the allocation of I/O devices.

  78. Describe what the DISP parameter does?
    Answer:
    • The DISP parameter describes the current status of the dataset and directs the system
      on the disposition of the dataset either at the end of the job or when the step abnormally terminates.
      DISP always required unless the dataset is created and deleted in the same step

  79. How many subparameters does the DISP parameter consist of and what is the meaning of each?
    Answer:
    • The DISP parameter consists of three subparameters: start-status, end-status-normal and end-status-abend.
      Start-status indicates the status of a dataset at the beginning of the job step.
      End-status-normal tells MVS what needs to be done with the dataset when the job step ends.
      End-status-abend indicates the desired disposition of the dataset if the job step abend.
      It is also known as the conditional disposition.


  80. What are the meanings of the parameters used (within) the DISP parameter at the beginning of the job step?
    Answer:
    • The status NEW, MOD, OLD, or SHR is the status of the dataset at the beginning of the step. If the dataset is NEW, the system creates a dataset label; if it is OLD, the system locates the dataset.
      The system gives a program exclusive control of a database except when SHR is used.

  81. What is the abnormal "disposition" of the DISP parameter?
    Answer:
    • The abnormal disposition would be effected only if the step abnormally terminates.
      They are the same normal disposition as except that PASS is not allowed KEEP, CATLG, UNCATLG and DELETE are all permitted.

  82. When should DISP=SHR be used?
    Answer:
    • DISP=SHR must be used only when it is necessary to share the dataset.
      SHR should b used for input dataset.

  83. When should DISP=MOD be used?
    Answer:
    • DISP=MOD is used to either to extend an existing sequential dataset or to create a dataset if it does not exist.
      If the dataset exists the records are appended at the end of the existing dataset.
      If the dataset does not exist the system treats mod as if it were NEW, provided that the volume parameter has not been used.
      If the volume parameter is used, the system terminates the job and does not create the new dataset.
      MOD can be used to add to the dataset that extends to several volumes.
      Always specify a disposition of CTLG with the MOD for cataloged dataset, even if they are already cataloged, so that any additional volume serial number will be recorded in the catalog.

  84. When should DISP = OLD be used?
    Answer:
    • DISP = OLD should be used for an existing dataset.
      It can be used with an input dataset to read or an output dataset to rewrite.
      The step which uses DISP=OLD will have exclusive control of the dataset.
      If an OLD dataset is cataloged, the DSN parameter is usually the only other parameter needed.
      If an LD dataset is not cataloged, UNIT and VOL parameter are required.

  85. When should DISP = NEW be used?
    Answer:
    • DISP=NEW should be used when it is desired to create a dew dataset.
      The UNIT parameter is usually required for dataset on direct access volumes.

  86. How is a dataset passed from one step to another?
    Answer:
    • A dataset is passed from one step to another based on what is coded on the DISP parameter.
      The dataset can only be passed to subsequent steps if PASS is used on the disposition parameter.

  87. If a dataset is passed and the subsequent steps do not use it, what happen to the dataset at the end of the job?
    Answer:
    • If a dataset is passed to subsequent steps and it is not used, at the end of the job the dataset is deleted, since DELETE is assumed for all NEW datasets, temporary or non temporary.

  88. What is the default for the disposition parameter if it’s not coded on the DD statement for a dataset?
    Answer:
    • The default disposition used on a dataset, which was coded without a disposition parameter, is NEW.
      The disposition of NEW implies exclusive control of the dataset.

  89. How are dataset concatenated?
    Answer:
    • Datasets are concatenated by writing a normal DD statement for the first dataset and the adding a DD statement without a DDNAME for each dataset to be concatenated in the order they are to be read.
      The following is an example of three datasets concatenated:
      //INSMP DD DSN=JAN.DATA, DISP=SHR
      // DD DSN=FEB.DATA, DISP=SHR
      // DD DSN=MAR.DATA, DISP=SHR

  90. Can datasets of a different record length (LRECL) be concatenated?
    Answer:
    • Datasets with different LRECLs can be concatenated as long as the dataset with the largest block size appears first.

  91. Can Partitioned Datasets (PDSs) be concatenated?
    Answer:
    • Partitioned Datasets can be concatenated.
      This is often done for program libraries so that the system can search several libraries fro a member.

  92. What is a Data Control Block (DCB)?
    Answer:
    • The Data Control Block is a table of data, in storage, that describes each dataset used by the program.

  93. What are two different places from which DCB information can be obtained and in what order?
    Answer:
    • Data information can be obtained from three places in the following order:
      The data control block, from application program, is used first.
      Information supplied on the DD statement is used second.
      Dataset label information for the DCB is used third.

  94. What is the purpose of using a dataset referback?
    Answer:
    • A dataset referback is used to copy a dataset name from a prior job step.

  95. What are the disadvantages of using a dataset referback?
    Answer:
    • The disadvantages of using dataset referback is that they tend to make JCL more difficult to maintain because close attention, scrutiny and manual examination of preceding steps is needed to understand what a given job-stream is doing. They also complicate the restart of a job if a failure or interruption occurs.

  96. Under which circumstances is the disposition parameter not performed?
    Answer:
    • Disposition is not performed under the following circumstances:
      The step does not start because of JCL errors.
      The step is bypassed because of the COND parameter in the JOB or EXEC statement.
      The step abnormally terminates because it could not find enough space to satisfy the request.
      DUMMY or DSN=NULLFILE is coded on the DD statement.

  97. What is an Operation Exception error?
    Answer:
    • An Operation exception error indicates that an operation code is not assigned or the assigned operations not available on a particular computer model.
      The machine does not recognize the instruction or operation used.
      A possible reasons a subscript error.
      This error could also be caused by an attempt to read a file that was not opened, a misspelled DD statement.
      The system completion code is 0C1.

  98. What is a Protection exception error?
    Answer:
    • A protection exception error occurs when the program is attempting to access a memory address that is not within the memory area that the program is authorized to use.
      Some of the causes may be a subscript or index that is not initialized or has taken on a value outside the bounds of the table with which it is associated, an attempt to read an open end file, or an incorrect or missing DD statement.
      The System completion code is 0C4.

  99. What is an addressing exception error?
    Answer:
    • An addressing exception error occurs when a program is attempting to access a memory location, which is outside the bounds of a available real storage on the machine.
      This can be caused by a dataset not being open end at the time an I/O was directed to it, an attempt to close a dataset a second time, incorrectly called module parameters or coding, improper exit from a performed paragraph, or uninitialized subscript or index.
      The system completion code is 0C5.

  100. What is a data exception?
    Answer:
    • A data exception error indicates an attempt to perform an arithmetic operation on non-numeric data.
      It can also occur from incorrect input data to a program that is not performing sufficient numeric testing on it before attempting arithmetic.
      The system completion code is 0C7.

  101. What return code is issued when a operator cancels a job?
    Answer:
    • There are two return codes, which can be produced when the operator cancels a job.
      They are 122 and 222.
      A 122 indicates the operator cancelled the job and requested a dump.
      A 222 indicates the operator has cancelled the job and has not requested a dump.
      It is important to ask the operator why the job was canceled.
      Some of the reasons this may occur are: the program appeared to be stalled in a wait state; or the program was in an apparent loop.

  102. What return code is issued if a job step exceeded the time limit?
    Answer:
    • The system will issue a system code of 322 when a job or job step has exceeded the time limit.
      If the time parameter was used on the JOB or EXEC statement.
      If the time parameter was not used, then it is important to check the program possible errors.

  103. When the system cannot find enough virtual storage, which system abend is issued?
    Answer:
    • When the system cannot find enough virtual storage during a GETMAIN macroinstruction, it generates a system abend of 804 or 80A.
      Check for program errors that incorrectly modify the storage request.
      If the REGION parameter has been used, either on the JOB or EXEC statement, it may need to be increased to satisfy the request.

  104. Which system completion code is issued when a program module cannot be found?
    Answer:
    • A system completion code of 806 will be issued when a program module cannot be found. Some of the causes may be missing the STEPLIB statement from the step or missing the JOBLIB statement from the job stream.
      Most likely the program name was misspelled on the EXEC statement or in a source code CALL.

  105. What are some of the abend generated when not enough disk space is available and what do they mean?
    Answer:
    • Some of the abend generated due to a lack of available disk space are:
      B37 - Disk volume out of space, cannot write output. The system gave all the primary space and as much secondary space as it could.
      D37 - Primary disk space was exceeded and either no secondary space allocation was specified or it was insufficient.
      One should increase the primary space as well as provide adequate secondary allocation was specified or it was insufficient.
      One should increase the primary space as well as provide adequate secondary space allocation to eliminate this error.
      E37 - There was insufficient space on the volume.
      One way to solve this problem is to specify more volumes on the JCL.


  106. Which abend is issued when the system cannot find a member on a portioned dataset?
    Answer:
    • An S013-18 abend occurs when the specified member on the JCL, is not found on the indicated PDS (Partioned Dataset).
      Determine if the member is spelled correctly on your JCL.
      If it is not, then fix member name and resubmit job.
      If it is correct, then determine why it is not on the PDS, take the necessary steps to place it on the PDS, and resubmit the job.

  107. What normally causes an S013-20 abend?
    Answer:
    • An S013-20 is normally caused by the block size not being a multiple of the record length or being incorrect for variable-length records.
      Divide your BLKSIZE by the record length to make sure it is a multiple of the BLKSIZE if not, correct it and resubmit job. For variable-length records, it is necessary to have your BLKSIZE be at least 4 bytes greater than your record length.

  108. What can be done to eliminate a ‘NOT CATLG 2’ for a particular dataset?
    Answer:
    • To eliminate a ‘NOT CATLG 2’ message, one may take one of the following options.
      Add a step to the beginning of the JOB, which creates the dataset to first purge the dataset.
      One may to use utility IEFBR14 to perform this task.
      Setup a job to purge the dataset and run it before the job which creates it purges the dataset before running the job, which creates it.

  109. If a job step is in a wait state for 30 minutes or more with no activity, which abend does one receive?
    Answer:
    • If a job step is in a wait for 30 minutes or more with no activity, the job abend with an s522 indicating the time was exceeded for the wait state.
      This type of cancellation is unusual and is often caused by a program error or unavailable datasets / resources.

  110. A system completion code of 813-04 is generated when a dataset name and volume serial number for a tape is not consistent with the information contained in the tape dataset label.
    What can be done to fix this problem?
    Answer:
    • When a system completion code of 813-04 is received, one must check the spelling of the dataset name in the JCL and the volume serial number specified.
      If possible, dump the dataset label to see the actual dataset name on the tape.
      Once the problem has been identified, correct it and resubmit the job.

  111. How does one fix a ‘PROCEDURE NOT FOUND ‘ ERROR?
    Answer:
    • If one receives a ‘procedure not found’ message, it indicates that it could not find the procedure on the procedure library specified on the JCL.
      Check the spelling of the procedure library specified on the JCL.
      Check the spelling of the procedure name on the EXEC statement to make sure it is correct.
      If it is not correct, fix it and resubmit the job.
      If the JCL is correct, then check to make sure the procedure has been cataloged into the procedure library. If not, have it cataloged and resubmit the job./li>

  112. What is model dataset label (Model DSCB)?
    Answer:
    • A model dataset label is a pattern for the dataset label created for any dataset named as part of the GDG group.
      The system needs an existing dataset to serve as a model to supply the DCB parameters for the generation data group one wish to create.
      The model dataset label must be cataloged.
      The model DSCB name is placed on the DCB parameter on the DD statement that creates the generation data group.

  113. What is the advantage in using generation data groups?
    Answer:
    • The advantage in using the generation data groups is that all datasets have the name, and the system keeps track of adding and deleting successive generations.
      The JCL does not need to be changed between runs.

  114. How are different generations specified?
    Answer:
    • Different generations are specified by providing the dataset name and generation number for each GDG desired.

  115. What does the keyword DCB mean and what are some of the keywords ?
    Answer:
    • Associated IT DCB stands for data control block; it is a keyword for the DD statement used to describe Data Sets Keywords associated with it are BLKSIZE, DEN, LRECL and RECFM.

  116. What is the difference between BLKSIZE and LRECL?
    Answer:
    • BLKSIZE specifies the number of bytes

  117. What are all the JCL statements used in JCL? &
    What are the JCL statements you have coded so far?
    Answer:
    • //JOB marks the beginning of a job, contains job information
      //EXEC marks the beginning of a job step, identifies program, cataloged procedure to be executed
      //DD (data definition), identifies a data set and its attributes
      //OUTPUT (specifies processing options for system output(sysout) data sets)
      //(null) (end of job) /* (end of data placed in input stream)
      //PROC (procedure)
      //PEND (procedure end)
      //* (comment)

  118. What is the difference between the positional parameters & keyword parameters, give examples where they are used?
    Answer:
    • Positional Parameters are:
      a) Sequence predetermined
      b) Parameters separated by commas
      c) Omitted parameters must be indicated by two consecutive commas.
      d) Installation dependent EX:
      //JOBNAME JOB (DIS, TRG.TRGGLO.NL.BATCH), ‘PGM1)
      //SETP01 EXEC PGM=MYPROG Keyword parameters are Predetermined words are referred to as key word Parameters.
      Any sequence is permitted, separated by commas.
      Follow positional parameters.
      Format is = EX:
      //JOBNAME JOB (DIS, TRG, N1, BATCH), MSGLEVEL=(1,1),
      // MSGCLASS=X, NOTIFY=QZ6P03T, TYPRUN=SCAN

  119. What are the operands coded in a JOB statement?
    Answer:
    • All the Positional and Key word parameters in the JOB statement.
      Accounting Information, MSGCLASS, CLASS, MSGLEVEL, NOTIFY, USERID, PASSWD, COND, REGION, RESTART.

  120. How many characters can be coded for a job name?
    What were you coding as a job name?
    Answer:
    • 8 Characters, Usually JOBNAME will be like User-id + 1 Char

  121. What is the difference between the Comment statement and the Comments?How they were coded in a JCL?
    Answer:
    • //* is the comment statement and it starts from column number 1 Anything that is written after 71st column is taken as a comment.

  122. How will you check the syntax of the JOB without executing it?
    Answer:
    • Can use JSCAN.Code TYPRUN=SCAN and submit the JCL for syntactical errors.

  123. What are all the parameters needed in a DD statement to create a data set thru JCL?
    How a Partitioned data set is created thru JCL?
    Answer:
    • DISP (Disposition): The DISP parameter describes the status of a data set to the system, what is to be done with the data set at the end of the job step, and what to do with the data set if the step terminates abnormally DCB (Data control black) :
      DCB=(LRECL=NN, BLKZIZE=YY,RECFM=Z,DSORG=MM) Z can be F, FB, V, VB MM Can be PS (physical sequence) PO (partitioned)
      DSN (Data set name) : UNIT : Identifies device of data set Space :

  124. How is the Catalog procedure called from a JCL, if it is lying in your own data sets ?
    Answer:
    • STEP1 EXEC PROC=PROC1 The library in which PROC1 is present should be mentioned in PROCLIB.

  125. What is the difference between the In-stream Procedure & Catalog Procedure?
    Answer:
    • In-stream Procedures begin with a PROC stmt and must be terminated by a PEND stmt.
      (PEND can also be coded for a cataloged Procedure, but it isn’t required)
      The PENC stmt coded as :
      //Option-name PEND comments The In-stream Procedure is placed following the JOB statement of the JOB.
      Up to 15 In-stream Procedures can be included in a single job.
      Each In-stream Procedure may be invoked several times with in the job.
      //QZ5P13TD JOB (18636), ‘HARISH’, CLASS=A
      //RUN PROC In-stream procedure starts from here
      //GO EXEC PGM=ONE
      //SYSOUT DD SYSOUT=A
      //PEND //STEP1 EXEC RUN procedure is used like .. A set of JCL stmt’s consisting of a PROC stmt and one or more EXEC and DD stmt (steps), which is placed in a procedure library.
      It executed by an EXEC (procedure) stmt in another data set (called the execution JCL).
      Advantages : Saves time, prevents errors.

  126. What is the Symbolic parameter?
    What for it is needed? Where it is most commonly used?
    Answer:
    • Any parameter that can vary with each execution is a good candidate for definition of a symbolic parameter.
      Use of symbolic parameter make the procedure more flexible.
      This prevents the procedure to be modified each and every time a small and recurring change is needed at a place.
      //DD1 DD DSNAME=&SYSUID..PROFILE,DISP=(NEW,KEEP),

  127. Can you explain the DISP Parameter in detail?
    What are the default DISP Parameters?
    Answer:
    • a. Current Status NEW - Default OLD - exclusive SHR - Simultaneously MOD -
      b. Normal Disposition KEEP - Default if DISP = SHR, OLD, MOD DELETE - Default if DISP = NEW CATLG
      c. Abnormal Termination - same as Normal Disposition

  128. What is the difference between the Refer-back & Overriding parameters?
    How are they coded in a JCL?
    Answer:
    • Refer back option is a reference to an earlier DD statement in the job or in cataloged or in in-stream procedure called by a job step.
      KEYWORD = reference.
      //JOB1 JOB ..
      //STEPA EXEC ..
      //DD1 DD DSN=REPORT ...
      // DD4 DD DSN=*.DD1
      //JOB2 JOB ..
      //SETP1 EXEC ..
      //DDA DD DSN=D578.POL.PUBS01 ..
      //STEP2 EXEC ..
      //DDB DD DSN=*.STEP1.DDA Over riding parameters.
      In an In-stream or Cataloged procedures, the DD names mentioned in the JCL will override the ones in the procedures.
      //JOB1 JOB ..
      //STEPA EXEC PROC1
      //PS1.DD1 DD DSN=SAMPLE.PUB,DISP=SHR
      //PS2.DD2 DD DSN=SAMPLE.PUB1,DISP=SHR Proc PROC1 contains...
      //PS1 EXEC PGM=ABC
      //*
      //DD1 DD DSN=DUMMY
      //SYSOUT DD SYSOUT=*
      // //PS2 EXEC PGM=DEF
      //*
      //DD1 DD DSN=SAMP.PROG.DATA,DISP=SHR
      //DD2 DD DSN=SAMP.PROG.DATA1,DISP=SHR
      // SYSOUT DD SYSOUT=*

  129. How do you pass parameters to a program coded in an EXEC statement?
    Answer:
    • Through PARM Clause coded on the EXEC statement.
      The parameters have to be defined in the Linkage Section of COBOL program.

  130. What is the E37 error?
    How will you resolve it with out losing a single byte of data? Answer:
    • (Hint: This Error comes when you save the data set after editing it) Insufficient Space.

  131. What is SOC7 abend ?
    How do you resolve it?
    Answer:
    • Data Exception.
      Eliminate the bad data by debugging the program.

  132. What is primary allocation for a Data Set?
    Answer:
    • The space allocated when the Data Set is first created.

  133. What is the difference between primary and secondary allocations for a Data Set?
    Answer:
    • Secondary allocation is done when more space is required than what has already been allocated

  134. How many extents are possible for a Sequential File ?
    For a VSAM File ?
    Answer:
    • 16 extents on a volume for a Sequential File and 123 for a VSAM File

  135. What does a disposition of (NEW,CATLG,DELETE) mean?
    Answer:
    • That this is a new Data Set and needs to be allocated, to CATLG the Data Set if the step is successful and to delete the Data Set if the step abends.

  136. What does a disposition of (NEW,CATLG,KEEP) mean?
    Answer:
    • That this is a new Data Set and needs to be allocated, to CATLG the Data Set if the step is successful and to KEEP but not CATLG the Data Set if the step abends Thus if the step abends, the Data Set would not be catalogued and we would need to supply the Vol ser the next time we refer to it

  137. How do you access a File that had a disposition of KEEP?
    Answer:
    • Need to supply volume serial no VOL=SER=xxxx MOD,DELETE

  138. What does a disposition of (,DELETE) mean ?
    Answer:
    • The MOD will cause the Data Set to be created (if it does not exist), and then the two DELETE will cause the Data Set to be deleted whether the step abends or not This disposition is used to clear out a Data Set at the beginning of a job

  139. What is the DD statement for a output File?
    Answer:
    • Unless allocated earlier, will have the following parameters: DISP=(NEW,CATLG,DELETE), UNIT , SPACE & DCB

  140. What do you do if you do not want to keep all the space allocated to a Data Set?
    Answer:
    • Specify the parameter RLSE ( release ) in the SPACE. Eg: SPACE=(CYL,(50,50),RLSE)

  141. What is DISP=(NEW,PASS,DELETE)?
    Answer:
    • This is a new File and create it, if the step terminates normally, pass it to the subsequent steps and if step abends, delete it This Data Set will not exist beyond the JCL

  142. How do you create a temporary Data Set?
    Where will you use them?
    Answer:
    • Temporary Data Sets can be created either by not specifying any DSNAME or by specifying the temporary File indicator as in DSN=&&TEMP We use them to carry the output of one step to another step in the same job The Data Set will not be retained once the job completes

  143. How do you restart a proc from a particular step?
    Answer:
    • In job card, specify RESTART=proc step step name where procstep = name of the jcl step that invoked the proc and stepname = name of the proc step where you want execution to start

  144. How do you skip a particular step in a proc/JOB?
    Answer:
    • Can use either condition codes or use the jcl control statement IF (only in ESA JCL)

  145. A PROC has five steps Step 3 has a condition code How can you override/nullify this condition code?
    Answer:
    • Provide the override on the EXEC stmt in the JCL as follows: //STEP001 EXEC procname,CONDstepname=value All parameters on an EXEC stmt in the proc such as COND, PARM have to be overridden like this

  146. How do you override a specific DDNAME/SYSIN in PROC from a JCL?
    Answer:
    • // DSN=

  147. What is NOTCAT 2?
    Answer:
    • This is an MVS message indicating that a duplicate catalog entry exists Eg, if you already have a Data Set with dsn = 'xxxxyyyy' and u try to create one with disp new,catlg, you would get this error the program open and write would go through and at the end of the step the system would try to put it in the system catalog at this point since an entry already exists the catlg would fail and give this message you can fix the problem by deleting/uncataloging the first data set and going to the volume where the new Data Set exists(this info is in the msglog of the job) and cataloging it

  148. What is the purpose of the JOB statement?
    Answer:
    • The purpose of the JOB statement is to inform the operating system of the start of a job, give necessary accounting information and supply run parameters.
      Each job must begin with a single JOB statement.

  149. How does one identify a job to the Operating system?
    Answer:
    • A job is identified to the system by the use of jobname.
      Jobnames can range from one to eight alphabetic characters.
      The first character must begin in column 3 and be alphabetic (A-Z).
      Jobs should be given unique names since duplicate jobnames will not execute until any job having the same jobname completes execution.

  150. What does the accounting information consist of?
    Answer:
    • Accounting information consists of the account number of which the job is charged and any additional information established by the installation.

  151. What does the parameter CLASS in the JOB statement mean?
    Answer:
    • Parameter CLASS specifies the job class.
      There are 36 possible job classes (A-Z, 0-9).
      Installations usually attempt to establish job classes that achieve a balance between I/O bound and CPU-bound jobs.
      Job classes also determine the overall priority of a job, along with the PRTY parameter PRTY may be coded to give special priority to a job. The operator may also set it.

  152. What is parameter MSGCLASS in the JOB statement used for?
    Answer:
    • The MSGCLASS parameter is used to specify the job scheduler message output class.
      The output classis (A-Z,0-9).
      Job scheduler message include all messages not printed by the actual job steps being executed.
      Some of these are: JCL statements and error messages, device allocations, dataset disposition and accounting information.

  153. What does parameter MSGLEVEL on the JOB statement mean and what is the advantage of using it.
    Answer:
    • MSGLEVEL indicates whether or not one wishes to print the JCL statements and allocation messages.
      The MSGLEVEL parameter can save paper. After a job is debugged, there may be no need to print all the JCL and allocation messages each time it runs.
      To reduce printing to a minimum one may wish to code MSGLEVEL = (0,0)

  154. Which parameter allows one to run a syntax check n the JCL without executing it?
    Answer:
    • TYPRUN = SCAN parameter is used to check the JCL for syntax errors and suppress the execution of the job.
      This checking does not include checking for duplicate datasets on volumes, insufficient space or region size for job steps.

  155. What does parameter TYPRUN = HOLD mean?
    Answer:
    • The parameter TYPRUN = HOLD holds a job in the input queue for later execution.
      The job is held until the operator releases it.
      TYPRUN=HOLD is useful for when one job must not run until another job completes.
      Operator intervention is required to release the job.

  156. What is the purpose of the EXEC statement?
    Answer:
    • The purpose of the EXEC statement is to name a program or procedure to be executed.
      It follows the job statement.
      A job or cataloged procedure can contain several EXEC statements.
      A job may have up to 255 EXEC statements.

  157. What is the stepname on the EXEC statement used for and is it a required parameter?
    Answer:
    • Stepname on the EXEC statement is used to name the job step.
      It is required if subsequent JCL statements refer to it or if one wishes to restart the job from the step; otherwise it is optional.
      Stepname are recommended and should have unique names.
      The names must begin in column 3 with an alphabetic or national character (A-Z, @$#)

  158. Which parameter is used to name the program in the exec statement?
    Answer:
    • The parameter ‘PGM=’ is used to name a program or utility to be executed.
      For example, to code a program named ‘FIRST’, one would code ‘PGM=FIRST’.
      For utility named ‘IEBGENER’, it would be coded as ‘PGM=IEBGENER’.

  159. What are the commonly used parameters on the EXEC statement and what do you they mean?
    Answer:
    • The most commonly used parameters on the EXEC statement are: COND, PARM, REGION, and TIME.
      They stands for:
      1. COND - Specifies conditions to execute subsequent job steps if the previous step(s) fail.
      2. PARM - Passes parameter to the job steps.
      3. REGION - Specifies the region size to allocate for the job / job step.
      4. TIME - Imposes a time limit on the job or job step.

  160. What is the default for the TIME parameter if it is not coded on the EXEC statement?
    Answer:
    • If the TIME parameter is omitted from the EXEC statement, the default is 30 minutes of the CPU time.

  161. What is the difference between the JOBLIB & STEPLIB statements?
    Answer:
    • The JOBLIB statement is placed after the JOB statement and is effective for all job steps.
      It cannot be placed in the catalogued procedure.
      The STEPLIB statement is placed after the EXEC statement and is effective for that job step only.
      Unlike JOBLIB statement, the STEPLIB cannot be placed in the catalogued procedure.

  162. What can be done to resolve a JCL error that reads ‘DATASET NOT FOUND’?
    Answer:
    • Some of the actions one can take to resolve a JCL error ‘DATASET NOT FOUND’ are:
      1. One must examine the job log and the allocation/deallocation report and identify the step and DDname involved.
      2. Determine whether or not the dataset name does indeed exist on the system.
      3. Check the JCL to make sure the dataset name is spelled correctly.
      4. If the job has more than one step and the ABEND is not on the first step, check to see if the dataset on the previous step was deleted.
      5. Fix the problem and resubmit the job.

  163. Does a ‘DD STATEMENT MISSING’ message normally ABEND the job?
    Answer:
    • A DD statement missing message normally does not ABEND the job, but if not fixed it could later cause problems when least expected.
      It is advisable to determine why this message was generated and take action to rectify the problem.

  164. Parameters COND, REGION, AND TIME can be coded on both the JOB and the EXEC statements.
    What are the differences between using them on the JOB versus the EXEC statements, and in which statements are they commonly used?
    Answer:
    • Parameters COND, REGION, AND TIME coded on the JOB statement will be in effect for the entire job.
      When used on the EXEC statement, they will be in effect for that job step only.
      The COND parameter is normally used on the EXEC statement.
      The REGION parameter is not normally used unless a particular program requires a lot of storage and it is necessary to override the installation’s REGION Default.
      If the REGION parameter is used on the both JOB
      and EXEC statements, then the REGION parameter from the JOB statement will be in effect.
      The TIME parameter is most often used on the JOB statement.

  165. Explain how the virtual storage works in MVS/SP.
    Answer:
    • MVS/SP stands for Multiple Virtual Storage / System Program.
      A major architectural component of virtual storage MVS is virtual storage.
      With virtual storage, storage addresses of the application program are independent of the addresses of the computers central storage.
      A Hardware feature, paging supervisor, transfers the users virtual storage addresses to the computers central storage addresses during execution.
      With Virtual Storage, a program needs to occupy only a relatively small amount of central storage.
      This allows programs to be run whose size exceeds the central storage available on the computer.

  166. What are some of the main features of MVS/XA?
    Answer:
    • MVS/XA stands for Multiple Virtual Storage / Extended Architecture.
      MVS/XA uses 32 bits of addressing.
      This gives an address space of approximately 2 billion bytes.
      The extended architecture also consists of more sophisticated I/O channels for faster I/O.
      Also, a separate version of OS is required.
      One of the difference is that a program for MVS/XA can go up to 2 billion bytes.
      Programs running under MVS/SP can go up to 16 million bytes.

  167. What are the "basic architecture" features of MVS/ESA?
    Answer:
    • MVS/ESA stands for Multiple Virtual Storage / Enterprises System Architecture.
      MVS/ESA permits an application to have multiple 2-gigabyte address spaces.
      This allows huge applications to be segregated into functional parts.
      For ESA, the first address space is called the application space and programs can execute in it.
      The other address space are called dataspaces and they contain only data.
      MVS/ESA also has the facility for hyperspaces, which allows temporary data to be stored or retrieved in 4-kbyte blocks under program control.
      Maximum address space is up to 2 trillion bytes in multiple of 2-billion-byte address spaces.

  168. What is the meaning of the "line"?
    Answer:
    • The "line" indicates the maximum address space that is available for the MVS system.
      For MVS/SP it is 16 million bytes, for MVS/XA it is up to 2 billion bytes, and MVS/ESA is up to 2 trillion bytes in multiple of 2-billion-byte address spaces.

  169. When would a program run "below the line"?
    Answer:
    • A program would run "below the line" if it did not exceed the address space available.

  170. When would a program run "above the line"?
    Answer:
    • A program would run "above the line" if it required more than 16 megs or if it is competing with other programs which are using the same address space.
      Special Parameters must be set for compilation and linkage editing in order for a program to run above the 16-meg line.

  171. How are in-stream procedures (procs) built?
    Answer:
    • In-stream procedures are built by coding a set of statements and placing them after the JOB statement and before the EXEC statement.
      In-stream procedures begin with a PROC statement and end with a PEND statement.
      Up to 15 in-stream procedures can be included in a single job.
      Each in-stream procedures may be invoked several times within the job.
      In-stream procedures can use symbolic parameters in the same way as catalogued procedures.

  172. What is the difference between an in-stream procedure and a catalogued procedure?
    Answer:
    • An In-stream procedure is basically same as a catalogued procedure.
      The difference is that to execute an in-stream procedure one places it after the JOB statement and before the EXEC statement and must end it with a PEND statement.
      A catalogued procedure is catalogued on a procedure library and is called by specifying the procedure name on the EXEC statement.
      An in-stream procedure is useful to test the procedure before making it a catalogued procedure.

  173. Name some of the JCL statements that are not allowed in the procs.
    Answer:
    • Some of the JCL statements that are not allowed in the procs are:
      1. JOB Delimiter (/*) or Null (//) statements
      2. JOBLIB or JOBCAT DD statements
      3. DD * or DATA statements
      4. Any JES2 or JES3 control statements

  174. What parameters are good candidates to make symbolic parameters?
    Answer:
    • Any parameter, sub parameter, or value in a procedure that may vary each time the procedure is called is a good candidate to be coded as a symbolic parameter.

  175. Which type of override parameter requires that one know the parameters that can be overridden?
    Answer:
    • Regular parameters require that one know the parameters that can be overridden, such as step names within the procedure, the DDnames of the statements overridden, and the order of the DD statements.

  176. How is a symbolic parameter coded?
    Answer:
    • A symbolic parameter is preceded by an ampersand (&) and followed by a name (&FIRST).
      The first character must be alphabetic.
      Symbolic parameters can be coded only in the operand field of the JCL statements; they cannot appear in the name or operation field of the JCL statements.
      If more than one value is assigned to the symbolic parameters on a PROC or EXEC statement, only the first one is used.
      Symbolic parameters may be coded in any order on the PROC or EXEC statement.

  177. How are values assigned to symbolic parameter?
    Answer:
    • Values can be assigned to symbolic parameter on the PROC statement, on the EXEC statement, or on a SET command.
      Values containing special characters other than blank must be enclosed in apostrophes.
      The Values assigned to symbolic parameter can be of any length, but it cannot be continued onto another line.

  178. Can symbolic parameter concatenated?
    Answer:
    • Symbolic parameter can be concatenated with other symbolic parameters, regular parameter or with the portions of the regular parameters as follows
      Symbolic/symbolic - PARM-&FIRST&LAST
      Symbolic/regular - SPACE-&SPACES
      Symbolic/portion - SPACE-CTRK, &PRIMARY

  179. What are some of the rules involved in overriding parameters on the EXEC statements in a procedure?
    Answer:
    • To override EXEC parameter one should follow these rules
      1. A PGM parameter cannot be overridden.
      2. The parameter for each step do not need to be coded in the same order as they appear on the procedure EXEC statement
      3. To add or override a parameter on an EXEC statement, code it as follows parameter.procstepname=value.
      4. If a parameter which does not exist is coded on the EXEC statement, the parameter will be added
      5. All parameters in each step must be coded in order: the first step must be coded first, second step second, third step third, etc.

  180. What are some of the rules involved in overriding DD statements in procs?
    Answer:
    • The following rules apply when overriding a DD statement:
      1. DD statement overrides precede the DDname with procstepname
      2. The JCL parameter is replaced unless it does not exist on the original statement, in which case it is added.
      For the DCB each sub parameter can be overridden
      3. DD statement overrides should carry DDnames that already exist in the step they are to effect
      4. DD statement overrides must be coded preceding any added DD statement for the proc step
      5. DD override statement must be listed in the order in which they are shown in the proc
      6. DD override statement are only in effect for the duration of the run


  181. How are concatenated DD statements in the proc overridden?
    Answer:
    • Overriding concatenated DD statements requires the following:
      1. To override only the first DD statement in a concatenation, code only one overriding DD statement
      2. To override all DD statements in a concatenation, code an overriding DD fo each concatenated DD statement
      3. The overriding concatenated DD statements must be in the same order as the concatenated DD statement
      4. Code a DDname on the first overriding DD statements only.
      Leave the DDname blank on the following DD statements.
      5. To leave a concatenated statements unchanged, code its corresponding, overriding DD statement with a blank operand field

  182. What do you mean by INCLUDE statement in JCL?
    Answer:
    • An INCLUDE statement identifies a member of a PDS that contains this set of JCL statements is called an INCLUDE group.
      The system replaces the INCLUDE statement with the statements in the INCLUDE group.

  183. Why do you use a CONTROL CARD?
    Answer:
    • A CONTROL CARD can be a member of a PDS or a sequential dataset and is used for storing the date fields, definitions of VSAM files etc., We use CONTROL CARD because we cannot use an in-stream procedure in a procedure.
      Generally you will be calling a PROC from your JCL and you cannot code instream procedure in the PROC and so you will point to the dataset, which is called controlcard.

  184. How do you submit JCL via a Cobol program?
    Answer:
    • In your JCL define as: //JOBA JOB 1111,JOB1 //STEP01 EXEC PGM=PROG1 //ddname DD SYSOUT=(*,INTRDR)....and your COBOL (PROG1) should look like this: SELECT JCL-FILE ASSIGN TO ddname.
      Open this file and write the JCL statements into this file.
      Example: MOVE '//TESTJOB JOB 1111,VISVEISH' TO JCL-REC.MOVE '//STEP01 EXEC PGM=IEFBR14' TO JCL-REC. and close this file.
      Then TESTJOB will be submitted.

  185. How do you submit a JCL under CICS environment?
    Answer:
    • Pass all the JCL codes to a COBOL variable (should be declared using OCCURS clause) and then write the line one by one to the spool using CICS commands like SPOOLClose, SPOOLOpen and SPOOLWrite.
      For more help refer CECI of CICS or CICS manual.

  186. What is the parameter to be passed in the job card for the unlimited time, irrespective of the job class.
    Answer:
    • TIME=1440

  187. Define COND parameter in JCL?
    Answer:
    • COND is a condition parameter, consists of 2 subparameters, 1st - return code from the previous step, 2nd - condition. If COND is true, the step on which COND is coded will be BYPASSED.
      It is compared with system return code of previous step //STEP1 EXEC PGM=ABCD //STEP2 EXEC PGM=XYZ, cond=(4,lt) STEP 2 will be executed when system return code of step1 is less than 4.

  188. How to pass the temp dataset form one JOB step to another?
    Answer:
    • By specifying the DISP as PASS for the temp dataset

  189. Write a JCL to execute a Job by 7:00 AM on Jan 20,1986?
    Answer:
    • The code is:
      //*MAIN DEADLINE=(0700,B,012086)

  190. How many types of libraries are there in JCL?
    Answer:
    • Libraries are of three types:
      System Libraries:- such as SYS1.LINKLIB
      Private Libraries:- Specified in a JOBLIB or STEPLIB DD STATEMENTS.
      Temporary Libraries:- Created in a previous step of the Job

  191. Why do you want to specify the REGION parameter in a JCL step?
    Answer:
    • To override the REGION defined at the JOB card level REGION specifies the max region size REGION=0K or 0M or omitting REGION means no limit will be applied

  192. What does the TIME parameter signify ?
    What does TIME=1440 mean ?
    Answer:
    • TIME parameter can be used to overcome S322 abends for programs that genuinely need more CPU time TIME=1440 means no CPU time limit is to be applied to this step

  193. What is COND=EVEN ?
    Answer:
    • Means execute this step even if any of the previous steps, terminated abnormally

  194. What is COND=ONLY ?
    Answer:
    • Means execute this step only if any of the previous steps, terminated abnormally

  195. How do you check the syntax of a JCL without running it?
    Answer:
    • TYPERUN=SCAN on the JOB card or use JSCAN

  196. What does IEBGENER do?
    Answer:
    • Used to copy one SAM File to another Source Data Set should be described using SYSUT1 ddname Destination Data Set should be decribed using SYSUT2 IEBGENR can also do some reformatting of data by supplying control cards via SYSIN

  197. How do you send the output of a COBOL program to a member of a PDS?
    Answer:
    • Code the DSN as pds(member) with a DISP of SHR The DISP applies to the pds and not to a specific member

  198. I have multiple jobs ( JCLs with several JOB cards ) in a member What happens if I submit it?
    Answer:
    • Multiple jobs are submitted (as many jobs as the number of JOB cards)

  199. I have a COBOL program that ACCEPT some input data.
    How do you code the JCL statement for this? How do you code instream data in a JCL?
    Answer:
    • //SYSIN DD* input data input data /*

  200. Can you code instream data in a PROC ?
    Answer:
    • No

  201. How do you overcome this limitation ?
    Answer:
    • One way is to code SYSIN DD DUMMY in the PROC, and then override this from the JCL with instream data

  202. How do you run a COBOL batch program from a JCL?
    How do you run a COBOL/DB2 program?
    Answer:
    • To run a non DB2 program, //STEP001 EXEC PGM=MYPROG To run a DB2 program, //STEP001 EXEC PGM=IKJEFT01 //SYSTSIN DD * DSN SYSTEM() RUN PROGRAM(MYPROG) PLAN() LIB() PARMS() /*

  203. What is STEPLIB, JOBLIB?
    What is it used for?
    Answer:
    • Specifies that the private library (or libraries) specified should be searched before the default system libraries in order to locate a program to be executed STEPLIB applies only to the particular step, JOBLIB to all steps in the job

  204. What is order of searching of the libraries in a JCL?
    Answer:
    • First any private libraries as specified in the STEPLIB or JOBLIB, then the system libraries such as SYS1LINKLIB The system libraries are specified in the linklist

  205. What happens if both JOBLIB & STEPLIB is specified ?
    Answer:
    • JOBLIB is ignored

  206. When you specify multiple Data Sets in a JOBLIB or STEPLIB, what factor determines the order?
    Answer:
    • The library with the largest block size should be the first one

  207. How to change default proclib ?
    Answer:
    • //ABCD JCLLIB ORDER=(MEMYPROCLIB,SYS1PROCLIB)

  208. The DISP in the JCL is MOD and the program opens the File in OUTPUT mode What happens ?
    Answer:
    • The DISP in the JCL is SHR and the pgm opens the File in EXTEND mode What happens ?
      Records will be written to end of File (append) when a WRITE is done in both cases

  209. What are the valid DSORG values ?
    Answer:
    • PS - SAM,
      PO - Partitioned,
      IS - ISAM

  210. What is S322 abend ?
    Answer:
    • Indicates a time out abend Your program has taken more CPU time than the default limit for the job class Could indicate an infinite loop

  211. What are the Maximum number of In-stream procedures you can code in any JCL?
    Answer:
    • 15

  212. What you mean by skeleton JCL?
    Answer:
    • JCL, which changes during run time,that is the values for the JCL such as program name, dd name will change.
      The same JCL can be used for various jobs, equivalent to dynamic SQL;

  213. What is the maximum blocksize for a Tape file?
    Answer:
    • It is 32,760. Based on that we can calculate efficient number of Records in a Block

  214. What are the basic JCL Statements for a Job?
    Answer:
    • The basic JCL statements for any job are: JOB : Identifies a job and supplies accounting info EXEC : Identifies a job step by indicating the name of the program to be executed. DD : Identifies a data set to be allocated for the job step Delimiter (/*) : Marks the end of an in-stream dataset Null (//) : Marks the end of a job Comments (//*) : Provides Comments PROC : Marks the beginning of a procedure PEND : Marks the end of a procedure OUTPUT : Supplies options for SYSOUT processing.

  215. What does the statements: TYPRUN=SCAN and TYPRUN=HOLD do in a JCL statement?
    Answer:
    • TYPRUN= SCAN checks the JCL for errors,
      TYPRUN= HOLD holds the job until further notice.

  216. What is QSAM error usually when it occurs?
    Answer:
    • Usually it occurs at the time of job submission.

  217. What is the purpose of INCLUDE statement in a JCL?
    Answer:
    • It is used as an alternative for STEPLIB.
      When we specify the dataset name in INCLUDE , it will search in all the datasets specified in the INCLUDE dataset.

  218. Is it possible to know the remaining free space in a Control Interval/Control Area once an insertion has been made
    Answer:
    • No. It is not possible.

  219. What do you mean by spooling?
    Answer:
    • This is managed by JES.
      This is used for Queuing the Outputs that are intended for Printing and are first stored in SPOOLDASD.

  220. In which table PLAN is registered in?
    Answer:
    • RCT

  221. For how long a Job can be executed continuously on a Mainframe?
    Answer:
    • 248 DAYS

  222. How may divisions are there in JCL-COBOL?
    Answer:
    • Six

  223. What is the Maximum number of DD Statements to be coded in a single JCL
    Answer:
    • 3273

  224. How much space OS allocates when you create a PS or PDS?
    Answer:
    • 56 KB

  225. What is the minimum number of Dataset names (PDS) in one Directory Block?
    Answer:
    • Six

  226. What is the maximum number of steps in a Job?
    Answer:
    • 255

  227. How much is memory space involved, when we code BLOCKSIZE, TRK & CYL
    Answer:
    • One block constitutes 32KB of formatted memory/ 42KB of Unformatted memory; 6 blocks makes one Track & 15 Tracks makes one cylinder.

  228. What is DSNDB06?
    Answer:
    • This is the Place where DB2 Catalog resides;

  229. What is the use of DSNDB07?
    Answer:
    • This is the area where sorting takes place in DB2

  230. What is DATACOM DB?
    Answer:
    • It is a Database used with VSE.

  231. What is a Dummy Utility and what it does?
    Answer:
    • IEFBR14 is a Dummy utility and it is used for the sakeof EXEC PGM= .... statement in JCL [when used it wouldn’t perform any task]. e.g.
      While Allocating a dataset you don't have to run any utility [this could be done by giving disp=new in DD statment].
      But for a PGM name must be given in EXEC statment, it is used.

  232. What 3 guidelines do we have to follow when concatenating DD statements?
    Answer:
    • The three guidelines for concatenating DD Statements are:- Datasets must be of the same type (disk or tape) All datasets must have the same logical record length (LRECL) The dataset with the largest blocksize must be listed first.

  233. On a DD statement, what is the main difference between creating a new sequential flat file and a partitioned dataset?
    Answer:
    • SPACE= (n,m) for a sequential file, SPACE= (n,m,p) for a PDS where n, m, and p are numbers.
      The p designates how many directory blocks to allocate.

  234. What is the difference between IEBGENER, IEBCOPY and REPRO in IDCAMS utility?
    Answer:
    • They are the utility programs used in JCLs:
      IEBGENER : This utility is used for copying sequential datasets which produces a PDS or a member from a sequential dataset.
      IEBCOPY : This utility is used for copying one PDS to another or to merge PDSs.
      REPRO : This is for copying sequential datasets. More or less same as the IEBGENER

  235. What is the difference between STATIC CALL & DYNAMIC CALL
    Answer:
    • In the case of STATIC CALL, the called program is stand-alone and an executable.
      During run time we can call it in our called program.
      In a DYNAMIC CALL, the called program is not an executable program and it can executed through the called program

  236. What is the difference between CATALOGED PROCEDURE and IN-STREAM PROCEDURE?
    Answer:
    • INSTREAM PROCEDURES are set of JCL statements written between JOB and EXEC statements, start with PROC and end with PEND statement.
      Mainly used to test cataloged procedures.
      CATALOGED PROCEDURES are cataloged on the procedure library (PROCLIB) and is called by specifying the procedure name on the EXEC statement.

  237. What are the maximum and minimum sizes of any CONTROL AREA (VSAM datasets)?
    Answer:
    • inimum Size : 1 track; Maximum size : 1 cylinder<

  238. How many parameters are there to a DISP statement and what are their uses. ?
    Answer:
    • There are three (3) parameters:
      Parameter 1: Current data set disposition (NEW, SHR,OLD,MOD)
      Parameter 2: Normal close action for data set (CATLG, KEEP, DELETE)
      Parameter 3: Abend action for data set (CATLG, KEEP, DELETE)

  239. What is COMP?
    Answer:
    • HALF WORD BINARY

  240. What is a PROCEDURE?
    Answer:
    • A set of precoded JCL that can be modified through the use of parameters or override cards.
      Note: Procedures can be catalogued or instream.

  241. What is the difference between specifying DISP=OLD and DISP=SHR for a dataset?
    Answer:
    • OLD specifies exclusive use of a dataset, SHR allows multiple jobs to concurrently access the dataset. Note: When updating a dataset, you would normally use OLD

  242. What are the three basic types of statements in a jobstream?
    Answer:
    • The three basic types of statements in a jobstream are:
      JOB : We can code one per jobstream
      EXEC : It can be one or more per job
      DD : one or more per jobstep;
      JOB - It indicates start of jobstream to the operating system and through parms coded on it, it contains certain details about the job (like time, region, message level, job accounting data).
      EXEC - It indicates the start of execution of a particular job step, be that step a program or a proc.
      DD - It is a data definition statement, which is used to describe the attributes of a dataset (like name, unit, type, space, disposition etc.,).

  243. What does SYSIN * indicate?
    Answer:
    • Instream data follows this card and is terminated when followed by a card containing // or /* in columns 1 and 2



Volta a página anterior

Volta ao Menu Principal