DBD statements
The DBD statement names the database being described and provides DL/I with information concerning its organization. There can be only one DBD control statement in the control statement input deck.
The format of the DBD macro instruction for each database type is shown in the following examples.
DEDB database DBD statement
- 1 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 2 The default is an automatic DBDGEN time stamp.
- 3 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 4 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
GSAM database DBD statement
HDAM database DBD statement
- 1 Optional operands, such as anch and rbn, might be required by certain randomizing modules. See the documentation for the randomizing module you are using.
- 2 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 3 The default is an automatic DBDGEN time stamp.
- 4 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 5 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
HIDAM database DBD statement
- 1 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 2 The default is an automatic DBDGEN time stamp.
- 3 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 4 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
HISAM/SHISAM database DBD statement
- 1 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 2 The default is an automatic DBDGEN time stamp.
- 3 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 4 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
HSAM/SHSAM database DBD statement
- 1 The default is an automatic DBDGEN time stamp.
INDEX database DBD statement
- 1 A full-function secondary index must use VSAM. A Fast Path secondary index can use either VSAM or HISAM.
LOGICAL database DBD statement
MSDB database DBD statement
PHDAM database DBD statement
- 1 Optional operands, such as anch and rbn, might be required by certain randomizing modules. See the documentation for the randomizing module you are using.
- 2 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 3 The default is an automatic DBDGEN time stamp.
- 4 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 5 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
PHIDAM database DBD statement
- 1 Used for the Data Capture exit routine. You can specify more than one exit routine on a DBD statement.
- 2 The default is an automatic DBDGEN time stamp.
- 3 If an exit routine name is not required because only logging is requested, specify the exit name as an asterisk (*). The default logging parameter in this case is LOG. If you specify an exit routine name, the default logging parameter is NOLOG.
- 4 Used to control the CASCADE options. If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
PSINDEX database DBD statement
- 1 A secondary index must use VSAM.
DBD statement parameter descriptions
- DBD
- Identifies this statement as the DBD control statement.
- NAME=
- DBVER=
- A numeric value from 1 to 2147483647 that identifies a specific
version of a DBD when multiple DBDs are used by application programs
to access the same database.
The value specified on the DBVER keyword must be one greater than the highest DBVER value of any prior version of the DBD that is stored in the database record in the IMS catalog.
The DBVER keyword is optional. If the DBVER keyword is omitted, the version of the DBD is 0, even if database versioning is not enabled.
The DBVER keyword is valid only for the following database types:- DEDB
- HDAM
- HIDAM
- PHDAM
- PHIDAM
- ACCESS=
- PROT | NOPROT
Specifies if a secondary index database uses index pointer protection. This optional parameter ensures the integrity of all fields in index pointer segments that are used by IMS. Use of this parameter prevents an application program from doing a replace operation on any field within an index pointer segment except for fields within the user data portion of index pointer segments. Delete operations are still enabled for index pointer segments. If a delete is issued for an index pointer segment, the index target segment pointer in the index pointer segment is deleted. However, the index source segment that caused the index pointer segment to be created originally is not deleted.
If index pointer protection is not used, an application program can replace all fields within an index pointer segment except the constant, search, and subsequence fields. Inserts to an index database are invalid under all conditions.
By default, a secondary index database uses index pointer protection.
- DOSCOMP
- Indicates if this is a DLI/DOS index database. Must be specified if the database is an index, and it was created using DLI/DOS. DLI/DOS index databases contain a segment code as part of the prefix. Specifying that a database is a DLI/DOS index database causes IMS to expect this code to be present in the defined database, and to process in a way that preserves this code. This includes providing a segment code for new segments being inserted. DLI/DOS databases must use VSAM and cannot be PHDAM, PHIDAM, or PSINDEX databases.
- PSNAME=
- Specifies the module that selects the HALDB partition
for PSINDEX, PHDAM, or PHIDAM databases. The parameter is a HALDB
partition selection exit routine module name. This parameter is only
valid when the access type for the database is PSINDEX, PHDAM, or
PHIDAM. Exception: A user-provided HALDB partition selection routine is not needed if root key ranges define HALDB partition membership.
- RMNAME=
- PASSWD=
- Prevents
accidental access of IMS databases
by non-IMS programs.
- YES
- Specifying PASSWDYES causes DL/I to use the database name as the VSAM
password when opening any data set for this database. This parameter is only valid for databases
that use VSAM as the access method. You cannot use the database name as the password for the LOGICAL
or DEDB database types. When the user defines the VSAM data sets for this database using the DEFINE
statement of z/OS® Access Method Services, the control level
(CONTROLPW) or master level (MASTERPW) password must be the same as the DBDNAME for this DBD. All
data sets associated with this DBD must use the same password.
For the IMS DB/DC system, all VSAM OPENs bypass password checking and thus avoid operator password prompting. For the IMS DB system, VSAM password checking is performed. In the batch environment, operator password prompting occurs if automatic password protection is not specified, and the data set is password protected at the control level (CONTROLPW) with passwords not equal to the database name.
- NO
- Specifying PASSWDNO indicates that the database name should not be used as the VSAM password. This is the default behavior.
- EXIT=
- Specifies that the Data Capture exit routine is used. You can specify
multiple exit routine names on a single DBD statement. You can select different data options for
each exit routine. The order that you list the exit routines within the parameter determines the
order the exit routines are called for the segment.
When specified on the DBD statement, the EXIT= parameter applies to all segments within the physical database that do not have the EXIT= parameter on the SEGM statement. The following physical databases are supported by this exit routine:
- HISAM
- SHISAM
- HDAM
- PHDAM
- HIDAM
- PHIDAM
- DEDB
If the exit routine is not specified for a supported database organization or a supported segment type, DBDGEN fails.
If the job name of a CCTL or ODBM address space is specified on the SUPPDCAPNAME= parameter, which is in the DATABASE section of the DFSDFxxx member of the IMS PROCLIB data set, the exit routine is not called for data updates invoked by the specified job, even if a Data Capture exit routine is specified on the EXIT= parameter.
The EXIT= parameter can also be specified on the SEGM statement.- exit_name
- Specifies the name of the exit routine that processes the data. This parameter is required. The name must follow standard naming conventions. A maximum of 8 alphanumeric characters is allowed. You can specify an asterisk (*) instead of an exit routine name to indicate that you want logging only. If this is done, the logging parameter default is LOG. If you do specify an exit routine, the logging parameter default is NOLOG. All of the following operands are optional.
- KEY | NOKEY
- Specifies whether the exit routine is passed the physical concatenated key. This key identifies
the physical segment that is updated by the application.
- KEY
- Specifies the exit routine is passed the physical concatenated key.
KEY is the default.
- NOKEY
- Can be specified when the physical concatenated key is not required for the exit routine.
- DATA | NODATA
- Specifies whether the physical segment data is passed to the exit routine for updating.
- DATA
- Specifies that the physical segment data is passed to the exit routine for updating. When DATA
is specified and a Segment Edit/Compression exit routine is also used, the data passed is expanded
data.
DATA is the default.
- NODATA
- Can be specified when the exit routine does not require segment data. Use NODATA to avoid the overhead that is created from saving physical segment data.
- NOPATH | PATH
- Specifies whether the exit routine requires data from segments in the physical root's
hierarchical path.
- NOPATH
- Indicates that the exit routine does not require data from segments in the physical root's
hierarchical path. NOPATH is an efficient way to avoid the processing time that is needed to
retrieve path data.
NOPATH is the default.
- PATH
- Can be specified when the data from each segment in the physical root's hierarchical path must
be passed to the exit routine for an updated segment. Use PATH to allow an application to separately
access several segments for insertion, replacement, or deletion.
You can use the PATH option when information from segments in the path is needed to compose the Db2 for z/OS primary key. The Db2 for z/OS primary key would then be used in a propagation request for a dependent segment update. Typically, you need this kind of segment information when the parent contains the key information and the dependent contains additional data that would not fit in the parent segment.
You can also use PATH when additional processing is necessary. It could be that you are not accessing several segments with one call; for example, you did not invoke the D command code. In this case, additional processing is necessary if the application is to access each segment with a separate call.
- DLET | NODLET
-
Specifies whether X'99' log records are written for DLET calls.Note: DLET or NODLET can only be specified for a DEDB.
If you specify this parameter in the SEGM statement, it overrides the specification for the DBD statement.
- DLET
- X'99' log records are written for DLET calls.
DLET is the default.
- NODLET
- No X'99' log records are written for DLET calls.
- BEFORE | NOBEFORE
-
Specifies whether the before data is included in X'99' log records for REPL calls.Note: BEFORE or NOBEFORE can only be specified for a DEDB.
If you specify this parameter in the SEGM statement, it overrides the specification for the DBD statement.
- BEFORE
- Before data is included in X'99' log records for REPL calls.
BEFORE is the default.
- NOBEFORE
- No before data is included in X'99' log records for REPL calls.
- CASCADE | NOCASCADE
- Specifies whether the exit routine is called when DL/I deletes this segment.
- CASCADE
- Indicates that the exit routine is called when DL/I deletes this segment because the application
deleted a parent segment. Using CASCADE ensures that data is captured for the defined segment.
CASCADE is the default.
The CASCADE parameter has three suboptions. These suboptions control the way data is passed to the exit routine. If you specify suboptions, you must enclose the CASCADE parameter and the suboptions within parentheses.
- KEY | NOKEY
- Specifies whether the physical concatenated key is passed to the exit.
- KEY
- Passes the physical concatenated key to the exit. This key identifies the segment being deleted
by a cascade delete.
KEY is the default.
- NOKEY
- Can be used when the exit routine does not require the physical concatenated key of the segment being deleted.
- DATA | NODATA
- Specifies whether segment data is passed to the exit routine for a cascade delete.
- DATA
- Passes segment data to the exit routine for a cascade delete. DATA also identifies the segment
being deleted when the physical concatenated key is unable to do so.
DATA is the default.
- NODATA
- Can be specified when the exit routine does not require segment data. NODATA reduces the significant storage and performance requirements that result from saving physical segment data.
- NOPATH | PATH
- Specifies whether the exit routine requires segment data in the physical root's hierarchical
path.
- NOPATH
- Indicates that the exit routine does not require segment data in the physical root's
hierarchical path. Use NOPATH to eliminate the substantial amount of path data needed for a cascade
delete.
NOPATH is the default.
- PATH
- Can be specified to allow an application to separately access several segments for a cascade delete.
- NOCASCADE
- Indicates that the exit routine is not called when DL/I deletes this segment. Cascade delete is
not necessary when a segment without dependents is deleted.Note: If any (CASCADE B) suboptions are specified with NOCASCADE in an EXIT= parameter, they will be ignored, and the value for those suboptions will be set to NOxxxx.
- LOG | NOLOG
- Specifies whether data capture control blocks or data is written to the IMS system log.
- LOG
- Requests that the data capture control blocks and data be written to the IMS system log.
- NOLOG
- Indicates that no data capture control blocks or data is written to the IMS system log.
- NOSSPCMD | SSPCMD
- An optional parameter that indicates whether command codes related to Fast Path subset pointers
(SSP) be captured. The default is NOSSPCMD. It is recommended that this option be specified only on
segments that involve subset pointers.
The following table indicates which command codes are captured for a given DL/I call:
Table 1. Command codes that are captured for DL/I calls DL/I call Details G* (get calls) M, S, W, Z. R is captured if at least one of M, S, W, or Z is also on the same SSA, or along with the PATH data if PATH is requested. REPL M, S, W, Z DLET Z ISRT M, S, W, Z. R is captured if the segment is being inserted or if it was specified on an SSA of a segment not being inserted but PATH data is requested. - NOINPOS | INPOS
- An optional parameter to request that the next twin data be captured on an ISRT call. The
default is NOINPOS. The twin data of the twin that follows an inserted segment will be captured if
INPOS is specified and the following conditions are true:
- An ISRT of a non-unique segment is made.
- An ISRT rule of HERE is used.
If the new segment is the only twin instance or last in the twin chain, no twin data will be captured.
- NOFLD | FLD
- An optional parameter to request that updates that are made by a DEDB FLD call be captured. This option is valid only for a DEDB. The information captured is logged only in the X'9904' log records if option LOG is specified. It is not passed to the Data Capture exit routine.
- VERSION=
- Specifies
a character string used to identify the DBD. The
exit routine is passed this character string so it can determine the
DBD version used to update the database.
- character string
- The character-string length can be up to 255 bytes. There are
no checks to ensure that the proper values have been inserted. Therefore,
it is important that the variable-length character string be updated
whenever the DBD changes.
If you do not specify a character string, a 13-character time stamp is generated by DBDGEN. It represents the date and time the DBDGEN was completed. Its format is:
MM/DD/YYHH.MMWhere:
- MM
- The month
- DD
- The day of the month
- YY
- The last two digits of the year
- HH
- The hour on a 24-hour clock
- MM
- The minutes
- DATXEXIT=
- Allows a user exit, DFSDBUX1, to be used by an application while processing this database. The default is NO.
- FPINDEX=
- Specifies whether an index database is a secondary index for a primary Fast Path DEDB database. By default, an index database is not a secondary index.
- ENCODING=
- An optional 1- to 25-character field that specifies
the default encoding of all character data in this database.
The default code page is Cp1047, which specifies EBCDIC encoding.
This value cannot contain the following characters:- Single or double quotation marks
- Blanks
- Less than (< ) and greater than ( >) symbols
- Ampersands (&)
This value can be overridden in individual segments or fields.
- REMARKS=
- Optional user comments. A 1-character to 256-character field.
If your comments contain special characters, such as commas or blank spaces, enclose the full comment string in single quotation marks.
The value specified on the REMARKS keyword cannot contain the following characters:- Single quotation marks, except when they are used to enclose the
full comment string. If a single quotation mark is entered before the
end of the full comment string, the remainder of the comment string is
truncated. The following examples show correct and incorrect usages of
single quotation marks on the REMARKS keyword:
- CORRECT
REMARKS='These remarks apply to the XYZ application'- INCORRECT
REMARKS='These remarks apply to the 'XYZ' application'
- Double quotation marks.
- Less than (<) symbols.
- Greater than (>) symbols.
- Ampersands (&).
- Single quotation marks, except when they are used to enclose the
full comment string. If a single quotation mark is entered before the
end of the full comment string, the remainder of the comment string is
truncated. The following examples show correct and incorrect usages of
single quotation marks on the REMARKS keyword:
