For the TM/MFS Expert | DBUTIL - Interactive DB Calls |
This chapter details the support IMS Option provides for the DBDGEN, PSBGEN and MFSGEN source statements.
See the chapters For the Database Administrator (DBA) and For the TM/MFS Expert in this guide for additional information.
The source statements are grouped in major categories of language
control statements and definition statements. Language control statements,
such as COPY
, control the processing of the Gen utility. The
definition statements define the DBD, PSB or MFS member. With each
statement, the valid keywords or positional operands are listed with their
possible values and a description of the support that IMS Option provides.
The format of the statements, positional operands and keywords are the same as defined by your IBM IMS/ESA manuals. This includes continuation rules, comments and labels except as noted here.
There are two areas, language control and statements.
Any number of COPY statements can be defined. Nested COPY statements are not supported by DBDGEN. COPY statements are edited. ++INCLUDE and -INC statements are supported as if the ++INCLUDE or -INC statement was a COPY statement. The extensions provided by these two library management statements are not supported.
The following sections describe the DBDGEN statements:
AREA | DATASET | DBD | DBDGEN | END |
FIELD | FINISH | LCHILD | SEGM | XDFLD |
The AREA statement does not affect the processing of Fast Path DEDB databases and is not edited. All segments in a DEDB reside in the same area.
The DATASET statement's effect on GSAM is summarized below. For more information about GSAM databases, see the sections GSAM Considerations in the chapter For the Database Administrator (DBA) and Unsupported DB Features in the chapter Product Summary.
Keyword | Values | Description |
---|---|---|
RECFM | F, FB, V, VB | Can be used to determine GSAM DBD's record format |
U | GSAM undefined length records are not supported | |
REL | All values | Supported and edited |
DD1 | *NAME | Can be used for GSAM input DD |
DD2 | *NAME | Can be used for GSAM output DD |
RECORD | max, min | Can be used to determine GSAM DBD's record length. |
SCAN | All values | Not supported but edited |
FRSPC | All values | Not supported but edited |
Only one database can be defined in any one input data set.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported and edited
The database is known by this name and not the name of the input data set. The database data files are also known by this name. Only the first name in a list is used. Shared secondary index databases must be defined as separate INDEX DBDs. The CONST keyword of the XDFLD statement is supported and appears in the index segment if processed as a stand-alone database. |
ACCESS | All types | Supported. Assumed valid
and is used for subsequent processing and editing.
All access types are supported. SHSAM and SHISAM databases cannot be read from a COBOL program's FD. GSAM databases can be read or written by a COBOL FD. |
RMNAME | All values | Not supported but edited |
PASSWD | All values | Ignored |
EXIT | All values | All EXIT options are supported except LOG. A maximum of nine EXIT routines may be specified. See the chapter For the Database Administrator (DBA) for details on data capture exits. |
VERSION | All values | The maximum length of the VERSION value is 128 bytes, after substitution. See the chapter For the Database Administrator (DBA) for details on data capture exits. |
Others | Any keyword not listed produces a warning message |
Supported and edited.
Supported and edited.
A maximum of 1,000 FIELD statements can be listed in one DBD.
There is a restriction of 512 bytes on the length of the key that IMS Option uses internally to store each segment in a database. This length is calculated by summing the lengths of the longest sequence field at each level in the database and adding two bytes for each level in the database. For non-unique sequence fields (SEQ,M), add four bytes to its sequence field length for this calculation. For non-keyed segments, use four bytes as its length for this calculation. If this limitation is exceeded, you see DBDGEN error message number DBDUT0L11.
For example, a database with just three segments, a root and two children of the root. The root sequence field is 10 bytes long, the first child's sequence field is 15 bytes long and the second child's sequence field is 25 bytes long. The sum of the key lengths at each level is 10 plus 25 for a total of 35. Adding two bytes for each of the levels in the database gives an IMS Option key length of 39.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported and edited |
SEQ | Supported and edited | |
U, M | Supported and edited | |
BYTES | All values | Supported and edited
The maximum supported length of a field used in an SSA is 255 bytes. You see a warning message if this value exceeds 255. |
START | All values | Supported and edited |
TYPE | All values | Supported for MSDB and Field Level Sensitivity |
Others | Any keyword not listed produces a warning message |
Supported and edited.
The LCHILD statement is supported and edited for logical relationships and secondary indexes. The LCHILD statement for the primary index of a HIDAM database is not required and not edited.
A maximum of 32 secondary indexes can be defined in one DBD.
A maximum of 32 logical children can be defined in one DBD.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported but not edited |
PTR, POINTER | SYMB | Supported but not edited |
All others | Ignored | |
PAIR | *NAME | Supported and edited |
INDEX | All values | Ignored. INDEX DBDs are automatically assigned to their indexed fields |
RULES | FIRST, LAST, HERE | Supported for logical parents but not edited |
A maximum of 255 SEGM statements can be defined in one DBD.
Keyword | Values | SEGM Description |
---|---|---|
NAME | *NAME | Supported and edited |
PARENT | 0, SEGNAME | Supported and edited |
SNGL, DBLE | Ignored | |
logical parent | Supported and edited. The virtual/physical pointer option is ignored. | |
BYTES | All values | Supported and edited
A maximum of 32,760 is supported. The value is not checked to see if it exceeds the device type capacity or the access method limits. A maximum of 1,792 is supported for a segment in an INDEX DBD. |
TYPE | DIR, SEQ | Supported and edited |
FREQ | All values | Ignored |
PTR, POINTER | All values | Ignored. IMS Option uses a proprietary pointer technique. All needed pointers are automatically created. |
RULES | logicals | Insert and replace rules are fully supported. Delete rules are partially supported. See the chapter For the Database Administrator (DBA) for details. |
FIRST, LAST, HERE | Non-uniquely keyed insert rules are supported and edited. Rules of HERE are changed to LAST for logical children and root segments. | |
SOURCE | All values | Supported and edited |
COMPRTN | All values | Ignored. Compression can be enabled using the DB Catalog or System Configuration Catalog defaults. |
SSPTR | All values | Not supported - causes a warning message |
EXIT | All values | All EXIT options are supported except LOG. A maximum of nine EXIT routines may be specified. See the chapter For the Database Administrator (DBA) for details on data capture exits. |
Others | Any keyword not listed produces a warning message |
A maximum of 32 secondary indexes can be defined in one DBD.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported and edited |
SEGMENT | SEGM-name | Supported and edited |
CONST | Constant | Supported and edited |
SRCH | Fieldnames | Supported and edited |
SUBSEQ | Fieldnames | Supported and edited |
DDATA | Fieldnames | Supported and edited |
NULLVAL | All values | Supported and edited |
EXTRTN | *NAME | See the chapter For the Database Administrator (DBA) for details on sparse routines |
EXTRNCBL | *NAME | This keyword can be used to indicate the name of a COBOL program for sparse indexing. See the chapter For the Database Administrator (DBA) for details. |
Others | Any keyword not listed produces a warning message |
There are two areas, language control and statements.
Any number of COPY statements can be defined. Nested COPY statements are not supported by PSBGEN. COPY statements are edited. ++INCLUDE and -INC statements are supported as if the ++INCLUDE or -INC statement was a COPY statement. The extensions provided by these two library management statements are not supported.
This statement is ignored.
A maximum of 500 PCBs can be defined in one PSB. There is no limit to the number of TP PCBs which can be defined, however, only the first 99 can be referenced by an application program.
Keyword | Values | Description |
---|---|---|
LTERM | *NAME | Supported but not edited |
NAME | *NAME | Supported but not edited |
ALTRESP | YES, NO | Ignored |
SAMETRM | YES, NO | Ignored |
MODIFY | YES, NO | Supported but not edited |
EXPRESS | YES, NO | Ignored |
PCBNAME | *NAME | Supported and edited |
LIST | YES, NO | Supported and edited |
Others | Any keyword not listed produces a warning message |
Keyword | Values | Description |
---|---|---|
NAME, DBDNAME | *NAME | Supported and edited |
PROCOPT | G, I, R, D, A, P, L, O, E | Supported and edited. Additional editing performed during PSBGEN Verify and when DL/I calls are made. |
GS, LS | Supported as G and L | |
KEYLEN | All values | Supported. Edited during PSBGEN Verify |
POS | S, M | Supported and edited |
PROCSEQ | *NAME | Supported. Edited during PSBGEN Verify |
PCBNAME | *NAME | Supported and edited |
LIST | YES, NO | Supported and edited |
SB | NO, COND | Ignored |
Others | Any keyword not listed produces a warning message. |
Keyword | Values | GSAM PCB Description |
---|---|---|
NAME, DBDNAME | *NAME | Supported and edited |
PROCOPT | G, L | Supported but not edited during PSBGEN. For more information about GSAM databases, see the sections GSAM Considerations in the chapter For the Database Administrator (DBA) and Unsupported DB Features in the chapter Product Summary. |
S | Ignored | |
PCBNAME | *NAME | Supported and edited |
LIST | YES, NO | Supported and edited |
Others | Any keyword not listed produces a warning message. |
Only one PSB can be defined in a single input data set.
Keyword | Values | Description |
---|---|---|
PSBNAME | *NAME | Supported and edited |
CMPAT | YES, NO | Supported but not edited |
LANG | All values | Ignored |
MAXQ | All values | Ignored |
IOASIZE | All values | Ignored. There is no limit to the length of an I/O area in a path call. |
SSASIZE | All values | Ignored. Each SSA is limited to 4,000 bytes with no cumulative limit |
IOEROPN | All values | Ignored |
OLIC | All values | Ignored |
LOCKMAX | All values | Ignored |
Others | Any keyword not listed produces a warning message |
A maximum of 10,000 SENFLD statements can be defined for one PSB. A maximum of 255 SENFLD statements can be defined for one SENSEG.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported and edited |
START | All values | Supported and edited. Must not exceed 32,760 |
REPL, REPLACE | YES, Y, NO, N | Supported and edited |
Others | Any keyword not listed produces a warning message |
A maximum of 3,000 SENSEGs can be defined in one PSB when using the PSBGEN3 format for PSBGEN. The maximum is 1,000 SENSEGs when using PSBGEN2 format.
A maximum of 255 SENSEGs can be defined for one PCB.
SENSEGs must be listed in the same physical sequence as they are defined in the DBD. See the chapter For the Database Administrator (DBA) for SENSEG and SEGM support when using logical and secondary data structures.
Keyword | Values | Description |
---|---|---|
NAME | *NAME | Supported and edited |
PARENT | *NAME | Supported and edited |
PROCOPT | G, I, R, D, A , K, P | Supported and edited. Most editing is performed when issuing DL/I calls. |
E | Ignored | |
SSPTR | All values | Ignored. Causes a warning message |
INDICES | All values | Ignored. Causes a warning message |
Three sections follow concerning MFSGEN:
The following sections describe the MFSGEN language controls:
ALPHA | COPY | DELETE | DO | ENDDO | EQU | KEEP | RESCAN | STACK | UNSTACK |
Partially supported and edited. You can find the complete description of ALPHA statement processing in the chapter For the TM/MFS Expert.
Any number of COPY statements can be defined. MFSGEN supports up to two levels of nesting for COPY statements. That is, a COPY member can contain a COPY statement whose member can also contain a COPY statement. COPY statements are edited. ++INCLUDE and -INC statements are supported as if the ++INCLUDE or -INC statement was a COPY statement. The extensions provided by these two library management statements are not supported.
The description of DO and ENDDO expansion is described in the sections MFLD and DFLD later in this chapter.
The EQU statement is partially supported and edited. The complete description of EQU support is described in the chapter For the TM/MFS Expert.
The RESCAN statement is not supported.
These statements are supported and edited. Multiple device types for the same MOD-name are processed differently than with IMS/ESA.
For reference, any stacks are written as data sets, not stored in memory and are named by using the stack ID, if present, with a .stk extension. The default when no stack ID is present is $mfsstak.stk. A maximum of 32 unique stack IDs are supported. These files are created in the Project's Listing folder.
These files are deleted according to the UNSTACK statement. If the last UNSTACK statement keeps the stack, these files remain on disk. The use of KEEP and DELETE is fully supported.
The following sections describe the MID and MOD statements for MFSGEN:
DO | ENDDO | LPAGE | MFLD |
MSG | MSGEND | PASSWORD | SEG |
Keyword | Values | Description |
---|---|---|
COUNT | iterations | Supported and edited |
SUF | starting suffix | Supported but not edited. No adjustment is made for COUNT and SUF combinations which exceed a two digit value of 99. The expanded MFLD statements do not appear in the MFSGEN listing file. |
Supported and edited.
There is a limit of 16,386 LPAGE statements which can be defined in a single message.
Keyword | Values | Description |
---|---|---|
SOR | DPAGE-name list | Supported and edited |
NXT | MOD-name | Supported and edited |
Keyword | Values | Description |
---|---|---|
SOR | DPAGE-name | Supported and edited |
NXT | MID-name | Supported and edited |
COND | MFLD-name | Supported and edited |
MFLD-name(n) | Supported and edited | |
SEG offset | Supported but not edited | |
Relational operator | Supported and edited | |
Compare value | Supported. Length is limited to 42 bytes | |
PROMPT | All values | Ignored |
There is a limit of 500 MFLDs which can be defined for a single input or output message. Only MFLDs which specify a DFLD-name are counted toward the limit of 500. That is, MFLD literals and MFLDs with only a LTH keyword are not counted. If the message contains LPAGE definitions, the limit is 500 MFLDs for each logical page. The limit of 500 is after any DO statement expansion.
Keyword | Values | MID MFLD Description |
---|---|---|
1st operand | DFLD-name | Supported and edited |
literal value | Supported and edited. A maximum of 4,000 bytes of literal data is allowed for each input message. If the input message contains logical pages, the limit applies to each logical page. | |
(DFLD-name, literal)
Notes: |
Supported and edited. A maximum of 6,000
bytes of default MID literal data is allowed for each input message. If
the input message contains logical pages, the limit applies to each
logical page.
If two MFLDs name the same DFLD and one MFLD specifies a default literal but the other does not, the default literal is returned to both MFLDs when no input data is received for the field. Literals and default literals cannot exceed 92 bytes in length. All literals are truncated to the LTH value or are padded to the LTH value with the FILL character. |
|
PF key field | Supported but not edited. The maximum length of a PF key MFLD is 50 bytes. Cannot appear more than twice in the same input message. | |
Cursor field | Supported but not edited. Can only appear once in the same input message. | |
LTH | value | Supported and edited |
(pp, nn) | Partially supported and edited. A pp value other than one produces a warning message and one is assumed. | |
JUST | L | Supported and edited |
R | Supported and edited if the length of the MFLD not including attribute bytes is equal to or less than the DFLD length. If the MFLD length is greater than the DFLD length, justification occurs but a FILL character of zero is assumed. | |
ATTR | YES, NO | Supported and edited |
number of extended attribute bytes | Supported and edited. A maximum value of five is supported. | |
FILL | NULL | Supported and edited with restrictions. See the chapter For theTM/MFS Expert for details. |
All other values | Supported and edited. The FILL value for an MFLD which names a DFLD not present in the DPAGE is assumed to be spaces. | |
EXIT | number, vector | Supported and edited. See the chapter For the TM/MFS Expert for details. Ignored if specified for an MFLD which names a DFLD not defined in the DPAGE. |
Keyword | Values | Description |
---|---|---|
1st operand | DFLD-name | Supported but not edited |
(DFLD-name, literal) | Supported but not edited. Literal values are truncated if longer than the LTH and padded if shorter than LTH. The FILL character is used to pad short literals. A maximum of 7,000 bytes of MOD literal data is allowed in one output message. If the message contains logical pages, the limit applies to each logical page. | |
(DFLD-name, SYS-LIT) | Supported and edited. All system literals are supported. LTSEQ and LPAGENO always contain a value of one. LTMSG is always spaces. | |
(, SCA) | Supported but not edited. Only the bit settings for 3270 Force Format Write and Erase Unprotected Fields are supported. If neither is set, nothing is erased. Other bit settings are ignored. | |
LTH | value | Supported and edited. A maximum length of 4095 is supported. The length is not checked to see if it exceeds the device capacity. |
JUST | L | Supported and edited |
R | Output MFLDs longer than the DFLD length have the right-most bytes of the MFLD displayed in the DFLD | |
ATTR | YES, NO | Supported and edited |
number of extended attribute bytes | Supported and edited. A maximum value of five is allowed but only color and highlighting can be changed dynamically. |
There is a limit of 16,386 output messages which can be defined in a single input data set. The input message definition must be present in the same input data set as its corresponding output definition.
Keyword | Values | Description |
---|---|---|
SOR | FMT-name | Supported and edited |
IGNORE | Ignored | |
OPT | 1 | Supported |
2 | Supported as option 1 | |
3 | Not supported | |
NXT | MOD-name | Supported and edited |
Keyword | Values | Description |
---|---|---|
SOR | FMT-name | Supported and edited |
IGNORE | Ignored | |
OPT | 1 | Supported |
2 | Supported as option 1 | |
3 | Not supported | |
NXT | MID-name | Supported and edited |
PAGE | YES, NO | Not supported but edited. Always processed as YES. |
FILL | All values | The FILL value is processed for /FOR commands and to fill short fields on an output message. Fields not provided in an output message are always filled with X'3F'. Value takes affect only if DPAGE specifies FILL=NONE. |
The PASSWORD statement is not supported. However, any MFLDs defined after the PASSWORD and before the first SEG are logically removed from the input message. The mapping between the program and the input message is maintained.
There is a limit of 100 SEG statements which can be defined in any one input or output message.
Keyword | Values | Description |
---|---|---|
EXIT | All values | Supported and edited. See the chapter For the TM/MFS Expert for details. |
GRAPHIC | YES, NO | Supported differently than IMS/ESA. See the chapter For the TM/MFS Expert for details. |
Keyword | Values | Description |
---|---|---|
GRAPHIC | YES, NO | Ignored |
Supported and edited.
The following sections describe the statements for controlling MFSGEN device definition:
DEV | DIV | DPAGE | DO | DFLD |
ENDDO | FMT | FMTEND | IF | TABLE |
Only 3270 display, 3270 printers and SCS1 printer devices are supported.
Keyword | Values | Description |
---|---|---|
TYPE | 3270P | A 3270 printer |
SCS1 | An SCS1 printer. SCS1 printers are processed the same as 3270 printers. | |
3270,1 3270-A5 | A 3270 model 1. This is processed the same as a model 2 | |
3270,2 3270-A2 | A 3270 model 2 24x80 screen | |
3270-A3 | A 3270 model 3 32x80 screen | |
3270-A4 | A 3270 model 4 43x80 screen | |
3270-A7 | A 3270 model 5 27x132 screen | |
Other values | processed as a 3270 model 2 |
Keyword | Values | Description |
---|---|---|
FEAT | All values | Ignored |
PEN | All values | Ignored |
CARD | All values | Ignored |
SYSMSG | All values | Ignored |
DSCA | x'00' and x'80' through x'F0' | Supported but not edited. Only the bit settings for 3270 Force Format Write and Erase Unprotected Fields are supported. If neither is set, nothing is erased. Bit settings for other hardware control, such as Sound Beep, are ignored. |
SUB | All values | Ignored |
PFK | *NAME | Supported and edited |
integer= or positional literal | Both the positional and keyword syntax is supported for PF key value assignment | |
NEXTPP, NEXTMSG, NEXTMSGP, NEXTLP | Ignored. These values are processed as Enter which is equivalent to NEXTPP in IMS Option. | |
ENDMPPI | Supported for physical paging | |
PDB | All values | Ignored |
Keyword | Values | Description |
---|---|---|
FEAT | 120, 126, 132 | Sets the page width if WIDTH is not specified |
All others | Ignored | |
WIDTH | All values | Supported and edited. Width is limited to 133. |
PAGE | line count | Supported but not edited |
DEFN SPACE FLOAT | Page length control always processed as DEFN | |
DSCA | All values | Ignored |
Keyword | Values | Description |
---|---|---|
TYPE | INOUT, OUTPUT | Supported but not edited |
There is a limit of 16,386 DPAGE statements which can be defined for any one FMT definition.
Keyword | Values | Description |
---|---|---|
CURSOR | Row, Column, Fieldname | Supported but not edited. The cursor fieldname is optional but can be referenced in the MID or MOD. With physical paging, only the first 10 physical pages adhere to this default cursor position |
FILL | All values | The FILL value is processed for /FOR command and is used to fill short fields for an inserted message. Fields not provided on insert are always filled with x'3F'. |
MULT | YES | Ignored. All physical pages must be displayed before MID formatting. |
PD | All values | Ignored |
ACTVPID | All values | Ignored |
Keyword | Values | Description |
---|---|---|
FILL | All values | Ignored. Always filled with spaces |
Keyword | Values | Description |
---|---|---|
1st operand | Count | Supported and edited |
2nd operand | Line increment | Supported and edited |
3rd operand | MAX or column increment | Supported and edited |
SUF | All values | Supported but not edited. No adjustment is made for Count and Suffix combinations which exceed a two digit value of 99. Expanded DFLD statements are not included in the MFSGEN listing file. |
BOUND | FIELD | Supported but not edited |
LINE | LINE is always processed as FIELD. This generally provides proper expansion as the first DFLD in a line is often the one which exceeds the column limit causing the entire line to be put on the next line as with FIELD. |
There is a limit of 500 labelled DFLDs which can be defined for a single device page (DPAGE). If physical paging is used, the limit of 500 applies to each physical page. A labelled DFLD which is not referenced by an MFLD in the MID or MOD does not count toward this limit. The DFLD limit is after any DO statement iterations.
There is a cumulative limit of 19,996 bytes for a pool area to store MID literals, MID default literals, MOD literals, DFLD literals and PF key data. If this limit is exceeded, MFSGEN error message MFSUT0L17 is issued. The lengths are cumulative and are the lengths of the literals plus six bytes of overhead for each literal. Some of the 19,996 bytes is used for labelled DFLD data so the actual maximum size is somewhat less.
Keyword | Values | 3270 Display DFLD Description |
---|---|---|
1st operand | PASSWORD | DFLD containing PASSWORD is ignored |
literal | Supported and edited. Length cannot exceed 133 bytes. The limit of EGCS DFLD literals (DBCS "G" literals) is 80 bytes. | |
POS | row, column, ppage | Supported and edited. A maximum of 12 physical pages can be defined. |
LTH | value | Supported and edited. Cannot exceed 4094 bytes. The length is not checked to see if it exceeds the device capacity |
PEN | All values | Ignored |
ATTR | ALPHA NOPROT PROT NORM NODISP HI NOMOD MOD | Supported and edited |
NUM | Not supported. Processed as ALPHA | |
DET IDET NODET STRIP NOSTRIP | Ignored | |
OPCTL | Table-name | Partially supported. See the IF and TABLE statements in this section. |
EATTR | Highlight | |
Color | Supported and edited | |
Input validation | Ignored | |
Programmed symbol sets | Ignored | |
Outlining | Keisen outlining supported with Japanese version of IMS Option only | |
EGCS | Supported with Japanese version of IMS Option only. | |
MIX, MIXD | Ignored. Mixed EGCS entry is always enabled with Japanese version of IMS Option unless EGCS is specified. |
Keyword | Values | Description |
---|---|---|
1st operand | literal | Supported and edited. Must not exceed 96 bytes if the LTH keyword is omitted. If LTH is specified, the limit is 87 bytes. |
POS | Row, column | Supported and edited |
ppage | Not supported for printers | |
LTH | value | Supported and edited. The combination of row, column and length cannot cause a field to exceed the page width |
ATTR | YES, NO | Ignored |
EATTR | All values | Ignored |
Supported and edited.
There is no limit to the number of formats which can be defined in any one input data set. However, only those formats which are referenced by a MOD are processed.
Supported and edited.
Only one TABLE can be defined in a single input data set. Table processing is disabled if more than one TABLE is present. Only one IF statement is allowed within a TABLE. If more than one IF is present for a TABLE, the table is ignored. The only format allowed for the IF statement is:
IF DATA,^,' ',ENDMPPI
This statement generates an ENDMPPI command when the associated DFLD contains a non-blank value.
Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
For the TM/MFS Expert | DBUTIL - Interactive DB Calls |