Enable Deferred File Creation

Enable the Deferred File Creation feature to facilitate the creation of development work areas.
Endevor 18.1
As an
Endevor
administrator, you can enable the Deferred File Creation feature to facilitate the creation of development work areas for your developers and their development process.
Instead of having to predefine all the data sets that are associated with an
Endevor
development work area, this feature allows the creation of Base, Delta, Source Output, and Processor Output files when the first attempt at allocation fails because the file does not exist. This feature works by allowing you to specify the parameters that are needed to allocate the files as
new
files.
Endevor
symbols can be used in the file specifications to allow a single entry in the Deferred File Creation member to be used for the allocation of files based on their location within the
Endevor
systems and lifecycle.
The Deferred File Creation feature is enabled by completing three procedures.
Follow these steps:
  • Files that are specified on your Type definition (Base, Delta, Source Output) must be defined with symbols in their names in order to take advantage of Deferred File Creation. Files that are specified on a Type definition that are explicit
    must exist
    in order for the Type to be defined successfully.
  • Endevor
    files that can be created with the Deferred File Creation process, and that are used as
    input
    in your processors (for example, files used in a SYSLIB DD statement) should be specified in the processor input DD statement with the ALLOC=COND parameter, which will only allocate the file if it exists. This specification of files avoids unnecessary attempts to create files that remain empty. Attempted creation of the file by the Deferred File Creation process might fail because the file might not match an entry in the Deferred File Creation member.
Allocation of processor input files that do not exist
will automatically be skipped
if the
ALLOC=LMAP
or
ALLOC=PMAP
parameter is specified. In other words, if DFC is active and a DD is coded in your processor with ALLOC=LMAP or ALLOC=PMAP, any file in the concatenation that does not exist will have its allocation automatically skipped (the allocation of each file becomes conditional) as if COND was also specified as part of the ALLOC parameter. The file is not created by the DFC process.
Review Process for Defining Development Work Areas
Review or create the process for defining development work areas within
Endevor
for the developers at your site to determine whether the Deferred File Creation process would be a benefit in defining and creating these work areas.
Configure C1DEFLTS for Deferred File Creation
To enable the Deferred File Creation feature, you must update your C1DEFLTS table.
Follow these steps:
  1. Define the name of the Deferred File Creation member to your C1DEFLTS table TYPE=MAIN section using the DFCMBR= parameter.
  2. Reassemble your C1DEFLTS table.
Create Deferred File Creation Member
To enable the Deferred File Creation feature, a member must be added to your PARMLIB data set that defines the parameters necessary to allocate files as
new
when they are being allocated for the first time and the allocation fails because the file does not exist.
The Deferred File Creation member contains statements that will be parsed at element action execution time and used during file allocations if a file does not exist. You can use
Endevor
symbols to define your data set names within this member. Substitution for these symbols takes place at file-allocation time
before
input data set- or path name-matching against the entries in the Deferred File Creation member takes place.
Follow these steps:
  1. Create the Deferred File Creation member using the following syntax diagram.
  2. Add the Deferred File Creation member to your PARMLIB.
  3. Validate the Deferred File Creation member by running
    Endevor
    with the EN$TROPT (the
    Endevor
    Options Trace) DD statement. The Deferred File Creation member is printed as part of this trace if it is successfully parsed. If a parsing or other error occurs, messages should be visible in the output. An error in the Deferred File Creation member does not terminate the execution and will
    not affect
    the return code.
