UPDATE IMS command

Use the UPDATE IMS command to update local and global IMS™ attributes, which include global status for areas, databases, and transactions in an IMSplex. You can also use the UPDATE IMS command to enable IMS to use the IMSRSC repository.

To change global PLEXPARM values in an IMSplex, use the UPDATE IMS SET(PLEXPARM()) command. To change local LCLPARM values in one or more IMS systems in an IMSplex, use the UPDATE IMS SET(LCLPARM()) command.

Subsections:

Environment

The following table lists the environments (DB/DC, DBCTL, and DCCTL) from which the UPDATE IMS command and keywords can be issued.

Table 1. Valid environments for the UPDATE IMS command and keywords
Command / Keywords DB/DC DBCTL DCCTL
UPDATE IMS X X X
SET X X X
OPTION X X X

Syntax

Read syntax diagramSkip visual syntax diagram
>>-+-UPDATE-+--IMS---------------------------------------------->
   '-UPD----'        

>--+-SET(LCLPARM(-+-AUTOEXPORT(N)----------------------------+-))-+-><
   |              +-FPBP64STAT(-+-N-+-)----------------------+    |   
   |              |             '-Y-'                        |    |   
   |              |           .-,------------------------.   |    |   
   |              |           V                          |   |    |   
   |              +-LOCKTIME(---+-BMP(xx)--------------+-+-)-+    |   
   |              |             +-BMPOPT(-+-ABEND--+-)-+     |    |   
   |              |             |         '-STATUS-'   |     |    |   
   |              |             +-MSG(yy)--------------+     |    |   
   |              |             '-MSGOPT(-+-ABEND--+-)-'     |    |   
   |              |                       '-STATUS-'         |    |   
   |              '-REPO(Y)--REPOTYPE(IMSRSC)----------------'    |   
   |               .-,---------------------.                      |   
   |               V                       |                      |   
   +-SET(PLEXPARM(---+-GSTSAREA(-+-N-+-)-+-+-))-------------------+   
   |                 |           '-Y-'   |                        |   
   |                 +-GSTSDB(-+-N-+-)---+                        |   
   |                 |         '-Y-'     |                        |   
   |                 '-GSTSTRAN(-+-N-+-)-'                        |   
   |                             '-Y-'                            |   
   '-SET(PLEXPARM())--OPTION(-+-CONTINUE-+-)----------------------'   
                              '-FORCE----'                            

Keywords

The following keywords are valid for the UPDATE IMS command:

LCLPARM()
Specifies the values for the local parameters to be modified. The LCLPARM() keyword is mutually exclusive with the PLEXPARM() keyword in the UPDATE IMS SET() command.

The UPDATE IMS SET(LCLPARM()) command can be used to modify local parameters such as FPBP64STAT at each IMS system.

For the UPDATE IMS SET(LCLPARM()) command, all IMS systems that received the command from OM process the command.

Specify one of the following options:

AUTOEXPORT(N)
Specifies that the automatic export processing during system checkpoint should be disabled. The AUTOEXPORT keyword is valid in a DRD environment with or without the IMSRSC repository.

For the DRD users who are enabled with RDDS data sets, the UPDATE IMS SET(LCLPARM(AUTOEXPORT(N))) command can be used after successful migration to the repository. This command reduces the processor usage of automatic export at system checkpoints.

After the UPDATE IMS command with the AUTOEXPORT(N) keyword is issued, you can continue using system RDDS data sets on the EXPORT and IMPORT commands and during automatic import. However, during import and automatic import, make sure that the RDDS contains the current data especially if AUTOEXPORT is turned off.

Automatic export to the RDDS can be enabled by specifying AUTOEXPORT=N for the DFSDFxxx PROCLIB member and then starting IMS.

