Tuesday, January 25, 2011

IMS Abend codes


IMS ABEND CODES
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
_
    U0002 - IMS control region down
          - This indicates that a program has filled the region and
            the region has abended. It may be: 1) A program running in
            the same region as a program that fills a region; 2) Your
            program which has filled the region (either because of a
            program problem like infinite looping or because you have
            not taken a checkpoint for a long time); or 3) A bad
            version of IMS is in place (especially likely if it is
            experienced on a Sunday).


    U0100 - Bad checkpoint
          - Especially after a U0777 restart using the wrong
            checkpoint
          - Use a previous checkpoint for the restart


 |  U0102 - IMS cannot find the checkpoint ID when you are restarting
 |          the job.  Here is a list of items to check.
 |           - Check to make sure that the checkpoint ID is the
 |             correct one that you want to use.  Check typing of
 |             checkpoint id.
 |           - Ensure that the jobname of the abend and the jobname of
 |             the restart job are the same.
 |           - The IMS disk log dataset may have been written to tape.
 |             Use the Plano supported IMS Checkpoint VOLSER Locator
 |             (option L.O.I), to find the tape, and data set name of
 |             the IMS tape log.
 |           - Check data set name, tape VOL=SER, for log data set if
 |             IMS log has gone to tape.


    U0136 - A previous program abend has hung up the IMS region
            initiator have MTO stop and start the initiator that the
            job failed in.


    U0144 - BMP abended because there were too many BMP's running at
            one time.  Restart when there are fewer BMP's running.











 |  U0240 - An IMS online program, (MPP), has timed out.  Each and
 |          every IMS online transaction/program has a set time limit
 |          as to how many CPU seconds this program will be allowed to
 |          have.  Once the limit has been exceeded the program will
 |          abend.
 |           - Check for loops in the program
 |           - Check for 'GB', end of data base condition, and make
 |             sure that the program is processing this condition OK.
 |           - Check the Boolean SSA to make sure that you do not read
 |             thru the entire data base to get your result.
 |           - Check your SSA when using secondary indexes and make
 |             sure the names used in the SSA are valid.
 |           - Verify the CPU second limit with the DBA group for the
 |             transaction code.


    U0261 - Could be missing link control statements in CHAMP source
          - Parameter list is not on a full word boundary
           (i.e. 01 level)


    U0295 - Display left in program


    U0428 - PSB not defined in sysgen


 |  U0430 - Not enough region size or region parm is missing, also
 |          DFS0432I and/or DFS0430I message will appear.  Increase
 |          region size or add it.
 |
 |  U0437 - Access Group Name problem
 |        - Logon ID does not have access to AGN
 |        - PSB does not have access to AGN
 |        - AGN parameter missing from JCL
 |
 |  U0452 - the IMS transaction can not be processed because of one of
 |          the following reason:
 |            - the transaction is stopped
 |            - the transaction is locked
 |            - the transaction is already scheduled in another region
 |          To correct this problem make sure that the transaction is
 |          started.  If it is started, check the other regions to
 |          make sure that this transaction is not running in another
 |          region.
 |
 |  U0456 - The program/PSB is stopped, locked, or is marked as
 |          invalid.  Check to make sure that the program is started
 |          and also check that the ACB for this PSB is valid and that
 |          the ACB is in the correct library.


    U0457 - Duplicate PSB in region


    U0458 - Data base is stopped


    U0475 - Usually occurs when you attempt a checkpoint call without
            doing a restart call first.


 |  U0476 - IMS has found a problem between your PCB and your
 |          program's storage areas for the PCB.  Some items to check
 |          are:
 |           - The PSB language specified in the PSB is not the same
 |             as the program language.
 |           - The number and order of the PCB's in your PSB does not
 |             match the the number and order in your program.
 |           - The Address of the PCB's in your program has been
 |             overlaid in your program.
 |           - In a COBOL program, the LINKAGE SECTION must have a 01
 |             level coded for each PCB in the PSB.
 |
 |  U0688 - IMS control program is down and must be restarted before
 |          any BMP processing can be done.
 |
 |  U0718 - The "REGION PARM" on a batch job is too small.  Increase
 |          the region size.


    U0775 - Too much updating in buffers before a checkpoint was taken
          - If one program fills the buffers, others may follow
          - Check to see that the checkpoint counter is incremented at
            every update (ISRT/REPL/DLET) to a data base or GSAM file.
            If so, the maximum updates before a checkpoint is taken
            may need to be reduced.


    U0777 - Data base contention, operator cancelled
          - Restart at last 'unique' checkpoint to avoid duplicate
            check point on restart.


    U0800's - Usually a problem for DBA's
            - Be careful, could be a corrupt data base


 |  U0826 - IMS was unable to open an index data base data set.  Check
 |          for:
 |           - The index data base data set exist.
 |           - The index data base data set name is correct
 |           - The index data base data set DDNAME is correct
 |           - All index data base data set DDNAMEs are present and
 |             correct
 |           - That you have a buffer large enough to hold the data
 |           - Check for a "DFS730I" error message. There will be
 |             additional information with this message.  Use the
 |             reason code given and look into the IMS/ESA Messages
 |             and Code manual for more info.
 |
 |  U0844 - This is a data base full error.  Check the DBDLIB that you
 |          using to make sure it is the correct one.  Also check on
 |          how many records you are adding/inserting.


    U0850 - Exception to U0800's rule
_
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
Data Base Administration                                                PAGE 119

Appendix G -- ABEND Codes                                         IMS User Guide
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
_
          - Larger buffers are needed to process the job.  Change the
            DFSVSAMP (or equivalent) DD so that it will allocate
            larger buffers.

    U0921 - Requested PSB not found
          - Check to see that you have done your PSB/ACB gen's.

 |  U0929 - IMS has found an error when trying to match the DBD and
 |          the PSB.  Verify that the correct libraries are being used.

    U2082 - Response mode transaction terminated without reply (DFS
            msg)
          - Good change that you have left displays in your MPP
            program.

    U3030 - Duplicate format number used in MFS gen.
          - Format number must be changed. It is best to have DBM
            group scratch that format number and for you to regen both
            MFS's.

 |  U3303 - This implies that the data base were not available for
 |          use. Check to see that the databases have been started.
 |
 |  DFS057 - The REQUESTED BLOCK ####MODNAME NOT AVAIL.....
 |           where the ####MODNAME, where #### are HEX NUMBERS
 |           check MFS source code and make sure that
 |                .... MSG  TYPE=OUTPUT,SOR=(MID,IGNORE)
 |                .... and the DEV.. has FEAT IGNORE
 |                 ... the name of FORMAT, MID, MOD do not match
 |
 |  SIMLOGON - An MPP tried to send a message to a device.  IMS sent
 |             the message to VTAM.  VTAM tried to do an "OPEN DEST"
 |             on the device but got no response back.  Check to make
 |             sure the device is up and active, and make sure that
 |             the device you are sending something to is a valid
 |             device.
 |
 |  BMC2849 - VSAM DATASET NOT EMPTY - DDNAME = ????????  BMC Load
 |            Utility when VSAM data set is not properly created.
 |
 |  BMC2660 - OSAM Relative BYTE ADDRESS exceeds 31 BIT capacity
 |
 |  BMC2954 - from BMC SECONDARY INDEX BUILD.  DBD is not in LIBRARY
 |            that you are pointing to.

IMS Abend codes - Click here to download

Monday, January 24, 2011

DB2 Queries

DB2 Queries - Click here to download

Wednesday, September 26, 2007

Need anything more ?

Is that you need any materials more, just keep me posted by comments or thru mail.
I would keep you updated !

