MODIFY USERVAR command

Read syntax diagramSkip visual syntax diagram
Create a new USERVAR:

>>-MODIFY-- --procname--,--USERVAR--,--ID--=--uservar_name------>

   .-,--OPTION--=--UPDATE-.                           
>--+----------------------+--,--VALUE--=--appl_name------------->

   .-,--TYPE--=--DYNAMIC------.   
>--+--------------------------+--------------------------------->
   '-,--TYPE--=--+-DYNAMIC--+-'   
                 +-STATIC---+     
                 '-VOLATILE-'     

   .-,--APPC--=--NO--,--UVEXIT--=--NO----------.   
>--+-------------------------------------------+---------------><
   '-,--APPC--=--+-YES--,--UVEXIT--=--NO-----+-'   
                 '-NO--,--UVEXIT--=--+-YES-+-'     
                                     '-NO--'       

Read syntax diagramSkip visual syntax diagram
Update an existing USERVAR and change the TYPE:

>>-MODIFY-- --procname--,--USERVAR--,--ID--=--uservar_name------>

   .-,--OPTION--=--UPDATE-.                               
>--+----------------------+--+------------------------+--------->
                             '-,--VALUE--=--appl_name-'   

>--,--TYPE--=--+-DYNAMIC--+------------------------------------->
               +-STATIC---+   
               '-VOLATILE-'   

   .-,--APPC--=--NO--,--UVEXIT--=--NO----------.   
>--+-------------------------------------------+---------------><
   '-,--APPC--=--+-YES--,--UVEXIT--=--NO-----+-'   
                 '-NO--,--UVEXIT--=--+-YES-+-'     
                                     '-NO--'       

Read syntax diagramSkip visual syntax diagram
Update an existing USERVAR, leaving the TYPE unchanged:

>>-MODIFY-- --procname--,--USERVAR--,--ID--=--uservar_name------>

   .-,--OPTION--=--UPDATE-.                           
>--+----------------------+--,--VALUE--=--appl_name------------->

   .-,--APPC--=--NO--,--UVEXIT--=--NO----------.   
>--+-------------------------------------------+---------------><
   '-,--APPC--=--+-YES--,--UVEXIT--=--NO-----+-'   
                 '-NO--,--UVEXIT--=--+-YES-+-'     
                                     '-NO--'       

Read syntax diagramSkip visual syntax diagram
Delete a USERVAR:

>>-MODIFY-- --procname--,--USERVAR--,--ID--=--uservar_name------>

>--,--OPTION--=--DELETE--+------------------------+------------><
                         '-,--VALUE--=--appl_name-'   

Abbreviations

Operand Abbreviation
MODIFY F
NO N
OPTION OPT
OPTION=DELETE OPT=DEL
OPTION=UPDATE OPT=UP
TYPE=DYNAMIC TYPE=DYN
TYPE=STATIC TYPE=STA
TYPE=VOLATILE TYPE=VOL
VALUE=value VAL=value
YES Y

When using an abbreviation in place of an operand, code the abbreviation exactly as shown in the table. For example, when coding the abbreviation for OPTION=DELETE, code only OPT=DEL. Do not code OPTION=DEL.

Purpose

The MODIFY USERVAR command is issued by a network operator or application subsystem to define, change, or delete the name of an application associated with a USERVAR.

You cannot create or modify automatic (VTAM-managed) USERVARs using the MODIFY command; they are created and maintained by VTAM®. If you issue a MODIFY command that specifies the name of an automatic USERVAR as its target, VTAM assumes that you are taking over control of the USERVAR (by changing its class from automatic to user) and that you are responsible for any future updates to that USERVAR. Whenever an automatic USERVAR is changed to a user-managed USERVAR, the operator should delete the USERVAR for VTAM to take control of it once again.

Operands

procname
The procedure name for the command. If procname in the START command was specified as startname.ident, where startname is the VTAM start procedure and ident is the optional identifier, either startname.ident or ident can be specified for procname.

If procname in the START command was startname, startname must be specified for procname.

APPC
Specifies how the USERVAR ID affects LU 6.2 sessions that were established with APPC/VTAM application programs.

This operand is valid only when the application program specified on the VALUE operand runs on the same host that is processing this operator command. This operand is valid only when OPTION=UPDATE and UVEXIT=NO are specified or assumed by default.

If you specify OPTION=DELETE, APPC=NO is assumed by default. If you specify APPC=YES and UVEXIT=YES, both APPC=NO and UVEXIT=NO are assumed by default.

If you are updating an existing USERVAR and you do not specify a value for APPC, the previously defined value will be replaced with the default value found in the operation-level USS table (ISTINCNO). The IBM-supplied default value is APPC=NO.
APPC=NO
Specifies that the USERVAR ID is not used to replace the application program's name when establishing LU 6.2 sessions for any application programs identified in the VALUE operand.
APPC=YES
Specifies that the USERVAR ID is used to replace the application program's name when establishing LU 6.2 sessions only for APPC/VTAM application programs identified in the VALUE operand.

