Miscellaneous parameters

Read syntax diagramSkip visual syntax diagram,ACPDB=YES,ACPDB=NO,APL=C' appl,DDA=NO,DDA=YES,DELEMPTY=NO,DELEMPTY=YES,DEV=A,DEV=BCD,EMPTYCHECK=NO,EMPTYCHECK=YES,FVN=0,FVN= versionnbr,GREG=REGR,GREG=REGC,GREG=REGS,KEYCHECK=NO,KEYCHECK=YES,PACKINHI=COND,PACKINHI=NO,PACKINHI=YES,PF0=LS,PF0=SS,PF0=LD,PF0=LD6,PF1=SS,PF1=LS,PF1=LD,PF1=LD6,PF2=LS,PF2=SS,PF2=LD,PF3=LD6,PLI=100,PLI= packlimit,SIZECHK=NO,SIZECHK=YES,SSU=N,SSU=CU,(MDBF,EXCLUDE,SSU=( ssunames)),(MDBF,SSU=( ssunames), overrides),SUFFIX= suffix,TM=NO,TM=YES,TRS= trailersize,UNIQUE=YESNO
Note: MDBF parameter statements are only used if SSU=U.
ACPDB
specifies whether this is a TPFDF file.
NO
specifies that this a non-TPFDF file. The v product uses the DBDEF macro definitions for chain chasing during the processing of recoup and CRUISE, but cannot access or manipulate the file using other macros and functions.
YES
specifies that this is a TPFDF file. The TPFDF product uses the DBDEF macro definitions for chain chasing during the processing of recoup and CRUISE, and can access and manipulate the file using other macros and functions. The file type must be R, W, T, or P. See File Names (DSECT Names) for more information about file types.
APL=C'appl'
overrides any application type that was specified in the first character of the 6-character DSECT name, where appl is a one-character type of application. For example: APL=C'G' See File Names (DSECT Names) for more information about application types.
DDA
specifies the distributed data access support.
Note: DDA is not allowed for P-type files.
DELEMPTY
specifies one of the following:
YES
specifies that the TPFDF product will delete empty blocks without packing the subfile. Setting DELEMPTY=YES requires the following:
  • The file must be R-type or W-type.
  • Backward chaining must be indicated by bit 0 of global set symbol &SW00OP1.
  • The DBDEF NODE parameter must be NO.
  • The DBDEF FVN parameter must be 0.
NO
specifies that the TPFDF product will delete empty blocks only when the subfile is packed.
Note: When specifiying DELEMPTY=YES for a W-type file that is the container for T-type LRECs (T-type DSECTs), application segments that are using DBDEL of that T-type DSECT must be reassembled.
FVN=versionnbr
identifies the version of a file, where versionnbr is a number from 0-254. For example, FVN=3 identifies the file as version 3. Other versions of the file can be defined with a different block layout.
Note: The DBDEF macro statements for the different versions of a file should be defined contiguously using increasing file version numbers. Only the first file version (FVN=0) is indexed in the DBDEF index table.
GREG
specifies the register call for global base.
REGR
specifies that R14 is the base register for global area 1.
REGC
specifies that R14 is the base register for global area 3.
REGS
specifies that R14 is the base register for global area 3.
KEYCHECK
specifies one of the following:
YES
validates the default keys before replacing or modifying an LREC that will prevent corruption of the file organization.
Notes:
  1. If you use global modification when KEYCHECK=YES, and any of the fields being modified overlap any default key fields for that primary key in the file, the TPFDF product issues a system error (DB0139) and processing ends. All records that were changed before processing ended remain changed.
  2. Before you can use global modification with KEYCHECK=YES in an ALCS environment, enable C language support. See TPFDF Installation and Customization for more information.