Bharath.

Friday, September 21, 2007

Mainframe: JCL FAQ's

Mainframe: JCL FAQ's

TSO COMMANDS

ABCODE - DISPLAYS COMMON ABEND CODES AND POSSIBLE FIXES
ACCMCHK1 - DISPLAYS ACCOUNTING INFORMATION (INFO IN JOB CARD)
ACCTHELP - GIVES: GLSUM,COST CTR,CUST CODE,APPL ID'S,SYS CDDE,ACCESS CODE
ACESHIST - BROWSE ACES INFORMATION FROM ORIGINAL ACES SYSTEM
ACF - DISPLAYS YOUR TSO LOGON RULES INFORMATION (AT ? ENTER L * )
ACFHELP - DEFINITIONS/EXAMPLES ARE GIVEN WHEN USING 'ACFRULE'
ACFRULE - USED TO DEFINE RULES ON WHAT OTHERS CAN DO TO YOUR DATASETS/PDS
BPRINT - USE TSO BPRINT TO PRINT THE DATASET YOU ARE CURRENTLY BROWSING
BRCLIST - BROWSE ALL DATASETS THAT CONTAIN THIS CLIST (REXX)
BRLINK - BROWSE ALL LINK LIBRARY DATASETS THAT CONTAIN THIS MEMBER
BRMLIB - BROWSE ALL ISPMLIBS THAT CONTAIN THIS MEMBER
BROBJLB - BROWSE ALL OBJECT LIBRARY DATASETS THAT CONTAIN THIS MEMBER
BRPLIB - BROWSE ALL PANEL LIBRARY DATASETS THAT CONTAIN THIS MEMBER
BRPROC - BROWSE ALL PROC LIBRARY DATASETS THAT CONTAIN THIS MEMBER
BRPSBLIB - BROWSE TEST PSBLIB
BRSLIB - BROWSE ALL SKELETON LIBRARY DATASETS THAT CONTAIN THIS MEMBER
CALCU - USED TO DO SIMPLE CALCULATIONS (ADD, SUB, MULT AND DIVIDE)
CAWRITER - LIST OF CA-DISPATCH UNIVERSAL WRITER NAMES AND DEFINITIONS
CA7 - INVOKE JOB SCHEDULE PRODUCT (CA-7 PRIMARY OPTION MENU)
CA7HIST - VIEW UP TO 14 MONTHS OF JOB EQUEST HISTORY
CA7LOOK - SHOWS ALL CONTROL-M RUN REQUESTS SUBMITTED FOR TODAY
CA7REQ - USED TO SCHEDULE HOST JOBS AT AUBRUN HILLS
CHAMPDOC - DOCUMENTATION OUTLINING CHAMP RELATED QUESTIONS
CHAMPRPT - BROWSE CHAMP DAILY MOVE REPORT,UP TO LAST 5 DAYS OF INFORMATION
CMI - CNTLM JOB SCHEDULES BY JOB
CMPOST - WILL HELP YOU CATALOG UP ROUND REEL TAPES
CMPOSTC - WILL HELP YOU CATALOG UP CARTRIDGE TAPES
CMR - CNTLM JOB PERFORMANCE REPORTING SYSTEM, STATS FOR EXECUTED JOBS
COMPARE2 - USE ISPF OPTION 3.13 TO MAKE COMPARES
COUNT - EXECUTE THE LINES OF CODE COUNTER (SLOC COUNTER)
CSPACE - CALCULATES THE NEEDED ALLOCATIONS FOR DASD BASED ON INPUT INFO
DBADOCSE - DBA DOCUMENTATION OF INTEREST TO AN INFORMATION ANALYST
DBAPROC - DEFINITION OF "DBA'S" RESPONSIBILITIES AND SUPPORT PROCEDURES
DBAREQ - USED TO REQUEST: INCLUDE MOVES, DVAN, PSB (NUCREQ) AND MISC
DBASE - DISPLAYS DBA CONTACTS BY AREA THAT THEY SUPPORT
DBCHANGE - INITIAL DBA NOTIFICATION PANEL FOR DATABASE CHANGES
DBCREATE - USED TO CREATE A COPY OF A TEST DATABASE IN YOUR CATALOG
DBMAP - DISPLAYS A "PSB" MAP OF A PROGRAM OR A "DBD" MAP OF A DATABASE
DB2TIPS - TIPS ON SETUP,CODING,TESTING,CONVERTING TO DB2 DATA BASES
DISASTER - UPDATES RECOVERY PRIORITIES FOR JOBS AND ONLINE IMS PGMS
DISPDESC - DISPLAYS A DESCRIPTION AND OWNER FOR DATABASES
DPRINT - USE DPRINT TO PRINT A DATASET FROM A LISTING
DRARPTS - BROWSE DRA BACKUP REPORTS FOR CURRENT AND 4 WEEKS BACK
DSNREST - BROWSE LETTER TO COMMUNITY ON HOW TO RESTORE FROM DRA BACKUPS
DVANJCL - CREATES JCL TO RUN TEST DATAVANTAGE AS A BMP OR IN A DLI REGION
DVANREQ - CREATE A DATAVANTAGE REQUEST FOR THE DBA GROUP TO PROCESS
DVBTS - ALLOWS DATAVANTAGE TO BE EXECUTED IN "BTS" FOR UP TO 3 DB'S
EPRINT - USE EPRINT TO PRINT THE DATASET YOU ARE CURRENTLY EDITING
FATIPS - FILE AID TIPS FOR REFRESH 97 VERSION
GDG - BUILD OR DELETE GDG BASES
GENPSB - WILL GEN A PSB FROM THE PROD PAN LIB TO VERSION 1 PSBLIB ONLY
GSAMB37 - HOW TO PREVENT BLOCK ERRORS WHEN COPYING GSAM FILE FOR RESTART
HOLDJCL - VIEW A JCL MEMBER IN ENDEVOR HOLD
HOLDSORC - VIEW A SOURCE CODE MEMBER IN ENDEVOR HOLD
IMFTS - INVOKE BOOLE AND BABBAGE
IMSCHKPT - ALLOWS INQUIRY/UPDATE OF CHECKPOINT LIMIT/NUMBER AND RUN NUMBER
INCREQ - REQUESTS DATABASE INCLUDE MOVE TO PRODUCTION OR TEST
INITIAL - SET YOUR "BIN" AND "ACCT CODE" FOR OTHER CLISTS TO USE
IPACT - DISPLAYS IPACS INFO FOR A GIVEN JOB, PGM OR ACCESS CODE
IPCABEND - BROWSE UPTO 6 DAYS OF THE DAILY AHIPC MORNING REP FOR PROB
IPCPROB - BROWSE THE AHIPC PROBLEM TICKET FILE AND THE OPEN TICKET STATUS
IPCUSER - BROWSE/PRINT IPC USER GUIDE(VOL5), STDS FOR OUR ACCT., ETC;
ISPFTIPS - REFRESH 97 ISPF TIPS AND ENVIRONMENT SETTING CHANGES
JCLFORM - FOR NEW JCL OR NEW STEPS: THIS WILL REFORMAT THE JCL TO STDS
JCLX - THIS SHOWS ALL DATASETS (IN SEQ) AND THE JOBS THAT USE THEM
JOBHIST - SHOWS WHEN A JOB WAS STARTED, COMPLETED, CPU/REAL TIME, ETC;
LA - DISPLAY THE NAMES OF LIBRARIES CURRENTLY ALLOC TO YOUR LOGON ID
LIMITCHG - DISPLAYS CHECK POINT LIMIT CHANGES FOR THE LAST 7 DAYS
LINKDATE - DISPLAY LINKDATE FOR A GIVEN MEMBER FROM A SPECIFIC LIB
LISTA - LISTA ST H - LISTS ALL ALLOC DATASETS AND THEIR HISTORY INFO
LISTA - USED TO DISPLAY THE NAMES OF CURR ALLOC DATASETS TO YOUR ID
LISTBC - USED TO LIST MESSAGES SAVED IN THE BROADCAST DATASET
LISTC - LISTS ENTRIES FROM EITHER THE MASTER OR USER CATALOG
LISTC1 - EX. LISTC EN('F.F133152') ALL - WILL LIST MAX. ENTRIES ALLOWED
LISTC2 - EX. LISTC VOL - WILL LIST YOUR CATLG & VOLUMES DSN'S RESIDE ON
LISTD - DISPLAYS BASIC ATTRTIBUTES OF DATASET SPECIFIED
LISTD1 - LISTD 'SYS2.TESTLIB(B0450)' - WILL DISPLAY PROGRAM LINK INFO
LJOB - DISPLAY CA7 SCHEDULE INFO FOR THE JOB ENTERED
LOCKOUT - THIS CROSS-REF IS GIVEN IN: JOB, DATABASE, PROGRAM AND SEG SEQ
LOGONID - BROWSE FILE FOR TSO LOGON ID'S(UID,FULL NAMES,LAST DATE USED)
MFSTEST - USED TO LINK OUT MFS SCREENS FROM PROD, TEST OR YOUR CATALOG
MFS3270 - USED TO CREATE/LINK NEW MFS SCREENS FROM YOUR CATALOG
MISCREQ - MISCELLANEOUS DBA REQUEST PANEL
MSG - THIS COMMAND SENDS A MULTI LINE MESSAGE TO A TSO ID
MSGSEND - THIS COMMAND SENDS A MULTI LINE MESSAGE TO A TSO ID
NEWIPACS - SETS UP FILES FOR RUNNING IPACT CLIST
NOTCOMP - GENERATE A REPORT OF PROGRAMS NOT COMPILED FOR SPECIFIC SEG
NOTIFY - ASSIGN PROGRAMMERS TO A PGM SO OPERATIONS CAN CALL ON ABENDS
OQACCLOC - VIEW DATASET OF CHANGED SOURCE LINES OF CODE COUNTS
OQACDB2 - ID FOREIGN KEY TABLES FOR DB2 TABLE-CREATE FILE FOR ISEE MVSWB
OQACDB2U - UNLOAD DB2 TABLE W/ DSNTIAUL UTIL.-CREATE FILE FOR ISEE MVSWB
OQACEJCL - EDIT ACCOUNT SUPPORT GROUPS ENDEVOR JCL LIBRARY
OQACERPT - BROWSE ENDEVOR MASTER CONTROL FILE - ELEMENT CATALOG REPORT
OQACIMSQ - VIEW IMS DISPLAY Q INFORMATION
OQACJCL - EDIT ACCOUNT SUPPORT GROUPS JCL LIBRARY-EX: FILEAID SCAN JCL
PANXREF - SHOWS "EVERY" INCLUDE (DB & PGM) AND "EVERY" PGM THAT USES IT
PDSCMP - COMPRESS A PDS IN SHARE MODE
PEEK - RUN PEEK EVALUATION SYSTEM - PL/I ONLY - COMPLEXITY EVALUATION
PGMTBLX - LIST ALL DB2 TABLES USED BY THE SPECIFIED PROGRAM
PRESTORE - COPIES AN UNCATLG PRODUCTION DATASET FROM DASD INTO YOUR CATLG
PRINTQIP - PRINT VARIOUS QIP GROUP RESULTS, INCLUDING THE ACES SYSTEM
PRODDBIC - ALLOWS YOU TO VIEW DATABASE INCLUDES FROM PWDDB.COBOL.INCLUDES
PRODDBIP - ALLOWS YOU TO VIEW DATABASE INCLUDES FROM PWDDB.PLI.INCLUDES
PRODINCL - VIEW AN INCLUDE MEMBER IN ENDEVOR PRODUCTION
PRODJCL - VIEW A JCL MEMBER IN ENDEVOR PRODUCTION
PRODSORC - VIEW A SOURCE CODE MEMBER IN ENDEVOR PRODUCTION
PROGXREF - GENERATE A REPORT OF PGMS AFFECTED BY DATABASE SEGMENT CHANGES
PRTCUT - PRINT REQUEST TO CUT SHEET FORMS(LETTER) AT SPO C.O.
PRTDOC - PRINT INFO. ON MFS, DATAVANTAGE, IMS CMDS, CHKPT, DESIGN REV
PRTFTD - PRINT REQUEST AT FLINT PRINT CENTER IN 1UP FORM
PRTJCL - PRINT REQUESTED "JCL" FROM PWDS1.SPOCH.JCLPAN
PRTLJOB - PRINT ON PC LPT1 PRINTER-CA7 SCHEDULE INFO FOR THE JOB ENTERED
PRTMIN - PRINT REQUEST TO MINIMUM PRINT AT SPO C.O.
PRTTRD - PRINT REQUEST TO AT TROY OUTPUT CENTER
PRT2UP - PRINT REQUEST AT FLINT PRINT CENTER IN 2UP FORM
PSBREQ - REQUEST PSB GENERATION FOR PRODUCTION AND TEST
RECEIVE - RECEIVE A DATASET FROM ANOTHER TSO ID
RESET - USED TO LOAD NEW/CHANGED ACF RULES WITHOUT LOGGING OFF
RESTORE - RESTORES YOUR OWN ARCHIVED DATASET/PDS BACK INTO YOUR CATALOG
RFSJCL - BUILDS CHECKPOINT RESTART JCL IN YOUR CATALOG FOR A PROGRAM
SCAN - USED TO SUBMIT A SCAN AGAINST PROD, TEST OR JCL LIBRARIES
SCANOUT - USED TO BROWSE THE DATASET CONTAINING THE RESULTS OF YOUR SCAN
SCHEDULE - LIST THE AUBURN HILLS SPO SCHEDULING CONTACT NAMES AND NUMBERS
SECINFO - VARIOUS DOCUMENTATION ON SECURITY ITEMS OF INTEREST TO SPO
SETERMS - DISPLAYS DEFINITIONS OF TERMS AND ACRONYMS FOR SPO ACCOUNT
SMR - SYSLOG MANAGEMENT AND RETRIEVAL
SPACE - CALCULATES SPACE REQUIRED FOR DATA BASES BASED ON BLOCK SIZE
START - USED TO START UP A PROGRAM/TRANSACTION ON IMST THAT IS STOPPED
TAPERECS - CALCULATES THE NUMBER OF RECORDS ON A TAPE
TBLPGMX - LIST PROGRAMS THAT USE THE SPECIFIED DB2 TABLE,VIEW,SYSTEM CODE
TCOMP2 - USED TO LINK OUT PROGRAMS FROM PROD, TEST OR YOUR CATALOG
TESTINCL - VIEW AN INCLUDE MEMBER IN ENDEVOR TEST
TESTJCL - VIEW A JCL MEMBER IN ENDEVOR TEST
TESTSORC- VIEW A SOURCE CODE MEMBER IN ENDEVOR TEST
TIME - DISPLAY CURRENT SYSTEM DATE AND TIME
TLSINQ - VIEW THE TAPE LIBRARY LISTING IN DATASET OR VOLUME SERIAL SEQ
TRACE - USED TO TRACE A JOB IN IMSTEST (BMP OR TRANSACTION)
TRANCNTS- SHOWS TRANS. PER MONTH (D8806=JUNE 88) AND # OF TIMES USED
TRANSMIT- TRANSMIT A DATASET TO ANOTHER TSO ID
TRANSMI1- EX..TRANSMIT (IPCNODE.HIGHLEVEL) DATASET (DSN)
TRANSMI2- EX..TRANSMIT (PLIPC4B.PDSJBTD) DATASET ('USERID.PLI.STDS')
VSPACE - CALCULATES SPACE REQUIRED FOR DATA BASE INDEXES
WAAPLNKL- LIST DATASETS CONTAINED IN THE LINKLIST
WHEREIS - ISPSLIB MEMBER - FIND DATASET THAT CONTAINS SKELETON MEMBER
WHEREIS - ISPPLIB MEMBER - FIND DATASET THAT CONTAINS PANEL MEMBER
WHEREIS - SYSEXEC MEMBER - FIND DATASET THAT CONTAINS REXX MEMBER
WHEREIS - SYSPROC MEMBER - FIND DATASET THAT CONTAINS CLIST MEMBER
WHEREIS - LINKLIST MEMBER - FIND DATASET THAT CONTAINS LINKLIB MEMBER
WHEREIS - ISPMLIB MEMBER - FIND DATASET THAT CONTAINS MESSAGE MEMBER
WHEREPGM- MEMBER - LOCATES ALL PROGRAM LIBRARIES THAT CONTAIN MEMBER
WHEREPSB- MEMBER - LOCATES ALL PSB LIBRARIES THAT CONTAIN MEMBER