Syntax Diagram
The Deferred File Creation member can contain two types of statements: DSN and PATH
DSN Statement
|<------------------------------------------------------------<| >>-+- DSN 'data.set.name.with.symbols' ------------------------------> | >--+------------------------------------------+----------------------> |- LIKe 'like.data.set.name.with.symbols' -| | | * The specification of the MODEL keyword indicates this | * DFC entry is for the creation of a VSAM data set. | >--+--------------------------------------------+--------------------> |- MODel 'model.data.set.name.with.symbols' -| | | | >--+---------------------------------------------+-------------------> |- INItialization -+-----------+- 'progname' -| | |- PROgram -| | |- PGM -| | | >--+-----------------+-----------------------------------------------> |- UNIt unitname -| | | >--+---------------------------+-------------------------------------> |- SPAceunits -+- CYLs ---+-| | |- TRKs ---| | | >--+-----------------+-----------------------------------------------> |- PRImary nnnnn -| | | >--+-------------------+---------------------------------------------> |- SECondary nnnnn -| | | >--+-----------------+-----------------------------------------------> |- DIRblks nnnnn -| | | >--+--------------------------------+--------------------------------> |- DSNType ----+- PDS ---------+-| | |- PDSE --------| Same as LIBrary | |- LIBrary -----| | |- EXTReq ------| | |- EXTPref -----| | |- BASic -------| | |- LARge -------| | | >--+--------------------------------+--------------------------------> |- DSOrg ------+- DA ----------+-| | |- DAU ---------| | |- PO ----------| | |- POU ---------| | |- PS ----------| | |- PSU ---------| | | >--+----------------------+------------------------------------------> |- VERsion ----+- 1 -+-| PDSE only | |- 2 -| | | >--+-----------------+-----------------------------------------------> |- MAXgens nnnnn -| PDSE V2 only | | >--+----------------------------+------------------------------------> |- RECfm ------+- F -------+-| Most RECFM values are | |- FB ------| supported. This is a | |- FBA -----| sample list only. | |- V -------| | |- VB ------| | |- VBA -----| | |- U -------| | | >--+---------------+-------------------------------------------------> |- LREcl nnnnn -| | | >--+-----------------+-----------------------------------------------> |- BLKsize nnnnn -| | | >--+---------------------+-------------------------------------------> |- STOrclas storclas -| | | >--+---------------------+-------------------------------------------> |- MGMtclas mgmtclas -| | | >--+---------------------+-------------------------------------------> |- DATaclas dataclas -| | | >--+-----------------+-----------------------------------------------> |- VOLume volume -| | | * The following parameters are
only
for ELIB initialization. | * ALLOCATE PAGES
must
be coded for ELIB initialization to take place. | >--+---------------------+-------------------------------------------> |- PAGe SIZe = ##### -| | | >--+----------------------------------+------------------------------> |- ALLocate PAGes = (#####,#####) -| | | >--+-------------------------+---------------------------------------> |- REServe PAGes = ##### -| | | >--+----------------------------+------------------------------------> |- DIRectory PAGes = #####> -| | | >---- . ----------------------------------------------------------+-><
PATH Statement
The PATH statement is used for the automatic creation of USS directories.
|<------------------------------------------------------------<| >>-+- PATh -+--------+- '/uss/path/name/' ---------------------------> |- NAMe -| | | |- MODe 777 -| | >--+------------+----------------------------------------------------> | >---- . ----------------------------------------------------------+-><
Syntax rules:
  • Comments are allowed. You must code an asterisk (*) in column 1.
  • Multiple statements are allowed.
  • All keywords other than DSN or PATH are optional.
  • Data set or path names are not checked for validity.
  • Wildcarded data set or path names are
    not
    supported.
  • Endevor
    Site and C1 symbols in data set or path names are supported, including the LIKE and MODEL parameter data set names.
    For all non-VSAM data set allocations, the allocation parameters that are supplied in the DFC member are used as input to Dynamic Allocation, and produce the same results as their JCL equivalents. For example, if you specify a RECFM of FB and an LRECL of 80 but no BLKSIZE for a DFC entry, you get the same default BLKSIZE as you would if the file was allocated by JCL.
    The LIKE parameter causes most attributes of the "liked" data set to be inherited by the target data set. Notably, the BLKSIZE attribute is not inherited. If a particular BLKSIZE is required, you must supply one. Supplying a BLKSIZE is especially important for RECFM U data sets (typically load libraries). If a RECFM U data set is created with no BLKSIZE supplied, that data set will most likely be created with a BLKSIZE of zero and be unusable.
    When allocating a PDSE, if you do not supply a LIKE parameter, you must include “DSNTYPE LIBRARY” or “DSNTYPE PDSE” and “DSORG PO” or “DIRBLKS”. If you do not include either DSORG PO or DIRBLKS, the file will be allocated as DSORG PS. This behavior is the same as in a JCL allocation.
  • For a DSN statement, there are no default values. New allocations will be done with whatever parameters are specified.
  • The LIKE and MODEL keywords are mutually exclusive.
  • The MODEL keyword
    must
    be coded if the DFC entry is for the deferred file creation of a VSAM data set.
  • A call to IDCAMS is made to allocate a new VSAM data set through DFC.
  • For a VSAM DFC entry, only the following additional parameters, other than MODEL (required) and ELIB initialization parameters, are supported: SPACEUNITS, PRIMARY, SECONDARY, STORCLAS, MGMTCLAS, DATACLAS, VOLUME. These additional parameters, if specified, override those specifications as found on the MODEL data set.
  • For VSAM file space requests, SPACEUNITS
    must
    be coded and PRIMARY must be greater than 0. Otherwise, they will not be included in the parameters passed to IDCAMS, and will be taken from the MODEL.
  • ALLOCATE PAGES must be coded if the DFC entry is for the deferred file creation of an ELIB data set.
  • Both BDAM and VSAM ELIB specifications are supported.
  • Only one volume can be specified.
  • The VERSION keyword is only supported for PDSE data sets. Specification of VERSION for a non-PDSE data set in the Deferred File Creation member will cause an SMS dynamic allocation error when that entry is used for deferred file creation.
  • The MAXGENS keyword is only supported for PDSE version 2 data sets. Specification of MAXGENS for a non-PDSE version 2 data set in the Deferred File Creation member is usually ignored when that entry is used for deferred file creation.
  • For a PATH statement, MODE defaults to 777 if the MODE parameter is not specified.
  • The specified path name
    must include the end slash.
    No error is generated but the attempted creation of the last specified directory will not take place, which will probably cause an error.
  • Attempts to create path name directories start from the full path name (not including the file name), then work backwards through each directory, one at a time, until the directory is successfully created or already exists. The same process is then used going forward through the path name until the end of the path name.
  • PATH and DSN statements can be intermingled. When matching occurs against the DFC entries for a data set name, PATH statements are ignored. When matching occurs for a path name, DSN statements are ignored.
  • If any keywords are specified more than once, last-in wins. No error is generated.
  • Statements are
    order-dependent
    and are matched against the input data set in the order in which they are coded. More explicit statements should be coded first.