If an LU 6.2 application uses a USERVAR ID with the operand APPC=YES, you cannot define another USERVAR ID with APPC=YES for that application.

ID=uservar_name
Specifies the USERVAR. It can be used to specify any valid USERVAR (1–8 alphanumeric characters, the first of which must be alphabetic). VTAM uses this USERVAR during the logon process to send the session request to the currently active application subsystem. The USERVAR is also specified in the LOGCHAR operand used to add an entry to the interpret table.
Note: If ID is specified using a reserved name (for example, ID=VTAM), inconsistent results will occur.
OPTION
Specifies whether the USERVAR identified by the ID operand is to be assigned a value, have its current value changed, or be deleted.
OPTION=UPDATE
Specifies that the USERVAR identified by the ID operand is to be assigned a value, or that the current value of an existing USERVAR is to be changed.
OPTION=DELETE
Specifies that the USERVAR identified by the ID operand is to be deleted. If used with the VALUE operand, the USERVAR is deleted only if the specified value matches that of the USERVAR.
TYPE
Specifies the type (or attributes) of a USERVAR.
TYPE=DYNAMIC
Specifies that, in event of failure, the value of the USERVAR identified by the ID operand is to be queried again by those SSCPs having automatic USERVARs with the same name. The default value for the TYPE operand is used only when a USERVAR table entry is being created. It is not used on each execution of the MODIFY USERVAR command.
TYPE=STATIC
Specifies that the value of the USERVAR will not change. Those SSCPs having automatic USERVARs with the same name need to query the USERVAR only if the value is unknown.
TYPE=VOLATILE
Specifies that the value of the USERVAR identified by the ID operand is to be queried again before any session setup is attempted because the value is likely to change.
UVEXIT
Specifies whether an installation-wide exit routine is to be used for the USERVAR. For more information about installation-wide exit routines identified by the UVEXIT operand, see z/OS Communications Server: SNA Customization. This operand is valid only when APPC=NO and OPTION=UPDATE are specified or assumed by default.

If you specify OPTION=DELETE, UVEXIT=NO is assumed by default. If you specify APPC=YES and UVEXIT=YES, both APPC=NO and UVEXIT=NO are assumed by default.

If you are updating an existing USERVAR and you do not specify a value for UVEXIT, the previously defined value will be replaced with the default value found in the operation-level USS table (ISTINCNO). The IBM-supplied default value is UVEXIT=NO.
UVEXIT=NO
Specifies that the USERVAR installation exit is not used for this USERVAR.
UVEXIT=YES
Specifies that the USERVAR installation exit is used for this USERVAR.
VALUE=appl_name
Specifies the name of an application program. Any session initiated with the USERVAR name specified in the ID operand is initiated with the application program named by appl_name.
Note: If VALUE is specified using a reserved name (for example VALUE=VTAM), inconsistent results will occur. The name can be a network-qualified name. If appl_name is a network-qualified name, the name (both the network identifier and the resource name) is considered to be a real name and cannot change.

If the appl_name value is not a network-qualified name, the name uses the network identifier that is specified on the session request, if one is specified. If a network identifier is not specified on the session request, and if the USERVAR is in the OLU domain, the name can represent any resource with that name in any network; the network identifier is filled in when a resource is found with that name. If the USERVAR name is not in the OLU domain, the value must be predefined in the VTAM that contains the USERVAR name . In addition, if the USERVAR name is represented by a CDRSC, the CDRSC (or a model CDRSC) must be predefined with a network identifier.

Restrictions:
  • In a subarea-only network, the user-managed USERVAR can be defined on the VTAM that owns the real destination resource, on the VTAM where the session originates, or on any VTAM along the session path. Because there might be attempts from many different VTAMs to establish sessions with the destination resource using the USERVAR name, the best results are achieved when the user-managed USERVAR is defined on the VTAM that owns the real resource, or on a VTAM that is as close to the owning VTAM as possible.
  • In an APPN network, or in a in mixed APPN and subarea network, the location of the user-managed USERVAR is more restrictive. If the real resource is on a VTAM end node (EN), network node (NN), or migration data host (MDH), the user-managed USERVAR must be defined on that VTAM (the owning VTAM). When the real resource is on an EN, define the USERVAR on the EN and not on its network node server. If the real resource is on an interchange node (ICN), or on a VTAM located in or through a subarea network attached to an ICN, the user-managed USERVAR must be defined on the ICN or on one of the VTAMs along the subarea portion of the session path.

When the MODIFY USERVAR command is issued on an EN, the USERVAR name is registered to the network node server of the EN unless UVEXIT=NO is coded (or is the default value) and the value specified for the real resource name is a dynamic CDRSC or is not defined.

The output from the DISPLAY USERVAR command for this USERVAR includes network-qualified names only if appl_name is a network-qualified name on the MODIFY USERVAR command.

If appl_name is an ACB name, and the ACB name matches the name on the APPL definition statement, then you can use a network-qualified ACB name.