ISPF COMMANDS

Command Function
< Data shift left
shifts a single line of program source code to the left without affecting the program labels or comment ie. data from column one to the first blank and data following several blanks are not moved. May be specified with a number identifying the distance to move (default 2).

<< Block data shift left
All of the lines in the block are affected as if you typed individual data shift left commands. May be specified with a number identifying the distance to move (default 2).

> Data shift right
As for data shift left but the opposite direction. May be specified with a number identifying the distance to move (default 2).

>> Block data shift right

( Column shift left
Works similarly to data shift left but moves everything within the bounds, nothing stays fixed in place. May be specified with a number identifying the distance to move (default 2).

(( Block column shift left

) Column shift right

)) Block column shift right

a After
used with copy, move, or paste to specify the line after which the copied/moved lines are to be inserted.

b Before
used with copy, move, or paste to specify the line before which the copied/moved lines are to be inserted.

bnds Display bounds above this line
Displays the current boundary positions which can be changed by tying < and > in the new boundary positions that you require.

c Copy
Copies this line either to another place within the current file (using a, b, or o to identify destination) or to another file (using the create, replace, or cut commands). Can be specified with a number to indicate that multiple lines are to be copied.

cc Block copy

cols Display the column ruler above this line

d Delete
Deletes this line from the file. Can be specified with a number to indicate that following lines are also to be deleted.

