UPDATE PGMDESC command
Use the UPDATE PGMDESC command to update program descriptors. A descriptor is a model that can be used to create descriptors or resources.
Updating a descriptor changes only the attributes explicitly specified on the UPDATE command. Attributes not specified retain their existing values. Any program resource or descriptor can be created using this descriptor as a model, by specifying the CREATE LIKE(DESC(descriptor_name)) command. Any descriptor or resource that was already created using this descriptor is not updated.
Subsections:
Environment
The following table lists the environments (DB/BC, DBCTL, and DCCTL) in which you can use the commands and keywords.
Command / Keywords | DB/DC | DBCTL | DCCTL |
---|---|---|---|
UPDATE PGMDESC | X | X | X |
NAME | X | X | X |
OPTION | X | X | X |
SET | X | X | X |
Syntax
.-,----. V | >>-+-UPDATE-+--PGMDESC--NAME(---name-+-)------------------------> '-UPD----' .-,----------------------------. V | >----SET(---+-BMPTYPE(-+-Y-+-)---------+-+-)--------------------> | '-N-' | +-DEFAULT(Y)---------------+ +-DOPT(-+-N-+-)------------+ | '-Y-' | +-FP(-+-E-+-)--------------+ | '-N-' | +-GPSB(-+-N-+-)------------+ | '-Y-' | +-LANG(-+-ASSEM--+-)-------+ | +-COBOL--+ | | +-JAVA---+ | | +-PASCAL-+ | | '-PLI----' | +-RESIDENT(-+-N-+-)--------+ | '-Y-' | +-SCHDTYPE(-+-PARALLEL-+-)-+ | '-SERIAL---' | '-TRANSTAT(-+-N-+-)--------' '-Y-' >--+----------------+------------------------------------------>< '-OPTION(ALLRSP)-'
Keywords
The following keywords are valid for the UPDATE PGMDESC command:
- NAME
- Specifies the 1-8 character name of the program descriptor. Wildcards can be specified in the name. The name is a repeatable parameter. If the NAME parameter specified is a specific or wildcard name, command responses are returned for all the descriptor names that are processed. For NAME(*), command responses are returned only for the descriptor names that resulted in an error. OPTION(ALLRSP) can be specified with NAME(*) to obtain the command responses for all the descriptor names that are processed.
- OPTION
- Specifies additional functions to be performed along with the
command.
- ALLRSP
- Indicates that the response lines are to be returned for all descriptors that are processed on the command. The default action is to return response lines only for the descriptors that resulted in an error. It is only valid with NAME(*). ALLRSP is ignored for other NAME values.
- SET
- Specifies the attribute values to be changed.
- BMPTYPE
- BMP type option. Specifies whether
the program executes in a BMP type region or not. A BMP type region
can be a BMP region or a JBP region.
PSBs scheduled by DB2® stored procedures, by programs running under WebSphere® Application Server, and by other users of the ODBA interface may be defined with BMPTYPE Y or N.
- Y
- The program executes in a BMP type region. It can execute in an IMS™ BMP region or a JBP region. Any associated transactions are assigned normal and limit priority values of zero.
- N
- The program does not execute in a BMP type region. It may execute in an IMS TM MPP, JMP, or IFP region, or it may use either the ODBA or DRA interface. This specification should be used for programs running in IMS TM MPP, JMP, and IFP regions, or PSBs scheduled by CICS® programs using DBCTL and other users of the DRA interface. This is the default.
Keyword combination rules include the following:
- BMPTYPE(Y) and FP(E) are mutually exclusive.
- DEFAULT(Y)
- Specifies this descriptor as the default, which resets the existing default descriptor to DEFAULT(N). When a descriptor or resource is created without the LIKE keyword, any attribute not specified on the CREATE command takes the value defined in the default descriptor. Only one descriptor can be defined as the default for a resource type. IMS defines a program descriptor called DFSDSPG1, where all attributes are defined with the default value. Defining a user-defined descriptor to be the default overrides the current default descriptor. Since only one program descriptor can be the default at one time, only one descriptor name can be specified with DEFAULT(Y).
- DOPT
- Specifies the dynamic option.
- N
- The PSB associated with this program is not located dynamically. The PSB must exist in ACBLIB, otherwise the program is set to a NOTINIT status, and cannot be scheduled.
- Y
- The PSB associated with this program is located dynamically. Each time the program associated with this PSB is scheduled, the latest copy of the PSB is loaded from ACBLIB. The PSB does not need to be in any data set defined for ACBLIB until it is actually required to process a transaction. A new version of the PSB can be genned in ACBLIB and is picked up the next time the PSB is scheduled. DOPT PSBs referencing DBDs that are missing from ACBLIB cannot be scheduled. When the program terminates, the PSB is deleted from the PSB pool.
Keyword combination rules include the following:
- DOPT(Y) and GPSB(Y) are mutually exclusive.
- DOPT(Y) and LANG(JAVA) is a valid combination.
- LANG is invalid with GPSB(N), except if DOPT(Y) and LANG(JAVA).
- LANG(JAVA), DOPT(Y), and GPSB(N) is a valid combination.
- RESIDENT(Y) and DOPT(Y) are mutually exclusive.
- SCHDTYPE(PARALLEL) and DOPT(Y) are mutually exclusive.
- FP
- Specifies the Fast Path option.
- E
- The program is a Fast Path-exclusive application program. This implicitly defines a wait-for-input (WFI) application program. Either a transaction or a routing code that can be assigned by the user Input Edit/Routing exit routine must be defined for the Fast Path-exclusive application, in order for this program to be usable.
- N
- The program is not a Fast Path-exclusive application program. When FP(N) is specified, any attempt to use Fast Path resources or commands will yield unpredictable results.
Keyword combination rules include the following:
- FP(E) requires Fast Path to be defined.
- LANG(JAVA) and FP(E) are mutually exclusive.
- BMPTYPE(Y) and FP(E) are mutually exclusive.
- GPSB
- Specifies the generated PSB option.
- N
- The PSB associated with the program is not generated by IMS. The PSB must exist in ACBLIB; otherwise the program is set to a NOTINIT status and cannot be scheduled.
- Y
- The PSB associated with the program is generated by IMS. It is not loaded from ACBLIB. The scheduling process of all environments generates a PSB containing an I/O PCB and an alternate modifiable PCB. You do not need to perform the PSBGEN and ACBGEN, thus eliminating I/O to the ACBLIB.
The generated PSB contains an I/O PCB named IOPCBbbb and a modifiable, alternate PCB named TPPCB1bb. With an alternate modifiable PCB, an application can use the CHNG call to change the output destination and send output to a destination other than the input destination.
Keyword combination rules include the following:
- DOPT(Y) and GPSB(Y) are mutually exclusive.
- DOPT(Y) and LANG(JAVA) is a valid combination.
- GPSB(Y) requires LANG.
- LANG is invalid with GPSB(N), except if DOPT(Y) and LANG(JAVA).
- LANG(JAVA), DOPT(Y), and GPSB(N) is a valid combination.
- RESIDENT(Y) and GPSB(Y) are mutually exclusive.
- LANG
- Specifies the language interface
of the application program for a GPSB.
The LANG parameters and their meanings are identified in the following table.
LANG parameter Meaning ASSEM Assembler COBOL COBOL JAVA Java™ PASCAL Pascal PLI PL/I Keyword combination rules include the following:
- LANG is invalid with GPSB(N), except if DOPT(Y) and LANG(JAVA).
- DOPT(Y) and LANG(JAVA) is a valid combination.
- LANG(JAVA), DOPT(Y), and GPSB(N) is a valid combination.
- FP(E) and LANG(JAVA) are mutually exclusive.
- RESIDENT
- Specifies the resident option.
- N
- The PSB associated with the program is made to be not resident in storage. The PSB is loaded at scheduling time.
- Y
- The PSB associated with the program is made to be resident in storage immediately. IMS loads the PSB and initializes it. The PSB is removed from the PSB pool, if applicable. A resident PSB is accessed in local storage, which eliminates I/O to retrieve the ACB.
Keyword combination rules include the following:
- DOPT(Y) and RESIDENT(Y) are mutually exclusive.
- GPSB(Y) and RESIDENT(Y) are mutually exclusive.
- SCHDTYPE
-
Specifies whether this application program can be scheduled into more than one message region or batch message region simultaneously.
- PARALLEL
- The application program can be scheduled in multiple regions simultaneously.
- SERIAL
- The application program can be scheduled in only one region at a time.
Updating this attribute to SCHDTYPE(SERIAL) is rejected if a transaction referencing this program is defined with a parallel limit count other than 65535.
Keyword combination rules include the following:
- DOPT(Y) and SCHDTYPE(PARALLEL) are mutually exclusive.
- TRANSTAT
- Specifies whether transaction level statistics should be logged.
The value specified has meaning only if the program is a JBP or a
non-message driven BMP. If Y is specified, transaction level statistics
are written to the log in a X'56FA' log record.
- N
- Transaction level statistics should not be logged.
- Y
- Transaction level statistics should be logged.
Usage notes
If all the attributes specified by the UPDATE command are already defined for the descriptor, no update is actually made, no descriptors are quiesced, no log record is created, and a completion code of zero is returned. This avoids unnecessary overhead when no action needs to be taken.
Descriptors exist for the life of the IMS unless they are deleted using a DELETE command. Descriptors are recoverable across an IMS warm start or emergency restart. Descriptors are lost if IMS is cold started, unless cold start imports definitions that were exported while IMS was up.
The UPDATE PGMDESC command can be issued only through the OM API. This command applies to DB/DC, DBCTL and DCCTL systems.
This command is not valid on the XRF alternate, RSR tracker, or FDBR region. The UPDATE PGMDESC commands are not valid if online change for MODBLKS is enabled (DFSDFxxx or DFSCGxxx defined with MODBLKS=OLC, or MODBLKS not defined).
This command is recoverable.
If the descriptor is the IMS-defined program descriptor (DFSDSPG1) the only attributes that can be updated are the DEFAULT (SET(DEFAULT(Y))) and the TRANSTAT (SET(TRANSTAT(Y|N|))) attributes.
Each descriptor is updated individually. Individual updating does not work like online change where either all descriptors are updated or no descriptors are updated.
Output fields
- Short label
- Contains the short label generated in the XML output.
- Keyword
- Identifies keyword on the command that caused the field to be generated. N/A appears for output fields that are always returned. error appears for output fields that are returned only in case of an error.
- Meaning
- Provides a brief description of the output field.
Short label | Keyword | Meaning |
---|---|---|
CC | N/A | Completion code |
CCTXT | error | Completion code text that briefly explains the nonzero completion code. |
DESC | PGMDESC | Program descriptor name. |
ERRT | error | Error text with diagnostic information. Error text can be returned for a nonzero completion code and contains information that further explains the completion code. |
MBR | N/A | IMSplex member that built the output line. |
OLDDEF | PGMDESC | Old default descriptor name, if this descriptor is updated to be the default by specifying DEFAULT(Y). The old default descriptor is no longer the default. |
Return, reason, and completion codes
The following table includes the return and reason codes and a brief explanation of the codes. The return or reason code returned for the command might also indicate an error from a CSL request.
Return code | Reason code | Meaning |
---|---|---|
X'00000000' | X'00000000' | Command completed successfully. The command output contains a line for each descriptor, accompanied by its completion code. If NAME(*) is specified without OPTION(ALLRSP), no output lines are returned. See the completion code table for details. |
X'00000004' | X'00002008' | Invalid number of keywords. A SET keyword is required. |
X'00000008' | X'00002048' | Invalid SET attribute. |
X'00000008' | X'00002106' | DOPT(Y) mutually exclusive with RESIDENT(Y). |
X'00000008' | X'00002107' | DOPT(Y) mutually exclusive with SCHDTYPE(PARALLEL). |
X'00000008' | X'0000210B' | FP(E) mutually exclusive with BMPTYPE(Y). |
X'00000008' | X'0000210D' | FP(E) mutually exclusive with LANG(JAVA). |
X'00000008' | X'00002113' | GPSB(Y) mutually exclusive with DOPT(Y). |
X'00000008' | X'00002114' | GPSB(N) is mutually exclusive with LANG. |
X'00000008' | X'00002115' | GPSB(Y) mutually exclusive with RESIDENT(Y). |
X'00000008' | X'00002132' | DOPT(Y) not supported with LANG except for LANG(JAVA). |
X'00000008' | X'00002133' | Multiple name parameters were specified with DEFAULT(Y). Only one descriptor can be the default at a time. |
X'0000000C' | X'00003000' | Command was successful for some descriptors but failed for others. The command output contains a line for each descriptor, accompanied by its completion code. If NAME(*) is specified without OPTION(ALLRSP), only descriptors with non-zero completion codes are returned. See the completion code table for details. |
X'0000000C' | X'00003004' | Command was not successful for any of the descriptors. The command output contains a line for each descriptor, accompanied by its completion code. See the completion code table for details. |
X'00000010' | X'0000400C' | Command is not valid on the XRF alternate. |
X'00000010' | X'00004014' | Command is not valid on the RSR tracker. |
X'00000010' | X'00004024' | No Fast Path defined, FP(E) is invalid. |
X'00000010' | X'00004120' | Online change phase is in progress. |
X'00000010' | X'00004300' | Command is not allowed because online change for MODBLKS is enabled (DFSDFxxx or DFSCGxxx defined with MODBLKS=OLC, or MODBLKS not defined). |
X'00000014' | X'00005004' | DFSOCMD response buffer could not be obtained. |
X'00000014' | X'00005008' | DFSPOOL storage could not be obtained. |
X'00000014' | X'0000500C' | AWE could not be obtained. |
Errors unique to the processing of this command are returned as completion codes. The following table includes an explanation of the completion codes.
Completion code | Completion code text | Meaning |
---|---|---|
0 | Command completed successfully for program descriptor. | |
10 | NO RESOURCES FOUND | Program descriptor name is invalid, or the wildcard parameter specified does not match any descriptor names. |
17 | ANOTHER CMD IN PROGRESS | Another command (such as DELETE or UPDATE) is in progress for this program descriptor. This could also mean this command, if the descriptor is specified by more than one specific or wildcard parameter. |
29 | DOPT=Y/RESIDENT=Y CONFLICT | Program descriptor update failed because dynamic DOPT(Y) option conflicts with resident RESIDENT(Y) option. |
2A | DOPT=Y/PARALLEL CONFLICT | Program descriptor update failed because dynamic DOPT(Y) option conflicts with parallel schedule SCHDTYPE(PARALLEL) option. |
2F | FP=E/BMPTYPE=Y CONFLICT | Program descriptor update failed because Fast Path exclusive FP(E) option conflicts with BMP type BMPTYPE(Y). |
37 | FP=E/LANG=JAVA CONFLICT | Program descriptor update failed because Fast Path exclusive FP(E) option conflicts with Java language LANG(JAVA). |
40 | PARLIM/SCHDTYPE=SERIAL CONFLICT | The SCHDTYPE value cannot be changed to SERIAL because a transaction that references the program has a PARLIM value that is something other than 65535. The program definition is not updated. |
43 | GPSB=Y/DOPT=Y CONFLICT | Program descriptor updated failed because generated PSB GPSB(Y) option conflicts with dynamic DOPT(Y) option. |
46 | GPSB=N/LANG CONFLICT | Generated PSB option N (GPSB(N)) conflicts with the language option (LANG()). The program definition is not updated. |
47 | GPSB=Y/RESIDENT=Y CONFLICT | Program descriptor update failed because generated PSB GPSB(Y) option conflicts with the resident RESIDENT(Y) option. |
48 | NOT ALLOWED FOR IMS RESOURCE | The specified UPDATE command is not allowed for the IMS descriptor or resource. DFSDSPG1 is an example of an IMS descriptor. The only IMS descriptor attribute you can update is DEFAULT(Y). |
8A | WILDCARD PARAMETER NOT SUPPORTED | A wildcard parameter was specified with DEFAULT(Y). Only one descriptor can be the default at a time. |
97 | DOPT=Y/LANG CONFLICT | Program descriptor update failed because dynamic option DOPT(Y) conflicts with LANG specified. DOPT(Y) is only supported with LANG(JAVA). |
1D7 | IMPORT CHANGE LIST ERROR | The descriptor is in the process of being imported from the change list in the IMSRSC repository or was not successfully imported from the change list. The descriptor cannot be updated until it is successfully imported from the repository. |
Examples
The following are examples of the UPDATE PGMDESC command:
Example 1 for UPDATE PGMDESC command
UPDATE PGMDESC NAME(*) SET(BMPTYPE(Y)) OPTION(ALLRSP)
Response for: UPDATE PGMDESC NAME(*) SET(BMPTYPE(Y)) OPTION(ALLRSP)
DescName MbrName CC CCText
DESC001 IMS1 0
DESC002 IMS1 0
DESC003 IMS1 0
DESC004 IMS1 0
DESC005 IMS1 0
DFSDSPG1 IMS1 48 NOT ALLOWED FOR IMS RESOURCE
DOPTDESC IMS1 0
FPEDESC IMS1 2F FP=E/BMPTYPE=Y CONFLICT
GPSBDESC IMS1 0
PARLDESC IMS1 0
RESDESC IMS1 0
TLSDESC IMS1 0
CMD(UPDATE PGMDESC NAME(*) SET(BMPTYPE(Y)) OPTION(ALLRSP))
<imsout>
<ctl>
<omname>OM1OM </omname>
<omvsn>1.3.0</omvsn>
<xmlvsn>20 </xmlvsn>
<statime>2006.312 23:30:46.559300</statime>
<stotime>2006.312 23:30:46.559923</stotime>
<staseq>BFAD4FE141E44D08</staseq>
<stoseq>BFAD4FE1420B3F48</stoseq>
<rqsttkn1>USRT011 10153046</rqsttkn1>
<rc>0200000C</rc>
<rsn>00003008</rsn>
<rsnmsg>CSLN054I</rsnmsg>
<rsntxt>None of the clients were successful.</rsntxt>
</ctl>
<cmderr>
<mbr name="IMS1 ">
<typ>IMS </typ>
<styp>DBDC </styp>
<rc>0000000C</rc>
<rsn>00003000</rsn>
<rsntxt>At least one request successful</rsntxt>
</mbr>
</cmderr>
<cmd>
<master>IMS1 </master>
<userid>USRT011 </userid>
<verb>UPD </verb>
<kwd>PGMDESC </kwd>
<input>UPDATE PGMDESC NAME(*) SET(BMPTYPE(Y)) OPTION(ALLRSP) </input>
</cmd>
<cmdrsphdr>
<hdr slbl="DESC" llbl="DescName" scope="LCL" sort="a" key="1"
scroll="no" len="8" dtype="CHAR" align="left" />
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="2" scroll="no"
len="8" dtype="CHAR" align="left" />
<hdr slbl="CC" llbl="CC" scope="LCL" sort="n" key="0" scroll="yes"
len="4" dtype="INT" align="right" skipb="no" />
<hdr slbl="CCTXT" llbl="CCText" scope="LCL" sort="n" key="0"
scroll="yes" len="*" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="ERRT" llbl="ErrorText" scope="LCL" sort="n" key="0"
scroll="yes" len="*" dtype="CHAR" skipb="yes" align="left" />
</cmdrsphdr>
<cmdrspdata>
<rsp>DESC(DESC004 ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DESC005 ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DESC001 ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DOPTDESC) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(RESDESC ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DFSDSPG1) MBR(IMS1) CC( 48) CCTXT(NOT ALLOWED FOR IMS RESOURCE) </rsp>
<rsp>DESC(TLSDESC ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DESC002 ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(PARLDESC) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(DESC003 ) MBR(IMS1) CC( 0) </rsp>
<rsp>DESC(FPEDESC ) MBR(IMS1) CC( 2F) CCTXT(FP=E/BMPTYPE=Y CONFLICT)
</rsp>
<rsp>DESC(GPSBDESC) MBR(IMS1) CC( 0) </rsp>
</cmdrspdata>
</imsout>
Explanation: Update all program descriptors to be BMPTYPE(Y). The update completed successfully for most program descriptors, as shown by completion code 0. The update failed for IMS-defined descriptor DFSDSPG1 with completion code 48, because the only attribute that can be updated for DFSDSPG1 is DEFAULT(Y). The update failed for program descriptor FPEDESC with completion code 2F, because the BMPTYPE(Y) attribute conflicts with the Fast Path exclusive FP(E) attribute already defined for program descriptor FPEDESC.