FPBP64STAT
Specifies whether Fast Path 64-bit buffer usage statistics per unit of work (UOW) for dependent regions are to be written to OLDS. The Fast Path 64-bit buffer usage is recorded in X'5945' log records.
N
Does not write Fast Path 64-bit buffer usage statistics per unit of work for dependent regions in X'5945' log records to OLDS.
Y
Writes Fast Path 64-bit buffer usage statistics per unit of work for dependent regions in X'5945' log records to OLDS.
LOCKTIME
Specifies the IMS LOCKTIME values. You can specify LOCKTIME values in any combination of the following keywords and parameters:
BMP(xx)
Specifies the amount of time that IMS waits before lock requests for BMP regions are timed out. BMP regions include IMS BMP and JBP regions. The value, which represents time in seconds, can range 1 - 32767.
BMPOPT(ABEND | STATUS)
Specifies whether IMS ends a timed-out task abnormally (ABEND) or returns a status code to the application (STATUS).
MSG(yy)
Specifies the amount of time that IMS waits before lock requests for MSG regions are timed out. MSG regions include IMS MPP, JMP, and IFP regions, as well as DRA threads. The value, which represents time in seconds, can range 1 - 32767.
MSGOPT(ABEND | STATUS)
Specifies whether IMS ends a timed-out task abnormally (ABEND) or returns a status code to the application (STATUS).

Updating IMS LOCKTIME values does not affect the lock timeout value in an IRLM. To change the lock timeout value in an IRLM, use the existing MODIFY IRLM command.

Recommendation: Generally, use the same timeout values for both IMS and IRLM. When using two values in IMS, setting the IRLM timeout value to the lower of the two IMS values allows IMS and IRLM to act together. When more than one IMS is identified to the same IRLM, workload conditions might require using different timeout values across IMS systems. In such a case, note the following:
  • Using a lower timeout value in IRLM results in lock requests to wait until the time spent for waiting equals the lowest IMS LOCKTIME value.
  • Using a higher timeout value in IRLM results in lock requests to wait beyond the IMS time because IRLM does not call IMS until the IRLM timeout value is exceeded.
REPO(Y)
Enables IMS to use the repository.
REPOTYPE(IMSRSC)
The repository type that is to be enabled. REPOTYPE is required with REPO(Y).

During command processing, IMS connects to RM for the repository services to enable IMS to use the repository. If RM is not enabled to use the repository, the UPDATE IMS command results in an error. You must first enable RM to use the repository by issuing the UPDATE RM command.

To disable use of the repository, IMS must be cold started.