dd Block delete

f Display the first excluded line
Can be specified with a number to display more than one excluded lines. This command is only valid on excluded lines.

i Insert a new line after this one
Can be specified with a number to insert multiple lines.

l Display the last excluded line
Can be specified with a number to display more than one excluded lines. This command is only valid on excluded lines.

lc Convert all text on this line to lower case
Can be specified with a number to convert more than one line to lower case.

lcc Block convert to lower case

m Move
Works the same as copy except that the lines are removed from their current location.

mm Block move

mask Display the mask line above this one
The mask defines the default content for inserted lines.

o Overlay (used with copy and move to specify the line into which the copied/moved line is to be inserted - only spaces are replaced). Can be specified with a number to indicate that following lines are also to be overlaid.

oo Block overlay (the lines to be copied/moved are inserted into the block as many times as they will fit)

r Repeat - create a duplicate of this line
Can be specified with a number to indicate that additional duplicate lines are to be produced.

rr Block repeat
Can be specified with a number to indicate that multiple duplicates of the block are to be produced.

s Show the excluded line that has the least indentation
Can be specified with a number to display more than one excluded lines. When multiple lines are displayed they may not be together. This command is only valid on excluded lines.

tabs Show the tab settings above this line
Hardware tabs positions are indicated by asterisks (*) and software tabs by hyphens (-) or underscores (_).

te Text Entry mode - allows bulk insert following this line
You can start entering data without paying any attention to lines as the text will wrap automatically. Press the enter key to exit from text entry mode.

tf Text flow - flows the text between the margins for this line and following lines until a blank line is found, the indentation changes, or a special character (period, colon, ampersand, less than, or form feed) is found in the first column.

tj Text Join - merges this line with the following one

ts Text split - splits this line in two
You need to position the cursor at the position on the line where you want the split to occur.

uc Convert all text on this line to upper case
Can be specified with a number to convert multiple lines.

ucc Block convert to upper case

x Exclude this line from the display
Can be specified with a number to exclude multiple lines. This command is useful when you need to view two blocks of data that are in different locations within the file, just exclude the intervening data from the display.

xx Block exclude

. label assignment

You can assign a label to any non-excluded line by typing a period followed by the label name. The label can then be used to identify the line in primary commands. You cannot start labels with "z" as these labels are reserved for system use.

JCL FAQ's

JCL

Q1. What are the kinds of job control statements?
A1. The JOB, EXEC and DD statement.


Q2. What is the meaning of keyword in JCL? What is its opposite?
A2. 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) meanings are based on first, second and third position.


Q3. Describe the JOB statement, its meaning, syntax and significant keywords.
A3. 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.


Q4. Describe the EXEC statement, its meaning, syntax and keywords.
A4. 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.


Q5. Describe the DD statement, its meaning, syntax and keywords.
A5. 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.


Q6. What is a PROC? What is the difference between an instream and a catalogued PROC?
A6. 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.


Q7. What is the difference between a symbolic and an override in executing a PROC?
A7. 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.


Q8. What is RESTART? How is it invoked?
A8. RESTART is a JOB statement keyword. It is used to restart the job at a specified step rather than at the beginning.


Q9. What is a GDG? How is it referenced? How is it defined? What is a MODELDSCB?
A9. GDG stands for generation data group. It is a dataset with versions that can be referenced absolutely or relatively. It is defined by an IDCAMS define generation datagroup execution.


Q10. Explain concatenating datasets.
A10. 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.


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


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


Q13. 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?
A13. 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.


Q14. How do you designate a comment in JCL?
A14. The comment statement is //* followed by the comments.

Q15. What is the meaning of the EXEC statement keyword, COND? What is its syntax?
A15. 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!)


Q16. What is the improvement to COND= in the latest version of MVS?
A16. 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.


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


Q18. What is the purpose and meaning of the REGION keyword and what JCL statement is it associated with?
A18. 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.


Q19. What is the purpose and meaning of the TIME keyword and what JCL statement is it associated with?
A19. 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.


Q20. What is the meaning of data definition name (ddname) and dataset name (dsname) in the DD statement?
A20. 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.


Q21. How is the keyword DUMMY used in JCL?
A21. For an output file DUMMY specifies that the output is to be discarded. For input it specifies that the file is empty.


Q22. What does the keyword DCB mean and what are some of the keywords associated with it?
A22. 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.


Q23. What is the difference between BLKSIZE and LRECL?
A23. BLKSIZE specifies the number of bytes


JCL Technical FAQ's


Q What is JCL ?
A JCL stands for Job Control Language

Q What is the difference between keyword and positional parameters ?
A Positional parameters are characterized by their position in the operand field in relation to other parameters.Keyword parameters are positionally independent with respect to others of their type and consisting of a keyword followed by an equal sign and variable information.