NO
does not validate the default keys before replacing or modifying the LREC.
PACKINHI
specifies if packing should be inhibited for this file during recoup phase 1:
COND
packing is inhibited only if this file includes a forward index path (see Forward Index Path Parameters) and bit 1 of &SW00OP2 is 0, indicating that pool blocks are reused during a pack operation. Packing is inhibited for these files because it is possible for recoup to miss index LRECs if they are moved to a block that has already been chain chased.
NO
packing is not inhibited for this file during recoup phase 1.
YES
packing is inhibited for this file during recoup phase 1.
Note:
  • The default for the PACKINHI parameter is specified by set symbol &INHIDEF in the DBLCL macro. See TPFDF Installation and Customization for more information about the DBLCL macro.
  • This parameter has no affect in an ALCS environment.
PF0
specifies the type of pool blocks that are associated with pool file 0 (PF0). The pool block type associated with PF0 is used by a TPFDF macro or function when the POOLTYP=0 parameter is specified with that macro or function. For example, when PF0=SS: DBOPN REF=IR00DFX,POOLTYP=0 opens a short-term pool block.
Note: For W-type files, the default is always short-term (SS) and must not be changed.
LS
Long-term nonduplicated pool.
SS
Short-term pool.
LD
Long-term duplicate pool.
LD6
Long-term duplicate pool, FARF6 address.
Note: Use this pool setting for new FARF6 files or for files that have been completely migrated to FARF6 addressing for both prime and overflows. If this setting is specified, you must ensure that the corresponding DSECT uses 8-byte file address headers and trailers. It should not be used for files that are in the process of being migrated. The DBDEF SW00OP5 bit settings are used to determine the pool type to be used for files that are being migrated. Files that use FARF6 overflow chains but continue to use FARF3/4/5 prime file addresses should not use this setting.
PF1
specifies the type of pool blocks that are associated with pool file 1 (PF1). The pool block type associated with PF1 is used by a TPFDF macro or function when the POOLTYP=1 parameter is specified with that macro or function. For example, when PF1=SS: DBOPN REF=IR00DFX,POOLTYP=1 opens a short-term pool block.
PF2
specifies the type of pool blocks that are associated with pool file 2 (PF2). The pool block type associated with PF2 is used by a TPFDF macro or function when the POOLTYP=2 parameter is specified with that macro or function. For example, when PF2=SS: DBOPN REF=IR00DFX,POOLTYP=2 opens a short-term pool block.
PLI=packlimit
specifies the packing limit in percentage, where packlimit is a decimal number from 50-100.

You can use PLI to specify the amount of space to which each block in the subfile should be packed. The value of PLI can be specified between 50% and 100%.

A value of 50% results in half of the space in each block being taken up. A value of 100% results in all of the space being taken up. The values for PLI are:

  • 50-100, for L1 and L2 size blocks
  • 75-100, for L4 size blocks.

Always specify a PLI value greater than the PIN value; otherwise, the file is always below the packing threshold and is packed continuously.

Note: Using the PLI parameter does not ensure that B+Tree files are packed unless there are no nodes in the B+Tree index. To ensure that B+Tree files are packed, use one of the following:
  • The ZUDFM OAP command
  • A ZFCRU command with the pack option
  • The DBCLS macro with the pack option
  • The dfcls function with the pack option.
SIZECHK
Specifies one of the following:
NO
specifies that TPFDF macros and functions that use search keys, search each LREC in the current core block.
YES
specifies that TPFDF macros and functions that use search keys, obtain a core block and copy the current LREC into that core block before searching the LREC in the copied core block. Specifying SIZECHK=YES prevents the TPFDF product from comparing a search key past the end of a data block, which could cause a TPF system error. Comparing a search key past the end of a data block could occur if any of the following are true:
  • The last field in an LREC of the data block has a variable length.
  • Short variable length LRECs are used in the data block.
  • A long variable length search key is specified with a TPFDF macro or function.
  • A search key that is longer than than the length of the searched LREC is specified with a TPFDF macro or function.
Note: While specifying SIZECHK=YES prevents the unlikely possibility of a system error, it significantly impacts system performance and additional system resources are required.
SSU
specifies the subsystem user.
N
ignores MDBF parameter statements coded in the DBDEF.
C
The file is common; MDBF parameter statements cannot be coded.
U
The file is unique. The U parameter only applies for the TPF system.

To aid in migrating database definitions from an MDBF system to a non-MDBF system, the SSU parameter can be set to N to override any MDBF parameter statements that are coded in the DBDEF.

      DBDEF FILE=zzzzzz,   standard DBDEF
             .........,     additional DBDEF parameters
             SSU=N,         ignore any MDBF parameters
             (MDBF,SSU=(DF,LH,AE),WRS=L4),
             (MDBF,SSU=(RF),WRS=L1,EO#=99),
             (MDBF,SSU=(RT),WRS=L1,EO#=9)
(MDBF,EXCLUDE,SSU=(ssunames))
prevents the specified subsystem users from issuing TPFDF macros and functions, where ssunames is a list of valid SSUs such as AF,LH,BA,AA. For example,
      DBDEF FILE=zzzzzz,   standard DBDEF
             .........,     additional DBDEF parameters
             SSU=U,         file is not common
             (MDBF,SSU=(AA,BA,UA),RBV=#TPFDB03),
             (MDBF,EXCLUDE,SSU=(RF))
Note:
  • The MDBF parameter only applies for the TPF system.
  • If an application program issues a TPFDF macro or functions from an excluded subsystem user, the application will end with a DB0137 system error.
  • Therefore, in the previous example, if an application program issues a TPFDF macro when it is in SSU RF, the application will end with a DB0137 system error.
  • It is important to code the EXCLUDE information so TPFDF utilities run only on the subsystem users that you select. The ZUDFM, ZFCRU, and ZRECP commands will not run on files in a subsystem user that has been excluded.
  • The specified subsystem user must be defined in the SSUDEF copy member or the DBDEF macro will send an error when it is assembled.
(MDBF,SSU=(ssunames), overrides)
provides unique parameters for the specified subsystem users.
ssunames
specifies a list of valid SSUs such as AF,LH,BA,AA.
overrides
specifies a list of override values for the specified subsystem users (SSUs). The ARS, BOR, EO#, EOR, ILV, INB, NLR, NOC, OP1, OP2, OP3, PF0, PF1, PF2, PIN, PLI, PTN, RBV, RCT, and WRS DBDEF parameters are allowed.
Note: Because of the different characteristics of algorithms, algorithms can only be overridden (using the RBV override parameter) by specific algorithms that share similar characteristics (are in the same group). For example, #TPFDB09 cannot override #TPFDB01 because the expected algorithm arguments are different. #TPFDB01 expects an alphabetic character while #TPFDB09 expects 8 bytes of data.

Table 36 shows the groups of algorithms that can override each other. The size of the algorithm string (defined by the DBDEF ALG parameter or in the DSECT macro for the file) must be large enough to allow the algorithm to be overridden. For example, if ALG=1 was specified in the detail file, you cannot override the #TPFDB01 algorithm with the #TPFDB02 algorithm in the index file (even though they are in the same group) because the file was defined to allow only a one-byte algorithm. To avoid this problem, define the algorithm to be as large as the maximum length of the algorithm group.

Table 1. Algorithm groups for overriding
Group Maximum Length  
1 #TPFDB02 #TPFDB06

#TPFDB02 #TPFDB07

#TPFDB03 #TPFDB08

3
2 #TPFDB0A #TPFDB0B 2
3 #TPFDB04 N/A
4 #TPFDB05 4
5 #TPFDB0C 2
6 #TPFDB0D N/A
7 #TPFDB09 #TPFDB10 #TPFDB11 8
8 #TPFDB0F 10

More than one MDBF definition can be defined for a particular file. For example:

      DBDEF FILE=dsname,   standard DBDEF
             .........,     additional DBDEF parameters
             (MDBF,SSU=(AA,BA,UA),RBV=#TPFDB03),
             (MDBF,SSU=(DF,LH,AE),WRS=L4),
             (MDBF,SSU=(RF),WRS=L1,EO#=99),
             (MDBF,SSU=(RT),WRS=L1,EO#=9)

Each SSU takes one of the following values for the file (in order of precedence):

  1. The SSU override values (if they are specified)
  2. The standard DBDEF override values (if they are specified), RBV, WRS and so on.
  3. The &SW00... values specified in the file DSECT.

If you want to code a DBDEF subsystem user override, the name of the subsystem user must be listed in SSUDEF. The SSUDEF copy member is installation specific and lists the subsystem users that can be included in an override.

For each subsystem user, a variable is added to SSUDEF as follows:

&SSUV(1)  SETC 'RED'     SSU mnemonic name        (MU0NAM in MS0UT)
  &SSUV(2)  SETC 'BLUE'    SSU mnemonic name        (MU0NAM in MS0UT)
  &SSUV(3)  SETC 'OR'      SSU mnemonic name        (MU0NAM in MS0UT)


  ·

  ·

  ·

  &SSUV(n)  SETC 'GOLD'    SSU mnemonic name        (MU0NAM in MS0UT)

If the variable to define a particular subsystem user is not set up, the DBDEF macro issues an MNOTE at assembly time.

Note:
  • The MDBF parameter only applies for the TPF system.
  • A maximum of 128 subsystem users can be listed in SSUDEF.
  • The DBDEF EXCLUDE parameter, which specifies subsystem users that cannot issue TPFDF macros on a particular file, is considered an override. Therefore, these subsystem users must also be listed in SSUDEF.
  • SSUDEF can be updated to include subsystem users from systems with different MDBF configurations. This allows the DBDEFs to be assembled once against the common SSUDEF and loaded to the two different systems.
SUFFIX=suffix
specifies the suffix that can make a file unique, where suffix is an alphanumeric character or characters. Some P-type file definitions can generate the same symbols for different files or file versions. Use the SUFFIX parameter to add a suffix to the labels to make the labels exclusive to a file version.

If you code the SUFFIX parameter with a DBDEF macro statement, ensure that the DSECT for the P-type file also supports a SUFFIX parameter because the DSECT for the P-type file is invoked internally by the DBDEF macro with the supplied suffix. For example,

       DBDEF FILE=FRED1,FVN=0,
          generates
          FREDID   DS H
          FREDFCH  DS F
              ......
              ......
        DBDEF FILE=FRED1,FVN=1,SUFFIX=A,
          also generates FREDID and FREDFCH, but adds an 'A' to them
          FREDIDA  DS H
          FREDFCHA DS F
              ......
TM
specifies one of the following:
NO
specifies that commit scopes are not used during checkpoint and close processing.
YES
specifies that commit scopes are used during checkpoint and close processing. This option is valuable when many files are to be filed out during checkpoint and close processing (for example, detac mode, extensive B+Tree indexing updates, and requests to pack indexes). See TPFDF Programming Concepts and Reference for more information about commit scopes.
Note: The application can override the DBDEF TM value by specifying a TM value with the DBCKP or DBCLS macros, or the dfckp or dfcls functions. See TPFDF Programming Concepts and Reference for more information about these macros and functions.
TRS=trailersize
specifies the trailer size at the bottom of each block, where trailersize is either 0 or a number equal to or greater than 36.
Notes:
  1. Standard-format files that do not use algorithm #TPFDB0D have a default TRS value of TRS=36.
  2. Standard-format files that use algorithm #TPFDB0D have a default TRS value of TRS=0.
  3. For customer-format files, the TRS value has no meaning.
UNIQUE
specify YES to ensure that all LRECs added to a subfile are unique even if the UNIQUE parameter is not specified with a DBADD macro or dfadd function statement. See TPFDF Programming Concepts and Reference for more information about the UNIQUE parameter of the DBADD macro or dfadd function. The default for non-B+Tree data files is UNIQUE=NO. The default for B+Tree data files is UNIQUE=YES.
Note: UNIQUE=NO is not allowed for B+Tree data files.
EMPTYCHECK
specifies one of the following:
NO
does not check the subfile completely to ensure that it is empty.
YES
checks the subfile completely to ensure that it is empty. If specified, SW00RT2 #BIT5 is set to 0 if the subfile is not empty and set to 1 if it is empty.
Note: The application can override the DBDEF EMPTYCHECK value by specifying an EMPTYCHECK value with the DBDEL macro or the dfdel function. See TPFDF Programming Concepts and Reference for more information about this macro and function.