IMS Command Language Modification facility (DFSCKWD0)
Use the IMS™ Command Language Modification facility (DFSCKWD0) to modify the command keyword table.
About this facility
Several
reasons exist for altering the keyword table. For example, you might
want to tailor the keywords and synonyms to satisfy unique requirements.
A new keyword or keyword synonym in a new IMS release
can conflict with a name already assigned by your installation to
a resource such as an LTERM or a transaction. If a new keyword ABC
is
introduced and you already have an LTERM with the name ABC
,
you can change the keyword name to ABCDEFG
and remove the source
of the conflict. If the source of the conflict is the new keyword
synonym, you can change or delete the synonym.
Another reason you might want to modify the table is to limit the use of the ALL parameter for certain keywords by changing the parameter's default value from ALL=YES to ALL=NO or ALL=DIS. Using ALL=YES allows the operator to enter IMS commands with the ALL option; this requires a significant increase in storage in the IMS general pool and adversely affects IMS performance. To avoid these negative consequences, you can specify ALL=NO or ALL=DIS to be used with IMS commands except those associated with AOI transactions.
To obtain a listing of the command keyword table, print DFSCKWD0, a member of IMS.SDFSSRC. It contains the IMS keywords and synonyms described in IMS Version 13 Commands, Volume 1: IMS Commands A-M.
Details about ALL=NO and ALL=DIS options and instructions for modifying them are discussed in the following topics.
Attribute | Description |
---|---|
IMS environments | DB/DC, DCCTL, DBCTL. |
Naming convention | You must name this routine DFSCKWD0 with ALIAS CKWDTABL. |
Binding | Example: This shows you how to bind the exit routine into IMS.SDFSRESL.
|
Including the routine | No special steps are needed to include this routine. |
IMS callable services | IMS callable services are not applicable for use with this module. |
Routine location | For the latest version of DFSCKWD0, see the IMS.SDFSSRC library; member name is DFSCKWD0. |
Changing the table
Two of the macro statements that appear in the table, KEYWD and SYN, can be replaced to modify the keywords and synonyms. One way of modifying the table is:
- Edit module DFSCKWD0.
- Change the KEYWD and SYN macro statements.
- Reassemble DFSCKWD0.
- Relink the reassembled DFSCKWD0 in IMS.SDFSRESL.
Related Reading: IMS Version 13 Commands, Volume 1: IMS Commands A-M contains the list of reserved words, including command keywords, keyword synonyms, and reserved parameters.
Changes to DFSCKWD0 cannot conflict
with the names in this list. Keywords can be changed and keyword synonyms
can be added, changed, or deleted, as long as the new keyword or synonym
is not a reserved word. For example, a new synonym of MSDB
for
MSDBLOAD cannot be added, because MSDB
is a reserved parameter.
If MSDB
is made a keyword synonym, the /DBDUMP DATABASE
MSDB command fails with a syntax error.
KEYWD macro statements must be substituted one-for-one in the table. No new KEYWD macro statements can be added.
KEYWD macro
- KEYWD
- keyword,LAST=NO|YES,ALL=YES|NO|DIS
Where keyword is the new or changed keyword. LAST=NO and ALL=YES are the defaults and need not be supplied. LAST=YES must be specified if it is the last macro call in the module. A keyword cannot exceed 12 characters in length.
Specifying ALL=NO prevents the use of the ALL parameter with all IMS commands that apply to the keyword being changed (except for commands issued from AOI programs).
For example, specifying ALL=NO for the keyword LTERM prevents the use of the ALL parameter for the following commands:
- /BROADCAST LTERM ALL
- /DISPLAY ASSIGNMENT LTERM ALL
- /DISPLAY LTERM ALL
- /LOCK LTERM ALL
- /PSTOP LTERM ALL
- /PURGE LTERM ALL
- /START LTERM ALL
- /STOP LTERM ALL
- /UNLOCK LTERM ALL
Specifying ALL=DIS prevents the use of the ALL parameter with all /DISPLAY commands that apply to the keyword being changed (except for commands issued from AOI programs).
For example, specifying ALL=DIS for the keyword LTERM prevents the use of the ALL parameter for the following commands:
- /DISPLAY ASSIGNMENT LTERM ALL
- /DISPLAY LTERM ALL
SYN macro
- SYN
- synonym,LAST=YES|NO
Where synonym is the desired synonym. LAST=NO is the default and need not be specified. LAST=YES must be coded if this is the last macro call in the assembly. Synonyms cannot exceed 12 characters in length; they must be defined under the keyword to which they apply.
Error messages
- KYTBL001 - SEQUENCE ERROR. XXX CANNOT FOLLOW IKEY
- A macro was called which cannot immediately follow an IKEY macro call. XXX is either IKEY or SYN. IKEY calls cannot be modified.
- KYTBL002 - XXX CALLED WITHOUT ANY PARAMETER
- A macro was called without any parameter. XXX is either IKEY, KEYWD, or SYN.
- KYTBL003 - XXX IS NOT A VALID INTERNAL KEYWORD
- The parameter specified on an IKEY call (XXX) is not known to the system. IKEY calls cannot be modified.
- KYTBL004 - KEYWORD TABLE ASSEMBLY TERMINATED
- This message appears as a comment after the first error message in a keyword table assembly. All subsequent macro calls will only perform error checking. No code will be generated.
- KYTBL005 - SEQUENCE ERROR. KEYWD MUST FOLLOW AN IKEY CALL
- A KEYWD macro was called that does not immediately follow an IKEY call.
- KYTBL006 - LENGTH ERROR. XXX TOO LONG
- The parameter specified on a KEYWD or SYN macro is more than 12 characters in length.
- KYTBL007 - INTERNAL KEYWORD 'XXX' HAS NOT BEEN USED
- LAST=YES was specified on either a KEYWD or SYN macro call, but not all internal keywords known to the system have been generated. IKEY calls cannot be modified. LAST=YES must appear only on the last macro call in the assembly.
- KYTBL008 - XXX CANNOT BE SPECIFIED AGAIN
- Internal keyword 'XXX' has already been used. IKEY macro calls cannot be modified.
- KYTBL009 - KEYWD MACRO PARAMETER ALL IS INVALID
- ALL=NO was erroneously specified on the KEYWD macro at the time the IMS Command Keyword Table (DFSCKWD0) was modified.
Message DFS058 COMMAND COMPLETED EXCEPT xxx y z... uses the keyword table to replace 'xxx' with the keyword associated with the command that caused the message. Therefore, keywords defined by KEYWD macro calls appear in this message. Other messages, however, are prebuilt, and keywords that might have changed will still appear in these.