Q What is a DISP ?
A DISP is a keyword parameter which is defined on the DD statement and which consist of the following positional subparameters: DISP=(Status, Normal Disp, Abnormal Disp). The DISP parameter describes the current status of the dataset (old, new, or modified) and directs the system on the disposition of the data set (pass, keep, catalog, uncatalog, or delete) either at the end of the step or if the step abnormally terminates. DISP is always required unless the data set is created and deleted in the same step.

Q What is DISP=SHR ?
A DISP=SHR permits old data sets to be shared. SHR is identical to OLD except that several jobs may read the dataset concurrently in multiprogramming environments. SHR must be used only for input data sets; use OLD or MOD if data set is modified. Sharing data set is necessary because public libraries like SYS1.LINKLIB or the subroutine libraries should be available to every job in the system.

Q What is DISP=MOD ?
A DISP=MOD modifies a sequential data set. It is a convenient way to add data to the end of sequential dataset. If the data set doesn't exist, the system changes MOD to NEW unless the VOL parameter request specific volume. When VOL is coded, the stem expects to find data set on the specified volume and terminates the step if it cannot find it. MOD is the usual way of extended data sets in to several direct-access volumes.

Q What is DISP=PASS ?
A PASS passes the data set on to subsequent job steps, and each step can use the data set once. It is a positional subparameter of the DISP which could only be specified under normal termination action. Pass saves time because the system retains the data set location and volume information.

Q What are the parameters that have to be coded on a DD statement in order to retrieve a cataloged data set ?
A The minimum parameters needed are DSN and DISP.

Q How does the system get information about the block size ?
A DCB info comes from :- 1) Program - FD: BLOCK CONTAINS 3 RECORDS RECORD CONTAINS 100 CHARACTERS2) The label - like a tape3) From the VTOC - for Dasd4) From the JCL - DCB=BLKSIZE=nnn.