The alternate ID must be granted the following authority:
  • EXEC authority for
    all
    subdirectories of the directory to be created.
  • WRITE authority for the current directory level that the alternate ID is going to perform a MKDIR (make directory) on.
For example, to create the last node of the directory
/a/b/c/d/
, the alternate ID must have EXEC authority for nodes a, b, and c, and must have WRITE authority for node c.
INITIALIZATION PROGRAM Parameter
The INITIALIZATION PROGRAM parameter allows for the initialization of a file through the Deferred File Creation process, and is only available on the DSN statement.
If an initialization program needs DD statements to do its processing, it is recommended that you use a separate step in your processor to allow the creation and initialization of the file to take place. A new program name specification is available to use in your processors for a step that is dedicated to the possible creation and initialization of a file through the Deferred File Creation process: PGM=DFCINITX
When specified as a step in a processor, PGM=DFCINITX indicate to
Endevor
that this step is dedicated to the Deferred File Creation process. The DD statement for the file to be created must be positioned after all the DD statements that are required for the initialization program so that those required DD statements are already allocated when the initialization program is called.
The following rules apply to the calling of a DFC initialization program
only
when the specified processor program is DFCINITX:
  • If the file to be created already exists at the time that the step is executed, no DFC processing takes place and no processor program call is made.
  • If PARM= is coded on the processor EXEC statement, the parameter is passed to the initialization program.
The following rules apply to the calling of a DFC initialization program in all cases:
  • The search sequence for the initialization program is the same as that for a processor program, including the STEPLIB DD statement when coded in the processor step.
  • If MAXRC is coded on the processor step, it is honored for the initialization program return code.
Examples
Example: Deferred File Creation Member
The following example shows Deferred File Creation member DSN statements and is meant to show the options that you have for allocating new files as they are needed by
Endevor
. The LIKE parameter is recommended for use, if possible, for your DSN entries for ease of coding. For VSAM entries, MODEL is required.
For RECFM=U data sets (usually LOADLIBs), when LIKE is coded, we recommend that you also code BLKSIZE. The block size is not copied to the newly allocated data set from the LIKE data set when RECFM=U.
* * These first entries are to see how symbols get resolved. * Data set names are not checked for validity. * DSN '&C1EN/&C1S#/&C1SY/&C1SU/&C1ELEMENT/&C1TY' . DSN 'Stage ID: &C1SI Stage Name: &C1ST' . * * Processor output libraries. * Site symbols begin with #. * DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..ELMOUT' LIKE '&#BASEPRFX..&C1SY..GA.&C1EN(1,1)&C1S#..ELMOUT' . DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..LOADLIB1' UNIT SYSDA RECFM U BLKSIZE 32760 SPACE CYLS PRIMARY 1 SECONDARY 5 DSNTYPE PDSE DIRBLKS 91 . DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..LOADLIB2' LIKE '&#BASEPRFX..&C1SY..GA.&C1EN(1,1)&C1S#..LOADLIB2' BLKSIZE 32760 . DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..LISTLIB' UNIT SYSDA RECFM FBA LRECL 133 BLKSIZE 26600 SPACE CYLS PRIMARY 5 SECONDARY 5 DIRBLKS 91 . * * Base, Delta and Source Output files. * * Type VBDATA base data set – VB-259 * This must be before the entry with &C1TY as last qualifier DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..VBDATA' UNIT SYSDA RECFM VB LRECL 259 BLKSIZE 27998 SPACE CYLS PRIMARY 1 SECONDARY 1 DIRBLKS 90 . * All other Type base data sets – FB-80 DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..&C1TY' UNIT SYSDA RECFM FB LRECL 80 BLKSIZE 27920 SPACE CYLS PRIMARY 1 SECONDARY 1 DIRBLKS 90 . * All DELTA files – VB-259 DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..DELTA' UNIT SYSDA RECFM VB LRECL 259 BLKSIZE 27998 SPACE CYLS PRIMARY 1 SECONDARY 1 DIRBLKS 90 . * Source Output files – FB-80 DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..SOL' UNIT SYSDA RECFM FB LRECL 80 BLKSIZE 27920 SPACE TRKS PRIMARY 5 SECONDARY 15 DSNTYPE LIBRARY VERSION 2 DIRBLKS 91 MAXGENS 7 . * * Sequential processor output file, 1 per element. * DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..&C1ELEMENT' UNIT SYSDA RECFM VBA LRECL 137 BLKSIZE 27998 SPACE TRKS PRIMARY 1 SECONDARY 1 DSORG PS . * * Sample BDAM ELIB specification. DSN '&#BASEPRFX..&C1ST..DELTA' * LIKE '&#BASEPRFX..&C1ST..MODLBDAM' DSORG DA LRECL 4096 BLKSIZE 4096 SPACE CYLS PRIMARY 10 SECONDARY 2 * ELIB initialization parameters... PAGE SIZE = 4096 ALLOCATE PAGES = (540,360) RESERVE PAGES = 150 DIRECTORY PAGES = 45 . * * Sample VSAM ELIB specification. DSN '&#BASEPRFX..&C1ST..LISTING' * MODEL indicates VSAM MODEL '&#BASEPRFX..&C1ST..MODLVSAM' * Other parameters supported for a VSAM file through DFC: ** SPACE CYLS ** PRIMARY 5 ** SECONDARY 5 ** STORCLAS storclas ** MGMTCLAS mgmtclas ** DATACLAS dataclas ** VOLUME volume * ELIB initialization parameters... PAGE SIZE = 4088 ALLOCATE PAGES = (499,100) RESERVE PAGES = 250 DIRECTORY PAGES = 50 .
Example: PROTSYM DFC Member Entry
The following sample shows a PROTSYM DFC member entry:
DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..PROTSYM' * MODEL indicates VSAM MODEL &#BASEPRFX..MODEL.PROTSYM INIT PGM IN25UTIL .
Example: Processor Step for Initializing PROTSYM if PROTSYM Does Not Exist
The following sample shows a processor step for initializing PROTSYM if PROTSYM does not exist:
* * Initialize PROTSYM if it does not exist... //PROTINIT EXEC PGM=
DFCINITX
//STEPLIB DD DISP=SHR,DSN=SYS1.PROTSYM.LOADLIB //SYSUDUMP DD SYSOUT=* //MESSAGE DD SYSOUT=* //CARDS DD * PASSWORD=PASSWORD INITIALIZE REPORT //* File that may be created
must
be after the last DD statement //* required by the initialization program. //* If the file exists, DFC processing will not take place. //PROTSYM DD DSN=NDVR.&C1SY..&C1SU..&C1ST..PROTSYM,DISP=SHR
The
Endevor
site symbol &#BASEPRFX. resolves to NDVR at execution time.
Example: VSAM DFC Member Entry with a Requirement for an Alternate Index
The following sample shows a VSAM DFC member entry with a requirement for an alternate index:
Sample VSAM DFC member entry with a requirement for an alternate index DSN '&#BASEPRFX..&C1SY..&C1SU..&C1ST..VSAMCL' * MODEL indicates VSAM MODEL &#BASEPRFX..MODEL.VSAMCL INIT PROGRAM IDCAMS
Example: Processor Step for Initializing VSAM File with Alternate Index if VSAM File Does Not Exist
The following sample shows a processor step for initializing the VSAM file with an alternate index if the VSAM file does not exist:
* * Create VSAM file with alternate index if it does not exist... //IDCAMS1 EXEC PGM=
DFCINITX
//SYSPRINT DD DSN=&&SYSPRT,DISP=(OLD,PASS) //SYSIN DD * REPRO INFILE(INPDATA) OUTFILE(VSAMCL) DEFINE AIX ( NAME(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX) - RELATE(&#BASEPRFX..&C1SY..&C1SU..&C1ST..VSAMCL) - RECORDSIZE(80 80) - KEYS(16 16) TRACKS (1 1) - SHAREOPTIONS(2 3) SPEED IMBED - NONUNIQUEKEY UNIQUE UPGRADE - ) - DATA ( NAME(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX.DATA) - CONTROLINTERVALSIZE(4096) - FREESPACE(10 1) - ) - INDEX ( NAME(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX.INDEX) - ) BLDINDEX INFILE(VSAMCL) - OUTDATASET(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX) DEFINE PATH ( NAME(&#BASEPRFX..&C1SY..&C1SU..&C1ST..PATH) - PENT(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX)) LISTCAT ENT(&#BASEPRFX..&C1SY..&C1SU..&C1ST..VSAMCL) ALL LISTCAT ENT(&#BASEPRFX..&C1SY..&C1SU..&C1ST..AIX) ALL PRINT INFILE(VSAMCL) PRINT INDATASET(&#BASEPRFX..&C1SY..&C1SU..&C1ST..PATH) //* //INPDATA DD * 0000000000000001000000000000000Z 0000000000000002000000000000000Y 0000000000000003000000000000000X //* File that may be created
must
be the last DD statement... //* If the file exists, DFC processing will not take place. //VSAMCL DD DISP=SHR,DSN=&#BASEPRFX..&C1SY..&C1SU..&C1ST..VSAMCL //*
Example: PATH Statements in the DFC Member
The following sample shows PATH statements as they might be coded in the DFC member:
* MODE not set, MODE 777 is the default PATH NAME '/u/users/endevor/&C1ST/&C1TY/' . PATH '/u/users/endevor/&C1ST/&C1TY/SOL/' MODE 775 . PATH '/u/users/endevor/&C1ST/&C1TY/LISTING/' MODE 755 .
Consider the following information when you code PATH statements in the DFC member:
  • Always end your path names with a slash.
  • DSN statements and PATH statements can be intermingled but are independent of each other and are order-dependent.