When IMS is initialized, repository usage is enabled only if the REPOSITORY=(TYPE=IMSRSC) statement is defined in the REPOSITORY section of the DFSDFxxx PROCLIB member. Therefore, when the UPDATE IMS SET(LCLPARM(REPO(Y) REPOTYPE(IMSRSC)) command is successfully processed, the REPOSITORY=(TYPE=IMSRSC) statement must be added before any IMS restarts because we can disable usage of the repository only across an IMS cold start.

During IMS restart, if the IMS log records indicate that the IMSRSC repository was enabled before the restart and the REPOSITORY=(TYPE=IMSRSC) statement is not defined, IMS terminates with a U0168 abend code and X’1C’ error code.

For an XRF complex, entering the command on the IMS active system results in the command being processed on the IMS alternate system. Successful completion of the command requires that both the IMS active and alternate systems add the REPOSITORY=(TYPE=IMSRSC) statement in the REPOSITORY section of their respective DFSDFxxx PROCLIB members.

PLEXPARM()
Specifies the values for the global parameters to be modified. The LCLPARM keyword is mutually exclusive with the PLEXPARM keyword in the UPDATE IMS SET() command.

The UPDATE IMS SET(PLEXPARM()) command can be used to modify global status for areas, databases, and transactions that is maintained in an IMSplex. If the command is successful, the values in the RM global PLEXPARM entry along with the values maintained in each IMS system are updated.

For the UPDATE IMS SET(PLEXPARM()) command, all IMS systems in an IMSplex receive the command, but only the command master IMS processes the command. The non-master IMS systems do not process the command that is sent from OM. Instead, the command master IMS coordinates the change across all IMS systems in the IMSplex.

Specify one or more of the following resources:
GSTSAREA
Specifies how area status is maintained in the IMSplex.
N
No global status is maintained for area resources in RM. All global status in RM for area resources is deleted.
Y
Global status is maintained for area resources in RM. Global status is maintained on subsequent UPD AREA SCOPE(ALL) commands or type-1 area commands that include a GLOBAL keyword.
GSTSDB
Specifies how database status is maintained in the IMSplex.
N
No global status is maintained for database resources in RM. All global status in RM for database resources is deleted.
Y
Global status is maintained for database resources in RM. Global status is maintained on subsequent UPD DB SCOPE(ALL) commands or type-1 database commands that include a GLOBAL keyword.
GSTSTRAN
Specifies how transaction status is maintained in the IMSplex.
N
No global status is maintained for transaction resources in RM. All global status in RM for transaction resources is deleted.
Y
Global status is maintained for transaction resources in RM. Global status is maintained on subsequent UPD TRAN SCOPE(ALL) commands.
OPTION()
Specifies options for the UPDATE IMS SET command.
CONTINUE
Indicates that IMS should continue to process a previously entered UPDATE IMS SET command that encountered an error before it completed. The command must be at a point that allows processing to continue, otherwise the command is aborted.

If OPTION(CONTINUE) is specified, no parameters can be passed on the PLEXPARM parameter.

FORCE
OPTION(FORCE) can be used in a DBCTL warm-standby environment when the UPD IMS command fails because the standby did not finish restart processing. If OPTION(FORCE) is specified, the UPD IMS command can be completed even when an IMS is in restart mode. When OPTION(FORCE) is specified, the IMS in restart mode does not participate and update the UPD IMS values; this option only allows the UPD IMS command to finish at other IMS systems. The DBCTL standby rereads the global entry when it restarts to become the active in order to obtain the current PLEXPARM values. If OPTION(FORCE) is used when a non-DBCTL standby system did not finish restart, the results might not be as expected because the IMS does not run the UPD IMS command. This could lead to errors because of mismatch in the PLEXPARM values.

Usage notes

The UPDATE IMS SET command is a type-2 command that must be issued through the OM API. The command is defined to OM as ROUTE=ALL. OM routes the command to all IMS systems in an IMSplex. This command is not a recoverable command.

The only case in which the command is processed from a log record is on an XRF alternate system, which reads an X'220E' log record of the XRF active system to stay in step with the XRF active. Even in the XRF environment, if a takeover occurs and an IMS restart is required (/ERE or /NRE), the command is not recovered. It requires that the DFSDFxxx PROCLIB member be changed to include a REPOSITORY=(TYPE=IMSRSC) statement in the REPOSITORY section. Otherwise, IMS terminates with a U0168 abend code and X’1C’ error code.

In general, when a nonzero return code is received for the UPDATE IMS command, you must enter the UPD IMS SET(PLEXPARM()) OPTION(CONTINUE) command, which tells IMS to either complete the command or to cancel the command and clean up as required. The reason code from the UPD IMS SET(PLEXPARM()) OPTION(CONTINUE) command might indicate the state of the original UPD IMS command. If the command is unable to determine the state of the original UPD IMS command, the reason code indicates that fact. The user can use the QUERY IMS command to find out the state of the global IMSplex parameters.

If an error is encountered during the UPD IMS command processing, another new UPD IMS command cannot be processed until the UPDATE IMS SET(PLEXPARM()) OPTION(CONTINUE) command is issued and completes successfully.

If the error condition that caused the nonzero return code to be received for the UPDATE IMS command is not resolved, the UPDATE IMS SET(PLEXPARM()) OPTION(CONTINUE) command continues to encounter the same error condition. The error condition must be resolved before the command can be cleaned up and another UPDATE IMS command can be entered.

This command is not valid on an RSR tracker, an FDBR system, or an XRF alternate system. However, an FDBR system and an XRF alternate system maintain global PLEXPARM values internally and report their values with a QUERY IMS SHOW (PLEXPARM) command. IMS systems on RST tracker or FDBR systems return a completion code of ICC_NA or 1. The UPD IMS command is allowed to complete at other IMS systems.

The UPD IMS SET command is not allowed if an IMS is in restart. The command fails with a 'B0' return code. The UPD IMS command must be issued after the IMS completed restart processing.

When REPO(Y) is specified, some error conditions result in a DFS3308E, DFS4400E, DFS4457E, or other error message being sent as message output in the command reply. These messages can be used to help diagnose the cause of the error.

Output fields

The following table shows the UPDATE IMS output fields. The columns in the table are as follows:
Short label
Contains the short label generated in the XML output.
Long label
Contains the long 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.
Scope
Identifies the scope of the output field.
Meaning
Provides a brief description of the output field.
Table 2. Output fields for the UPDATE IMS command
Short label Long label Keyword Scope Meaning
CC CC n/a n/a The completion code for the line of output. The completion code is always returned.
LPARM LclParmName LCLPARM LCL The name of the local parameter that is being changed. Multiple subparameters of this parameter might be changed depending on what was entered in the command.
MBR MbrName n/a n/a The IMS identifier of the IMS that built the output line. The IMS identifier is always returned.
CCTXT CCText n/a LCL Completion code text returned to provide more information about the completion code. CC text could include a return code from a service. CC text is returned only if the completion code is nonzero.
PARMNAME ParmName PARMNAME LCL The name of the global parameter that is being changed. Multiple sub-parameters of this parameter may be changed depending on what was entered in the command.
REPOTP RepositoryType LCLPARM, REPO LCL The type of the repository.

Return, reason, and completion codes

The return and reason codes that can be returned as a result of the UPDATE IMS command are standard for all commands entered through the OM API.

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.

Table 3. Return and reason codes for the UPDATE IMS command
Return code Reason code Meaning
X'00000000' X'00000000' The UPDATE IMS command completed successfully.
X'00000004' X'00001000' The UPDATE IMS command was not processed on the IMS system because the IMS system is not the command master. No resource information is returned.
X'00000004' X'00001020' UPD IMS OPTION(CONTINUE) finished cleanup, but state is not known. User must redo or reissue the command.
X'00000008' X'00002004' Both LCLPARM and PLEXPARM keywords are specified on the UPDATE IMS SET() command. LCLPARM and PLEXPARM are mutually exclusive keywords.
X'00000008' X'00002008' Neither the PLEXPARM keyword nor the LCLPARM keyword is specified on the UPDATE IMS command. Specify PLEXPARM for global parameters or LCLPARM for local parameters.
X'00000008' X'00002040' More than one filter value is specified on the UPDATE IMS command.
X'0000000C' X'00003004' No requests were successful.
X'00000010' X'00004000' The UPDATE IMS command is not processed because IMS restart is not complete.
X'00000010' X'00004004' No CQS address space.
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'00004018' No resource structure, or resource structure is not available.
X'00000010' X'0000401C' Command is not valid on the FDBR region.
X'00000010' X'00004100' The resource structure is full.
X'00000010' X'00004104' The UPDATE IMS command is not processed because RM is not available.
X'00000010' X'00004108' The UPDATE IMS command is not processed because SCI is not available.
X'00000010' X'00004124' The UPDATE IMS command is not processed because a process step is in progress.
X'00000010' X'00004128' The UPDATE IMS command is not processed because no RM process step is in progress.
X'00000010' X'00004200' The UPDATE IMS command is not processed because IMS shutdown is in progress.
X'00000010' X'00004208' Invalid command for RMENV=NO.
X'00000010' X'0000420C' Error on non-command master. The UPD IMS could not complete because of an error on the non master IMS.
X'00000010' X'00004300' For REPO(Y) or AUTOEXPORT(N), the command is rejected because dynamic resource definition (MODBLK=DYN) is not enabled.
X'00000010' X'00004501' RM is not enabled with the repository.
X'00000014' X'00005000' The UPDATE IMS command is not processed as the IMODULE GETSTOR storage could not be obtained.
X'00000014' X'00005004' The UPDATE IMS command processing terminated because a DFSOCMD response buffer could not be obtained.
X'00000014' X'00005100' The UPDATE IMS command is not processed because of a RM request error.
X'00000014' X'00005104' The UPDATE IMS command is not processed because of a CQS error.
X'00000014' X'00005108' The UPDATE IMS command is not processed because of a SCI request error.
X'00000014' X'0000510C' The UPDATE IMS command is not processed as another process is in progress.
X'00000014' X'00005110' Repository error.
X'00000014' X'00005FFF' The UPDATE IMS command is not processed because of an IMS internal error.

Errors that are unique to the processing of the UPDATE IMS command are returned as completion codes. A completion code is returned for each action against an individual resource.

Table 4. Completion codes for the UPDATE IMS command
Completion code Completion code text Meaning
0   The UPDATE IMS command completed successfully.
1   Command is not applicable to the IMS.
55 NO FASTPATH INSTALLED Command is not applicable because Fast Path is not installed.
B0   IMS restart is not complete. The UPD IMS command could not complete because an IMS did not complete restart. You need to terminate the UPD IMS command with an UPD IMS SET(PLEXPARM()) OPTION(CONTINUE). The UPD IMS SET(PLEXPARM(...)) command must be issued after the IMS finishes restart processing.
BB   Command is not applicable as RMENV=NO.
146 INVALID KEYWORD FOR DCCTL Command is not applicable in a DCCTL system.
147 FPBP64 NOT ENABLED Command is not applicable because Fast Path 64-bit buffer manager is not enabled.

Examples

The following are examples of the UPDATE IMS command:

Example 1 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(PLEXPARM(GSTSAREA(Y),GSTSDB(Y),GSTSTRAN(N)))
TSO SPOC output:
Response for UPDATE IMS SET(PLEXPARM(GSTSAREA(Y),GSTSDB(Y),GSTSTRAN(N)))
ParmName  MbrName    CC
PLEXPARM  PRODIMS1    0
PLEXPARM  PRODIMS2    0
PLEXPARM  SYS3        0

Explanation: The UPD IMS command is processed successfully at the three active IMS systems (PRODIMS1, PRODIMS2, and SYS3) in the IMSplex and is updated successfully in RM.

Example 2 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(PLEXPARM(GSTSTRAN(Y)))
TSO SPOC output:
Response for UPDATE IMS SET(PLEXPARM(GSTSTRAN(Y)))
ParmName  MbrName  CC       GSTSTRAN
PLEXNAME  PRODIMS1  0       Y
PLEXNAME  PRODIMS2  0       Y
PLEXNAME  SYS3      0       Y

Explanation: The UPD IMS command is processed successfully at the three active IMS systems (PRODIMS1, PRODIMS2, and SYS3) in the IMSplex and is updated successfully in RM.

Example 3 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(PLEXPARM(GSTSTRAN(N)))
TSO SPOC output:
Response for: UPDATE IMS SET(GSTSTRAN(Y))
MbrName   CC   GSTSTRAN CCText
SYS3       0   Y
PRODIMS1   0   Y
PRODIMS2  16   Y        IMS TIMED OUT

Example 4 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(LCLPARM(FPBP64STAT(Y)))
TSO SPOC output:
    ParmName LclParmName MbrName    CC
    LCLPARM  FPBP64STAT  IMS1        0
    LCLPARM  FPBP64STAT  IMS2        0

Explanation: In this example, the UPDATE IMS command turns on FPBP64STAT logging.

Example 5 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(LCLPARM(FPBP64STAT(N)))
TSO SPOC output:
    ParmName LclParmName MbrName    CC
    LCLPARM  FPBP64STAT  IMS1        0
    LCLPARM  FPBP64STAT  IMS2        0

Explanation: In this example, the UPDATE IMS command turns off FPBP64STAT logging.

Example 6 for UPDATE IMS command

TSO SPOC input:
UPD IMS SET(LCLPARM(LOCKTIME(MSG(40),MSGOPT(ABEND),BMP(30),
BMPOPT(STATUS))))             
TSO SPOC output:
  ParmName LclParmName MbrName    CC  
  LCLPARM  LOCKTIME    IMS1        0  
  LCLPARM  LOCKTIME    IMS2        0    

Explanation: In this example, the UPDATE IMS command updates IMS LOCKTIME values.

Example 7 for UPDATE IMS command

TSO SPOC input:
UPD IMS SET(LCLPARM(REPO(Y) REPOTYPE(IMSRSC))) 
TSO SPOC output:
ParmName LclParmName RepositoryType MbrName    CC      
LCLPARM  REPO        IMSRSC         IMS1        0      
LCLPARM  REPO        IMSRSC         IMS2        0   
OM API input:
CMD(UPD IMS SET(LCLPARM(REPO(Y) REPOTYPE(IMSRSC))))
OM API output:
<imsout>                                           
<ctl>                                              
<omname>OM1OM   </omname>                          
<omvsn>1.5.0</omvsn>                               
<xmlvsn>20  </xmlvsn>                              
<statime>2011.190 01:45:07.574341</statime>        
<stotime>2011.190 01:45:07.618879</stotime>        
<staseq>C80A9624D1245C48</staseq>                                           
<stoseq>C80A9624DC03F148</stoseq>                                           
<rqsttkn1>USRT005 10184507</rqsttkn1>                                       
<rc>00000000</rc>                                                           
<rsn>00000000</rsn>                                                         
</ctl>                                                                      
<cmd>                                                                       
<master>IMS1    </master>                                                   
<userid>USRT005 </userid>                                                   
<verb>UPD </verb>                                                           
<kwd>IMS             </kwd>                                                 
<input>UPD IMS SET(LCLPARM(REPO(Y) REPOTYPE(IMSRSC))) </input>              
</cmd>                                                                      
<cmdrsphdr>                                                                 
<hdr slbl="PARM" llbl="ParmName" scope="LCL" sort="a" key="1"               
 scroll="no" len="8" dtype="CHAR" align="left" />                           
<hdr slbl="LPARM" llbl="LclParmName" scope="LCL" sort="a" key="2"           
 scroll="no" len="10" dtype="CHAR" align="left" />                          
<hdr slbl="REPOTP" llbl="RepositoryType" scope="LCL" sort="n" key="0"       
 scroll="no" len="8" dtype="CHAR" align="left" skipb="yes" />               
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="3" 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" />                                      
<hdr slbl="CCTXT" llbl="CCText" scope="LCL" sort="n" key="0"               
 scroll="yes" len="32" dtype="CHAR" align="left" skipb="yes" />            
</cmdrsphdr>                                                               
<cmdrspdata>    
<rsp>PARM(LCLPARM) LPARM(REPO      ) REPOTP(IMSRSC  ) MBR(IMS1) CC(        
 0) </rsp>                                                                 
<rsp>PARM(LCLPARM) LPARM(REPO      ) REPOTP(IMSRSC  ) MBR(IMS2) CC(        
 0) </rsp>                                                                 
</cmdrspdata>                                                              
</imsout>                    

Explanation: In this example, IMS1 and IMS2 are enabled to use the repository for REPOTYPE=IMSRSC. The user needs to issue the QUERY IMS command to obtain the repository name.

Example 8 for UPDATE IMS command

TSO SPOC input:
UPDATE IMS SET(LCLPARM(AUTOEXPORT(N)) 
TSO SPOC output:
 ParmName LclParmName MbrName CC  
 LclParm  AUTOEXPORT  IMS1     0   
 LclParm  AUTOEXPORT  IMS2     0   

Explanation: In this example, IMS1 and IMS2 have AUTOEXPORT disabled at the next checkpoint.