Q What is a Label ?
A LABEL is a keyword parameter which can be specified on DD statement and consists of the following subparameters:LABEL=(Relative File #, Type of Label Processing)The LABEL parameter tells the type of label, the relative file number,and whether the data set is to be protected for input or output.

Q When should be NL be specified as a type of label processing ?
A NL should be specified when a program needs to process unlabeled tapes NL can also be specified when the pgm wants to create unlabeled tape because the system's default action, in cases when parameter is not specified, will create IBM standard label. Nonlabeled tapes are often used for sending tapes to another installation. That way you don't have to worry about the tape label corresponding to the standards at the other installation or about accidentally matching the volume serial number of an existing tape at the installation.

Q How do you describe the input data which is a part of the input job stream ?
A You should use either DD * or DD Data.

Q What is the difference between * and Data ?
A DD * and DD DATA describe the input data which follows the above mention cards. If the input data contains record switch // in col 1 and 2 then DD Data should be used.

Q What is the purpose of SPACE parameter ?
A It is a keyword parameter which should allocated on the DD statement for the output data sets stored on the disk.It consists of the following subparameters:SPACE=(BLKS/CYL/TRK,(primary,secondary,index),RLSE,CONTIG)

Q What is a RLSE ?
A RLSE releases all unused space when the data set is closed. It permits you to allocate more space than perhaps, it needed without wasting space. Space is released only if the data set is not empty and if the data set is closed after being opened.

Q What is a CONTIG ?
A CONTIG requests the primary space be allocated only on contiguous tracks and cylinders, that is all tracks on a cylinder are contiguous, and if more than one cylinder is needed, the cylinders are also contiguous. Always code CONTIG if track overflow is used.

Q What is a PDS ?
A PDS is a library type of data set organization consisting of Directory and Members. The directory consists of blocks, and each block is 256 bytes in length and can hold up to 5 members. Each member of the PDS is a sequential data set.

Q What is a Temporary Data Set ?
A Temporary data sets are used for storage needed only for the duration of the job. If the DISP parameter doesn't delete the data set by the end of the job, the system will delete it. Deleting a tape data set dismounts the tape, whereas deleting a dataset on a direct-access volume release the storage. A data set is marked temporary by omitting the DSN parameter or by coding DSN=&&dsname. The system assign a unique name to the data set when the DSN parameter is omitted, and any subsequent steps using the dataset refer back to the DD statement.

Q What is COND parameter ?
A It is a keyword parameter which can be specified on the JOB or EXEC statements. COND consists of 3 subparameters:code(0 thru 4095),logical operator, and stepname of the step that is going to be compared.The purpose of the COND is to determine whether the step should be executed or bypassed. If condition specified in the COND parameter is true,the step is bypassed.

Q How do you specify a COND parameter for a job step so that the step will never be executed ?
A COND=(0,LE) or COND=(4095,GE).

Q What does COND=ONLY mean ?
A It means that this job step will be executed only if a previous step had abnormally terminated.

Q What does COND=EVEN mean ?
A It means that this jobs step will be executed even if a previous step abnormally terminated.

Q What is a NAME ?
A Name is a positional parameter which identifies the person or group responsible for a job.

Q What is a PRIORITY ?
A It is a keyword parameter which specifies a job initiation priority within its job class. When the job is initiated, the system will convert the job's priority into a dispatching priority so that job's task can complete with other tasks for use of main storage and CPU resources.

Q How does the system determine the priority of a job for execution ?
A First the system determines which job has the highest class. Each class has a job queue with jobs of different priorities. The system will select the job for execution that has the highest PRTY (0 thru 15) 15 is the highest priority.

Q What is a MSGCLASS parameter ?
A It is a keyword parameter which specifies the output class to which system messages for your job are to be routed. Output class is an alphabetic (A thru Z) or numeric (0 thru 9) character. The default for MSGCLASS parameter will be A. System messages and output data sets can be routed to the same output class. You can code the MSGCLASS parameter in the Job statement and the SYSOUT parameter on the DD statement.

Q What is MSGLEVEL parameter ?
A It is a keyword parameter which indicates what job output is to be written as a part of output listing. The following outputs can be requested: the Job statement;all input job control statements;allocation, disposition and allocation recovery messages(allocation/termination message)MSGLEVEL=(statements, messages)Statements:- 0 - only the job statement is to be written;- 1 - all input control statements, cataloged procedure statements and the internal representation of procedure statement parameters after symbolic parameters substitution are to be written;- 2 - only input job control statements are to be written;Messages:- 0 - No allocation/termination messages are to be printed unless the job terminates abnormally;- 1 - All allocation/termination messages are to be printed.

Q How can you check for syntax or JCL errors without actual execution of a job ?
A TYPRUN=SCAN should be specified on a job card

Q What is the difference between the COND parameter specified on the EXEC statement and the one specified on the JOB statement ?
A COND parameter specified on EXEC statement determines whether step should be bypassed or executed.COND parameter defined on the JOB statement will determine whether Job should be terminated at a certain point or continued. When COND parameter is defined on the JOB statement, the system evaluates condition specified in the COND parameter before beginning of any job step and compares the code specified in the COND parameter with the return code of all previous jobsteps. If that condition is true, the rest of the job steps are bypassed.



JCL Questions.

1. What are all the Jcl statements used in Jcl? & What are the jcl statements you have coded so far?
A: JOB, DD , EXEC, INCLUDE.

2. What is the difference between the Positional parameters & keyword parameters, give examples where they are used?
A: Positional Parameters ----
Keyword Parameters ---- To specify in the JCL. Positioned wise specified.
Used along with DD, JOB statement.


3. What are the operands coded in a JOB statement?
A: Access, Room, Time , Msglevel, Msgclass, Notify, Typrun

4. How many characters can be coded for a jobname? What were you coding as a jobname?
A: Eight. Userid with two extra characters.

5. What is the difference between the Comment statement and the Comments? How they were coded in a jcl?
A:
They are coded in the JCL as “ //* Comments ”


6. How will you check the syntax of the JOB without executing it?
A: Typrun = Scan in the job card information will let us know the error in the JCL..

7. What are all the parameters needed in a DD statement to create a dataset thru Jcl? How a Partitioned dataset is created through JCL?
A: DD statement, Disp parameters , unit , volume , Space will be coded along with DD.
DD DSN= Dataset-name DISP= ( NEW, DELETE, KEEP )
DCB=( DSORG= PO, LRECL = 80 , BLKSIZE = 800 )

8. How is the Catalog procedure called from a JCL, if it is lying in your own datasets?
A: Through EXEC Proc-Name statement.


9. What is the difference between the Instream Procedure & Catalog Procedure?
A: Instream procedure is coded in the same JCL. Catalog procedure has to be called

10. What is the Symbolic parameter? What for it is needed? Where it is most commonly used?
A: Symbolic Parameter is used to pass the value to the Proc.

11. Can you explain the DISP Parameter in detail? What are the default DISP Parameters?
A: DISP = ( Status , normal_d , abnormal_d )
Status--- New , Old , Mod  To specify whether the dataset is existing or the new.
Normal Disposition --- Delete, Keep  Action to be taken when succesful
Abnormal Disposition --- Delete , keep  Action to be taken when not succesful
Default (New , delete, Delete ).
Default (Old, keep, keep)
Default (Mod, keep, keep)


12. What is the difference between the Referbacks & Overriding parameters? How are they coded in a JCL?
A:

13. How do you pass parameters to a program coded in an EXEC statement?
A: By specifying Parm =

14. In how many ways can you create a VSAM dataset? Thru JCL How will you create a VSAM dataset ? Can you write a JCL for this?
A: Using DD statement.


15. What is a GDG? How will you create a GDG? Can a GDG be used for Partitioned Datasets?
A: Generation Dataset Group , Chronological relation between physical datasets.
Define GDG( NAME )
Limit(nnnn)
Empty/Noempty
Scratch/ NoScratch



16. What are the parameters used in creating a GDG? Explain in detail? Can you alter
the parameters for the existing GDG? If yes, How?
A: Define GDG( NAME )
Limit(nnnn)  No. Of generations to be created
Empty/Noempty  When the limit reaches what action has to be taken.
Empty  Empties the datatset when the limit is reached.
NoEmpty  When the level is reached only the oldest generation will be
deleted.
Scratch/ NoScratch  When the dataset is deleted Scratch will delete the
Generation completely. NoScratch will uncatalog the dataset.
GDG parameters can be altered.

17. What for the Model dataset used for a GDG? How much space will you give to the Model Dataset?
A:

18. How many Maximum generations can be created for a GDG? How will you create a Generation dataset?
A: 255. Using DD statement
DD dsn= xxx.yyyyyy. zzzzzz. G000001.v000001(+1).

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

20. What is SOC7 abend? How do you resolve it?
A: Data movement error . When an alpha numeric item is moved to numeric item field.

JCL

Describe the required JCL statements in a job.
JOB statement; EXEC statement; DD card

What are the functions of the JOB card ?
The JOB statement identifies characteristics about the job such as job name, accounting information, restart instructions, job class, holds a job for later execution and set time limits.

What are the functions of the EXEC statement ?
The EXEC statement identifies the beginning of each job step; states the program to be executed; the name of the job step; gives conditions for bypassing or executing a job step; sets cpu time limits and passes parameters to to the program

What are the functions of the DD statement ?
The DD statement assigns a DD name; identifies a dataset name; may specify the volume the dataset is stored on; the format of the records in the data set; whether a data set is old or new and the record length and block size of newly created data sets.

When would you use a catalogued PROC ?
A PROC is used when the same set of JCL statements are used repeatedly with little or no change.

Describe the three values of the DISP (disposition)parameter for an existing dataset.
SHR means the dataset is shared by multiple jobs.
OLD means only one job can access the dataset.
MOD means data written to the dataset is appended.

What does the second and third subparameter of the DISP parameter mean ?
The second would be what to do with the dataset after the step normally ends while
the third would be what to do with the dataset after the step abends.

If the DISP parameter is left out, what would be the default ?
The default DISP would be (NEW,CATLG,CATLG).

If the third subparameter of the DISP parameter is left out, what would be the default ?
It would default to the second subparameter.

How do you start a job at a specific job step rather then at the beginning ?
Indicate RESTART on the JOB statement and the name of the job step to begin execution.

What if the step you want to restart is inside a PROC ?
Code RESTART=Jobstepname.Procstepname, wherein the Jobstepname is found within the job and EXECs the procedure and the Procstepname is found within the PROC.

What are the 4 keywords used with DCB ?
DCB stands for data control block. The keywords associated with the DCB parameter are LRECL(record length), RECFM(record format), BLKSIZE(block size) and DSORG(sequential or partioned data set).

What is the purpose of the PARM keyword in the EXEC statement ?
The PARM keyword passes data to the executing program

What is the TIME keyword and where is it used?
Indicates 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.

Explain the SYSOUT parameter.
Specifies the output device you want your output written to.

How do you concatenate datasets ?
Specify more than one dataset on the same DD statement like so:
//ddname DD dsn=dataset1,disp=shr
// DD dsn=dataset2,disp=shr
// DD dsn=dataset3,disp=shr

Given the example shown below:
//ddname DD dsn=dataset1,disp=shr
// DD dummy
// DD dsn=dataset3,disp=shr
What happens here ?
dataset3 is skipped as a result of coding the DUMMY parameter in the middle.

How do you assign default and specific values to a symbolic parameter ?
Default values are specified by assigning values in the procedure on the PROC statement. Specific values are assigned on the EXEC statement of the calling procedure.

When should you use a symbolic parameter ?
When a parameter in a procedure varies each time the procedure is called.

If you want to include run instructions/documentation in your job, what do you do ?
Enter the instructions as comments by preferencing them with //*

What does RLSE mean on the following: SPACE=(TRK,(25,25),RLSE) ?
The system will release any unused tracks after allocating the requested space.

Explain what will happen to a dataset with this DISP parameter upon completion of the job: DISP=(NEW,CATLG,DELETE)?
If the job runs successfully, the dataset will be created and cataloged. If the job abends, the dataset will be deleted.

What are the DD names of the DD statements used to specify where the load modules are stored for a job step ?
//STEPLIB DD DSN=... right after the EXEC PGM= card
For the entire job ?
//JOBLIB DD DSN=... right after the JOB card
If both are coded, which one takes effect ?
The load module found in the load library coded on the STEPLIB statement.

How do you suppress reading or writing a dataset without making program changes ?
By coding the DUMMY parameter on the DD statement of the dataset.

What utility do you use to copy a sequential dataset?
IEBGENER or IDCAMS with the REPRO option. "SORT" will also do the job with the exception of a sorted output dataset.

What utility do you use to delete or catalog a dataset ?
IEFBR14
Please elaborate.
IEFBR14 does nothing so the subparameter values of the DISP parameter on the DD statement are used to delete or catalog the dataset.

Describe a GDG generation data group.
A group of datasets with the same base name that have chronological occurrences called generations. Each generation is referenced by it's base dataset name followed by the generation number. Example: SYS3.MASTER.G0101V00 and SYS3.MASTER.G0102V00 where SYS3.MASTER is the base name followed by a chronological generation number.

What is the difference between an absolute and a relative generation ?
GDG datasets can be referred to by using its absolute or relative generation number.
Absolute generation or G0000V00 number (by its naming format) would give you the complete GDG dataset name.
Relative generation is exactly what it says (0-current,-1-previous,+1-next one to be created). After a job completes or abends, the absolute generation numbers would be resolved.

How can you prevent repeatedly changing the generation numbers in a job that executes daily? It reads the current and previous generations and creates a new generation of SYS3.MASTER ?
By referencing them using their relative generation numbers:
Name the current generation: SYS3.MASTER(0)
Name the previous generation: SYS3.MASTER(-1)
Name the newly created generation: SYS3.MASTER(+1)

If a job abends and a (+1) generation that was created previously will be used in the next subsequent step(s), what do you do before you restart ?
Change your JCL to refer to this as a (0) generation because it is now the current generation.
This is assuming that the (+1) generation created was the most current and there was no (+2) created etc.

If you defined a GDG with a limit of 90, what happens when the 91st generation is created ?
Generation one rolls off and is automatically deleted.

Identify the 2 uses of the TYPRUN parameter on the JOB statement ?
TYPRUN=HOLD will submit the job in the queue but suspend it's execution until it is released.
TYPRUN=SCAN allows the JCL in the job to be checked for syntax errors without executing the job.

What is a procedure ?
A JCL stream called by the executing job by specifying it's name on the EXEC statement.

What is the difference between a catalogued and an instream procedure ?
A catalogued PROC name would be in the EXEC statement, but the actual procedure resides in a different dataset library. This gives added flexibility as far as being able to make changes to just the PROC without touching the job since this PROC can be used in more than one job.
An instream PROC would be found inside the job itself preceded by the word, PROC, and ends with the word, PEND (the EXEC statement should be after the PEND).

How do you specify where catalogued procedures reside ?
By using the PROCLIB statement which specifies what libraries to search before executing the PROC (the new way of doing this is by using the JCLLIB ORDER=(lib1,lib2,...) statement).

Can you have instream data inside a catalogued procedure ? How do you resolve this ?
No. You can read instream data by doing an override to the DDname inside the PROC. This override would be coded inside the job itself after the EXEC PROCname statement:
//DDname DD * followed by instream data in subsequent lines.

What utility would you use to print a sequential dataset ?
IEBGENER with the output directed to SYSOUT=*. This assumes that the MSGCLASS parameter on the JOB statement is pointing to a proper output class.

What is a S322 abend ?
The executing job has run out of time.

What is the difference between a S222 and S322 abend code ?
A S222 abend code means the job was cancelled by the operator. A S322 means that the job needs more time to run.

How do you fix a SB37 abend ?
Increase the primary and/or secondary space specified on the SPACE parameter of the DD statement for the dataset specified in the error message.

What is a S013 abend code ?
DCB conflict; often LRECL specified does not match the record length of the file in the COBOL program

What is a S806 abend code ? How do you resolve this ?
Program module specified in the EXEC PGM= statement could not be found. First, check if a STEPLIB is coded and all concatenated libraries for this program. Second, check the JOBLIB statement and all concatenated libraries for this program. Last, check the system linklist if the program is there.

How do you resolve a S80A or S804 abend ?
Increase the REGION specified on the JOB and/or EXEC statement(s).

What is a S913 abend code ? How do you resolve this ?
You lack the authority to read or update the dataset. Talk to the security administrator so your ID has the necessary authority.

What is the difference between a system and a user abend ?
A system abend is issued by the operating system while a user abend is issued by an application program and starts with the letter, U, followed by a number. Usually an application program displays a message before issuing a user abend to help the on-call programmer diagnose the problem.

How do you change the return code ? How is this different from a user abend ?
In the COBOL program, move a 4-digit number to RETURN-CODE before issuing the GOBACK statement. This is different from a user abend because it does not abend, but issues a non-zero return code which can be used to affect subsequent steps.

What parameter do you use to execute the next job step even though the preceding job step was unsuccessful ?
COND=EVEN coded in subsequent steps.

What parameter do you use to execute the next job step only if the preceding job step was unsuccessful ?
COND=ONLY coded in subsequent steps.

What parameter do you use to execute a job step only if the preceding job step has zero return codes ?
COND=(0,NE) coded in subsequent steps.

What if the highest permissible condition code is 4, how do you code this ?
COND=(4,LE) coded in subsequent steps.

Q1:How many levels of nesting is allowed in PROCs?
Ans-1. 15

Q2:If the "DISP=" keyword is not coded for an existing dataset, what default values will be used for "DISP="?
Ans-2. If the "DISP=" keyword is not coded ,then the DEFAULT Values are : DISP=(NEW,DELETE,DELETE)

Q3:If the "DISP=" keyword is not coded for a new dataset, what default values will be used for "DISP="?
Ans-3. If the "DISP=" keyword is not coded ,then the DEFAULT Values are : DISP=(NEW,DELETE,DELETE)

Q4:What does COND=ONLY mean?
Ans-4. - It means that job step will be executed only if previous steps abnormally terminate

Q5:What does COND=EVEN mean
Ans-5. It means that job step will be executed even if one of the previous steps abnormally terminates



JCL QUESTIONS


1. Question: HOW MANY POSITONAL PARAMETERS ARE THERE IN JOBSTATEMENT?
Answer: THER ARE TWO POSITION PARAMETERS IN JOB STATEMENT.

2. Question: What are three parameters you can specify on Job statement as well as on exec stmt ?
Answer: Time , Region and Cond parameters

3. Question: How can you trap abends in the JCL?
Answer: Use IF ABEND statement in the JCL.

4. Question: How do you restart a step in JCL?
Answer: Use RESTART=step name.

5. Question: how do you pass parameters to the program as the job is being executed ?
Answer: by using 'parm' parameter in exec statement. the value mentioned here should be declared in linkage section in the program and process thru procedure division. this technique is very useful when you do not know the parameters at the time of coding the programs.

6. Question: Why do you use a control card?
Answer: A control card can be a member of a pds or a sequential data set and is used for storing the date fields, Definitions of VSAM files....etc. You use control card because you cannot use a in-stream procedure in a procedure. Generally you will be calling a Proc from your JCL and you cannot code in-stream procedure in the Proc and so you will point to the data set which is called control card.

7. Question: How do you submit JCL via a COBOL program? For the above question the solution is as follows..
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.

8. Question: How do you submit a JCL under CICS environment ?
Answer: pass all the JCL codes to a COBOL variable(should be declare using OCCURS class) and the write the line one by one to the spool using CICS commands like SPOOLClose SPOOLOpen SPOOLWrite . For more help refer CECI of CICS or CICS manual

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



10. Question: Definition of COND p-r in JCL and a correction to a previously posted question
Answer: COND is a condition parameter, consists of 2 sub-parameters, 1st - return code from the previous step, 2nd - condition. If COND is true, the step on which COND is coded will be BYPASSED.

11. Question: Q) WHAT IS MEANT BY S07C AND S0C30 SYSTEM ABEND CODES
Answer: A) S0C7 - Data exception error - you will get it whenever you are trying to move the low values or spaces into the numeric field, or compare the numeric fields with low values, or try to do some arithmetic operations on the low values. To avoid this you have to always initialize the numeric fields otherwise they will contain the low values.S0C 30 - I have never heard of it, let you know if I come across it.

