UPDATE OTMADESC command

Use the UPDATE OTMADESC command to update an existing OTMA destination descriptor without restarting IMS™.

Environment

The following table lists the environments (DB/DC, DBCTL, and DCCTL) in which you can use the commands and keywords.

Table 1. Valid environments for the UPDATE OTMADESC command and keywords
Command / Keywords DB/DC DBCTL DCCTL
UPDATE OTMADESC X   X
NAME X   X
SET X   X
Start of change

Syntax

Read syntax diagramSkip visual syntax diagram
                               .-,-------------.     
                               V               |     
>>---UPDATE----OTMADESC--NAME(-----destname*---+-)-------------->

>--SET(-+-| A |-+-)--+---------------+-------------------------><
        +-| B |-+    |       .-N-.   |   
        '-| C |-'    '-EXIT(-+-Y-+-)-'   

A (Descriptor TYPE=IMSCON)

|--+----------------------------------------------+------------->
   '-ADAPTER(adaptername)--CONVRTR(convertername)-'   

>--+----------------------------------------------+------------->
   '-RMTIMSCON(rmtimsconnect)--RMTIMS(remote_IMS)-'   

>--+-------------------+--SMEM(-+-N-+-)--SYNTIMER(syntimer)----->
   '-RMTTRAN(trancode)-'        '-Y-'                         

>--TMEMBER(tmem)--TPIPE(tpipename)--+-----------------+---------|
                                    '-USERID(user_id)-'   

B (Descriptor TYPE=IMSTRAN)

|--+---------------+--+------------------+---------------------->
   '-TMEMBER(tmem)-'  '-TPIPE(tpipename)-'   

>--+---------------------+--+-------------------+--------------->
   '-LTERMOVR(ltermname)-'  |           .-Y-.   |   
                            '-REPLYCHK(-+-N-+-)-'   

>--+---------------+--+-------------------------+---------------|
   |       .-N-.   |  '-SYNTIMER(timeout value)-'   
   '-SMEM(-+-Y-+-)-'                                

C (Descriptor TYPE=MQSERIES)

|--TMEMBER(tmem)--+------------------+-------------------------->
                  '-TPIPE(tpipename)-'   

>--+--------------------------+--+----------------+------------->
   |           .-COPYMTOC-.   |  '-USERID(userid)-'   
   '-MQREPORT(-+-NEWMSGID-+-)-'                       
               +-PASSMSG1-+                           
               +-PASSCORR-+                           
               '-NONE-----'                           

>--+-------------------------+---------------------------------->
   |           .-MQIMSVS-.   |   
   '-MQFORMAT(-+-MQIMS---+-)-'   
               +-NONE----+       
               '-MQSTR---'       

>--+-------------------------------+--+---------------------+--->
   '-MQRTF(mqmd_replytoformatname)-'  '-MQMSGID(mqmd_msgid)-'   

>--+-------------------------+--MQRTQ(mqmd_replytoqueuename)---->
   '-MQCORREL(mqmd_correlid)-'                                 

>--+------------------------------------+----------------------->
   '-MQRTQMGR(mqmd_replytoqueuemgrname)-'   

>--+--------------------------------+--+-------------------+---->
   '-MQAPPLID(mqmd_appidentitydata)-'  |           .-Y-.   |   
                                       '-MQCOPYMD(-+-N-+-)-'   

>--+-----------------+--+------------------+--------------------|
   |         .-N-.   |  |          .-N-.   |   
   '-SYNCTP(-+-Y-+-)-'  '-MQPERST(-+-Y-+-)-'   

End of change

Keywords

The following keywords are valid for the UPDATE OTMADESC command:

NAME(destname*)
A required keyword whose value cannot be modified.
SET()
Specifies to update the descriptors with at least one of the following keywords. The update applies to each of the descriptor names specified in the NAME keyword. If an asterisk is appended to the descriptor name, the update will not be applied to the group of names it is trying to mask.
ADAPTER(adaptername)
An optional parameter for TYPE(IMSCON) that identifies the IMS Connect adapter. adaptername is a 1- to 8-character adapter name. To clear the value of this keyword, specify the keyword with no value, for example, ADAPTER(). If the ADAPTER keyword is deleted, the CONVRTR keyword is also deleted. ADAPTER and TYPE(NONOTMA) are mutually exclusive.
CONVRTR(convertername)
A required parameter only if the ADAPTER keyword is specified. convertername is a 1- to 8-character converter name used by the adapter. The value of this keyword will be automatically deleted if the value of the ADAPTER keyword is being deleted. Coding this keyword without the ADAPTER keyword or with TYPE(NONOTMA) is not valid.
Start of changeEXIT(N|Y)End of change
Start of changeWhen TYPE=IMSTRAN, this is an optional parameter used to indicate whether the IMS user exit (DFSCMUX0) can override the descriptor routing information for late messages.End of change
Start of changeFor other descriptor types, this is an optional parameter used to specify whether the OTMA routing exits (DFSYPRX0 and DFYDRU0) can override the descriptor switch destination from ALT IOPCB.End of change
Start of changeLTERMOVR(ltermname)End of change
Start of changeWhen TYPE=IMSTRAN, this is an optional parameter used to specify a logical terminal name that overrides the name specified in the application I/O PCB. If an override name is also specified in the AIBRSNM2 field of the AIB, that name is used instead of the name in the descriptor. If an override name is not specified in the descriptor or the AIB, the IMS application terminal symbolic (PSTSYMBO) is used as the default logical terminal name for the target transaction.End of change
Start of changeMQAPPLID(mqmd_appidentitydata)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies a 1- to 32-character value for the MQMD_APPLIDENTITYDATA field. This field is used to pass data to the receiving IBM MQ application. The default is 32 blanks.End of change
Start of changeMQCOPYMD(Y | N)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies whether the original input values of the MQMD data structure from the MQ IMS Bridge are copied to the output message.End of change
Start of changeMQCORREL(mqmd_correlid)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies a 1- to 24-character value for the MQMD_CORRELID field. This value is passed directly to the receiving IBM MQ application if the value of the MQREPORT parameter is PASSCORR. The default is 0.End of change
Start of changeMQFORMAT(MQIMSVS | MQIMS | NONE | MQSTR)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies value for the MQMD_FORMAT field. The default value is MQIMSVS.End of change
Start of changeMQMSGID(mqmd_msgid)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies a 1- to 24-character value for the MQMD_MSGID field. This value is passed directly to the receiving IBM MQ application if the value of the MQREPORT parameter is PASSMSG1.End of change
Start of changeMQPERST(N | Y)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies whether messages that use this descriptor are persistent on a SYNC TPIPE. Setting this parameter to Y is analogous to setting X’40’ for the output flag value of the DFSYDRU0 exit routine.End of change
Start of changeMQREPORT(COPYMTOC | NEWMSGID | PASSMSG1 | PASSCORR | NONE)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies the MQMD_REPORT field value for messages that use the descriptor. The default value is COPYMTOC. Each supported value corresponds to an equivalent value in the MQMD data structure:
Parameter value
Equivalent MQMD structure value
NEWMSGID
MQRO_NEW_MSG_ID
PASSMSGI
MQRO_PASS_MSG_ID
COPYMTOC
MQRO_COPY_MSG_ID_TO_CORREL_ID
PASSCORR
MQRO_PASS_CORREL_ID
PASSMSCO
MQRO_PASS_MSG_ID and MQRO_PASS_CORREL_ID
NONE
MQRO_NONE
End of change
Start of changeMQRTF(mqmd_replytoformat)End of change
Start of changeWhen TYPE=MQSERIES, this is a 1- to 8-character value for the MQMD_REPLYTOFORMAT field. The default is 0.End of change
Start of changeMQRTQ(mqmd_replytoqueuename)End of change
Start of changeWhen TYPE=MQSERIES, this is a required parameter that specifies a 1- to 48-character value for the MQMD_REPLYTOQ field.End of change
Start of changeMQRTQMGR(mqmd_replytoqueuemanagername)End of change
Start of changeWhen TYPE=MQSERIES, this is an optional parameter that specifies a 1- to 48-character value for the MQMD_REPLYTOQMGR field. If this parameter is not specified, MQSeries® will use the local queue manager.End of change
Start of changeREPLYCHK(Y|N)End of change
Start of changeSpecifies whether an IMS application replies to the IOPCB for a synchronous program switch request. When REPLYCHK=YES and the ICAL target application does not reply to the IOPCB or switch to another transaction, IMS gives the error return code X’0100’, with reason code X’0110’, and extended reason code X’0014’ instead of a timeout to the ICAL call. The default is Y.End of change
RMTIMS
An optional 1- to 8-character name of a remote, destination IMS system for ALTPCB output messages. The RMTIMS value must match the value specified on the ID parameter of a DATASTORE statement in the configuration member of the remote IMS Connect instance specified on the RMTIMSCON parameter. This parameter is valid only when TYPE(IMSCON) is specified. To clear the value of this parameter, specify the parameter with no value, for example, RMTIMS(). Clearing the value of RMTIMS also clears the value of RMTIMSCON.
RMTIMSCON
An optional 1- to 8-character name of a connection to the remote IMS Connect instance that manages TCP/IP communications for the remote IMS system that is named on the RMTIMS parameter. This value must match the value specified on the ID parameter of the RMTIMSCON statement in the configuration file of the local IMS Connect instance that is managing TCP/IP communications for the IMS system in which the OTMA ALTPCB output messages are originating. This parameter is valid only when TYPE(IMSCON) is specified. To clear the value of this parameter, specify the parameter with no value, for example, RMTIMSCON(). Clearing the value of RMTIMSCON also clears the value of RMTIMS.
RMTTRAN
An optional 1- to 8-character name of the transaction name to use at the remote, destination IMS system named on the RMTIMS parameter. When this parameter is specified with RMTIMSCON and RMTIMS parameters, IMS OTMA sends the ALTPCB output messages to the remote IMS system for transaction processing. This parameter is valid only when TYPE(IMSCON) is specified. To clear the value of this parameter, specify the parameter with no value, for example, RMTTRAN().
SMEM(N | Y)
An optional parameter that can either be a Y or N value to indicate whether the TMEMBER name specified in the TMEMBER parameter is a super member. To clear the value of this keyword, specify the keyword with no value, for example, SMEM(). Deleting SMEM() will default to SMEM(N). If the TMEMBER name is a super member, the length of the TMEMBER name has a maximum of 4 characters. SMEM and TYPE(NONOTMA) are mutually exclusive.
Start of changeSYNCTP(N | YEnd of change
Start of changeWhen TYPE=MQSERIES, this parameter specifies whether a SYNC TPIPE must be created for messages that use this descriptor. Setting this parameter to Y is analogous to setting X’80’ for the output flag value of the DFSYDRU0 exit routine.End of change
SYNTIMER(syntimer)
An optional parameter used for synchronous callout processing. In synchronous callout processing, a request is canceled if an ACK/NAK or response is not received by OTMA from the client within the time specified. This value is expressed in hundredths of a second or milliseconds. The value can be numeric with a maximum length of six digits. The value has a range of 0 through 999999 and when zero is specified, it will default to 10 seconds or 1000 hundredths of a second. If you specify SYNTIMER() or SYNTIMER( ), the timeout value will be reset as if no timeout value has been specified.
Start of changeIf TYPE(IMSTRAN) is specified, this parameter is the timeout value for synchronous program switch ICAL calls. If a timeout value is also specified in the AIB interface, IMS will compare the timeout values and use the lower value.End of change
TMEMBER(tmem)
A required parameter for TYPE(IMSCON). If the TYPE of the descriptor is being changed from IMSCON to NONOTMA, the value of this keyword will be deleted. If the TYPE of the descriptor is being changed from NONOTMA to IMSCON, then the TMEMBER keyword must be coded. tmem is a 16-character OTMA TMEMBER name or a 4-character super member. TMEMBER and TYPE(NONOTMA) are mutually exclusive.
Start of changeAn optional parameter for TYPE(IMSTRAN). The tmem value is a 1- to 16-character OTMA TMEMBER name. IMS queues late responses from a synchronous program switch to this OTMA TMEMBER. The destination name is used as the default OTMA TPIPE name if the TPIPE parameter is not specified in the descriptor. End of change
TPIPE(tpipename)
An optional parameter that is a 1- to 8-character TPIPE name when TYPE(IMSCON) is specified. To delete the value of this keyword, specify the keyword with no value, for example, TPIPE(). If this keyword is not specified, the TPIPE name is the destination name specified in the NAME keyword. TPIPE and TYPE(NONOTMA) are mutually exclusive.
Start of changeAn optional parameter for TYPE(IMSTRAN) that specifies a 1- to 8-character TPIPE name. This parameter defaults to the destination name. IMS queues late responses from a synchronous program switch to this OTMA TPIPE. A value for the TMEMBER parameter is required when TPIPE is specified.End of change
USERID
For TYPE=IMSCON, this is an optional 1- to 8-character RACF® user ID. When this parameter is specified with RMTIMSCON, RMTTRAN, and RMTIMS parameters, a remote, destination IMS system uses the USERID value to perform transaction authorization. The value of USERID specified in the OTMA destination descriptor overrides the user ID provided by the IMS application program that issued the ISRT call to the OTMA ALTPCB. This parameter is valid only when TYPE(IMSCON) is specified.
Start of changeFor TYPE=MQSERIES, this is a 1- to 8-character user ID that corresponds with the MQMD_USERIDENTIFIER field in the MQMD data structure. This field allows the OTMA descriptor to override the default user ID in the MQMD structure. Specify the value *USERID* to use the IMS user ID value from the PST.End of change

Usage notes

The UPDATE OTMADESC command is used to modify existing destination routing descriptors that were either included in DFSYDTx or added by using the CREATE OTMADESC command. A log record will be written to track changes and to persist from one IMS restart to another. The log record will also be used to track the currency of updates to an XRF alternate and to an RSR tracking environment. The checkpoint record is X4035 and the log record for the CREATE, UPDATE, and DELETE commands is X221B.

Start of changeThe UPDATE OTMADESC command cannot change the TYPE value for a destination descriptor. If you want to change the type for a descriptor, you must create a new descriptor with the CREATE OTMADESC command or by modifying the DFSYDTx member of the IMS.PROCLIB data set. You can then delete the existing descriptor.End of change

Output fields

The following table shows the UPDATE OTMADESC output fields. The columns in the table are:
Short label
Contains the short label generated in the XML output.
Long label
Contains the column heading for the output field in the formatted output.
Keyword
Identifies the 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.
Table 2. Output fields for the UPDATE OTMADESC command
Short label Long label Keyword Meaning
CC CC N/A Completion code for the line of output. The completion code indicates whether IMS was able to process the command for the specified resource. See Return, reason, and completion codes for more information. The completion code is always returned.
CCTXT CCText N/A Completion code text that briefly explains the meaning of the non-zero completion code. This field is returned only for an error completion code.
DEST DestName NAME Destination name.
MBR MbrName N/A Member name.

Return, reason, and completion codes

An IMS return and reason code is returned to OM by the UPDATE OTMADESC command. The OM return and reason codes that might be returned as a result of the UPDATE OTMADESC 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 OTMADESC command
Return code Reason code Meaning
X'00000000' X'00000000' Command completed successfully. The command output contains a line for each resource, accompanied by its completion code. See Table 4 for details.
X'02000008' X'00002000' The command contains an invalid verb or no client is registered for the verb.
X'02000008' X'00002004' The command contains an invalid primary keyword or no client is registered for the keyword.
X'02000008' X'00002028' The command contains an invalid keyword.
X'02000008' X'0000202C' The command contains an unknown positional parameter.
X'02000008' X'00002034' The command contains an incomplete keyword parameter.
X'02000008' X'00002038' The command is missing a required parameter.
X'02000008' X'0000203C' The command contains an invalid keyword parameter value.

The following table includes an explanation of the completion codes. Errors unique to the processing of this 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 OTMADESC command
Completion code Completion code text Meaning
0 Command completed successfully The UPDATE OTMADESC command completed successfully for the resource.
151 Descriptor not found The descriptor name does not exist.
153 Adapter blank, Convrtr not blank The value of the ADAPTER keyword is blank and the value of the CONVRTR keyword is not blank. Either both keywords must be blank or both keywords must contain a valid name.
154 Adapter not blank, Convtr blank The value of the ADAPTER keyword is not blank and the value of the CONVRTR keyword is not blank. Either both keywords must be blank or both keywords must contain a valid name.
156 Start of changeSMEM=Y, super mbr name GT 4 charEnd of change The super member name in the TMEMBER keyword must have a maximum length of 4 characters.
159 TMEMBER is required for IMSCON The type is being changed from NONOTMA to IMSCON, but the value of TMEMBER is blank.
162 Descriptor not available for upd During update processing, the descriptor was deleted by another user.
167 SYNTIMER must have numeric value The timeout value must have a value expressed in numbers within parenthesis.
169 SYNTIMER has nonnumeric value The value must not contain alphabetic characters or any character that is not numeric.

Examples

The following are examples of the UPDATE OTMADESC command:

Example 1 for UPDATE OTMADESC command

TSO SPOC input:
UPDATE OTMADESC NAME(OTMACL*,OTMACL99) SET(TYPE(NONOTMA))
TSO SPOC output:
DestName   MbrName     CC  
OTMACL99   IMSA         0  
OTMACL*    IMSA         0     
Explanation: This UPDATE command changes the output type to NONOTMA. This keyword will delete any other keywords (such as TMEM or TPIPE), because no other keywords are relevant for TYPE(NONOTMA).

Example 2 for UPDATE OTMADESC command

TSO SPOC input:
UPDATE OTMADESC NAME(OTMACL*,OTMACL99) SET(TPIPE(HWS1TP02))
TSO SPOC output:
DestName   MbrName     CC   
OTMACL99   IMSA         0   
OTMACL*    IMSA         0     
Explanation: This UPDATE command changes the TPIPE name to HWS1TP02. The TPIPE name will be changed from HWS1TP01 to HWS1TP02 for OTMACL99 and the TPIPE for OTMACL* will be set to HWS1TP02.

Example 3 for UPDATE OTMADESC command

TSO SPOC input:
UPDATE OTMADESC NAME(OTMACL*) SET(TPIPE())
TSO SPOC output:
DestName  MbrName      CC  
OTMACL*   IMSA          0   
Explanation: This UPDATE command for descriptor OTMACL* will delete the TPIPE name by coding TPIPE(). An asterisk in the UPDATE command does not update the group of names the asterisk is masking. It updates only the OTMACL* entry in the table of destination routing descriptors. It does not update OTMACL99.

Example 4 for UPDATE OTMADESC command

TSO SPOC input:
UPDATE OTMADESC NAME(OTMACL01) SET(RMTIMS(IMS3) RMTTRAN(TRAN03))
TSO SPOC output:
DestName  MbrName  CC
OTMACL01  IMS1      0
Explanation: When the UPDATE OTMADESC command is issued to IMS1, the command changes the name of the destination remote IMS system to IMS3 and the transaction to be scheduled for processing messages on IMS3 to TRAN03.