12. Question: How to pass the temp data set form one JOB step to another?
Answer: By specifying the DISP as PASS for the temp data set

13. Question: What is a COND parameter in JCL?
Answer: COND means condition parameter. It is compared with system return code of previous step.
//step1 exec pgm=abcd
//step2 exec pgm=xyz, cond=(4,lt)step2 will be executed when system return code of step1 is less than 4.

14. Question: WRITE A JCL TO EXECUTE A JOB BY 7 A.M ON JAN 20,1986 ?
Answer: THE code IS : //*MAIN DEADLINE=(0700,B,012086)

15. Question: HOW MANY TYPES OF LIBRARIES ARE THERE IN JCL ?
Answer: LIBRARIES ARE OF THREE TYPES.
1.SYTEM LIBRARIES: SUCH AS SYS1.LINKLIB
2.PRIVATE LIBRARIES: SPECIFIED IN A JOBLIB OR STEPLIB DD STATEMENTS.
3.TEMPORARY LIBRARIES:CREATED IN A PREVIOUS STEP OF THE JOB.

16. Question: WHAT U MEAN BY INCLUDE STATEMENT IN JCL ?
Answer: AN INCLUDE STATEMENT IDENTIFIES A MEMBER PF A PDS OR PDSE 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.

17. Question: THE MAXIMUM NUMBER OF IN-STREAM PROCEDURE YOU CAN CODE IN ANY JCL IS ?
Answer: 15.

18. Question: What you mean by skeleton JCL?
Answer: JCL which changes during run time i.e. the values for the JCL such as pg. name ,DD name will change .i.e. same JCL can be used for various job, equivalent to dynamic SQL...



19. Question: what is JCL
Answer: it is interface between operating system(mvs) & application program. when 2 related programs are combined together on control statements is called job control language


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



21. Question: What are the basic JCL Statements for a Job?
Answer: 1.JOB : Identifies a job and supplies accounting inf. 2.EXEC : Identifies a job step by indicating the name of the program to be executed. 3.DD : Identifies a data set to be allocated for the job step 4.Delimiter (/*): Marks the end of an in-stream data set 5.Null(//):Marks the end of a job 6.Comments(//*): Provides Comments 7.PROC : Marks the beginning of a procedure 8.PEND : Marks the end of a procedure 9.OUTPUT: Supplies options for SYSOUT processing.

22. Question: 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.

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

24. Question: what is the purpose of include statement in a JCL?
Answer: It is used as an alternative for steplib. When we specify the data set name in include ,it will search in all the data sets specified in the include data set.

25. Question: IS IT POSSIBLE TO KNOW THE REMAINING FREE SPACE IN AN CONTROL INTERVAL/CONTROL AREA ONCE AN INSERTION HAS BEEN MADE.
Answer: NOT POSSIBLE

26. Question: what does soc04 error mean?
Answer: this error is faced when we execute the COBOL program, the main reason for this error is that a variable is defined with less characters and we are trying to move data which is larger than the actual storage space.

27. Question: In which table PLAN is registered in ?
Answer: RCT

28. Question: GDG?
Answer: GDG - group of data set that are logically or chronologically related, referred by name and a relative generation number - an integer which identifies the generation of a data set and is coded in parentheses after data set name. Absolute GDG name - GxxxxVyy, where xxxx-absolute gen.number, yy-version number. Can be sequential, direct, partitioned. (VSAM - no). Must always be cataloged. Advantage - all data sets have the same name and system keeps track of adding new and retaining previous generations and deleting oldest successive generation. To create a GDG we create a GDG index in the system catalog with IDCAMS utility and then a model (prototype, DSCB) on the same volume to supply DCB information. Empty - when limit is reached all members are removed from the index, otherwise-only oldest. Scratch-removed members are uncataloged & deleted, otherwise - removed & uncataloged, but remain in the system (not members of GDG any more). GDG number is updated at the end of the job. If number is not specified all generations will be processed from the beginning

29. Question: what do you mean By spooling? Expand SPOOL?
Answer: This is managed by JES. This is used for Queuing the Outputs that are intended for Printing and are first stored in SPOOLDASD. This can be managed Using

30. Question: How many Instream-Procedures(procs) can be Coded in a single Job?
Answer: The Answer is: 15

31. Question: FOR HOW LONG A JOB CAN BE EXECUTED CONTINUEOUSLY IN A MAINFRAME
Answer: 248 DAYS

32. Question: MAX. NO OF DD STATEMENTS IN A JOB
Answer: 3273

33. Question: HOW MUCH SPACE OS ALLOCATES WHEN YOU CREATE A PS OR PDS?
Answer: 56 KB

34. Question: MIN NO OF DATASET NAMES(PDS) IN ONE DIRECTORY BLOCK?
Answer: SIX

35. Question: THE MAXIMUM NUMBER OF STEPS IN A JOB?
Answer: 255

36. Question: 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.

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

38. Question: What 3 guidelines do we have to follow when concatenating DD statements?
Answer: 1. Data sets must be of the same type (disk or tape)
2. All data sets must have the same logical record length
3 The data set with the largest blocksize must be listed first.



39. Question: On the DD statement, what is the main difference between creating a new sequential flat file and a partitioned data set?
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.



40. Question: What is the difference between IEBGENER, IEBCOPY and REPRO in IDCAMS utility?
Answer: IEBGENER -- This is a data set utility for copying sequential data sets which produces a PDS or a member from a sequential data set. IEBCOPY -- This is a data set utility for copying one PDS to another or to merge PDSs. REPRO -- This is for copying sequential data sets. More or less same as the IEBGENER.RAVI



41. Question: How do you submit JCL via a COBOL program?
Answer: Use a file //dd1 DD sysout=(*,intrdr)write your JCL to this file. Pl some on try this out.

42. Question: How to execute a set of JCL statements from a COBOL program
Answer: Using EXEC CICS SPOOL WRITE(VAR-name) END-EXEC command. var-name is a COBOL host structure containing JCL statements.

43. Question: What is the difference between static call & Dynamic call
Answer: In the case of Static call, the called program is a stand alone program, it is an executable program . During run time we can call it in our called program. As about Dynamic call , the called program is not an executable program it can executed thru the called program

44. Question: What is the difference between catalog procedure and In-Stream procedure?
Answer: In Stream procedures are set of JCL statements written between JOB and EXEC statements, start with PROC and end with PEND statement. Mainly used to test catalog procedures. Cataloged procedure is cataloged on the procedure library and is called by specifying the procedure name on the EXEC statement.

45. Question: 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).

46. Question: What is the error code SOC01 indicate ?
Answer: Operation exception error For eg a data set open error

47. Question: What is a procedure?
Answer: A set of pre-coded JCL that can be modified through the use of parameters or override cards. Note: Procedures can be catalogued or in-stream.

48. Question: What does SYSIN * indicate?
Answer: In-stream data follows this card and is terminated when followed by a card containing // or /* in columns 1 and 2.


49. Question: What are three major types of JCL statements? What are their functions?
Answer: JOB, EXEC, DD. JOB - indicates start of job-stream to the operating system and through parms coded on it, certain details about the job (time, region, message level, job accounting data). EXEC - indicates the start of execution of a particular job step, be that step a program or a proc. DD - is a data definition, which is used to describe the attributes of a data set (name, unit, type, space, disposition).

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


 If JCL using RACF file, we need to give user id and password in JOB statement.

//JOB1 JOB (M060, CCCC),'XXXXXXXXXXX',
// MSGCLASS=E, REGION=3000K, NOTIFY=&SYSUID,
// USER=XX1111, PASSWORD=XXXXXXXXX
// JCLLIB ORDER=XXXX.OFFSHORE.JCL.FEB06
//STEP1 EXEC PRC
//STEP2.DDNAME DD DSN=XX1111.INSERTS.XXXXXXXX.FEB5
// DISP=SHR