IWMCONN — Connect to workload management

The purpose of this service is to connect a calling address space to WLM. This service returns a token which is needed to invoke other services. This service can be used to:
  • Request that WLM Work Management services be available to the connecting address space and optionally to pass topology information to WLM.
  • Request that WLM Work Queuing services be available to the connecting address space.
  • Request that WLM Work Execution services be available to the connecting address space.
  • Request that WLM Work Balancing services be available to the connecting address space.
  • Request that WLM export and import services be available to the connecting address space.
Note that:
  • The space which is connected is the current home address space.
  • Only a single connection is allowed to be active for a given address space at any given time.
  • For each connected task/space, WLM will establish a dynamic resource manager (RESMGR) to be associated with the current task/space. When it receives control, it will free any accumulated resources and delete any enclaves associated with the connect token. This implies that the resource manager will logically perform the disconnect function and the connect token can no longer be passed to WLM services.
Note: It is recommended to use the equivalent service, IWM4CON, which also supports 64-bit addressing. For more information, see IWM4CON — Connect to workload management.

Environment

The requirements for the caller are:

   
Minimum authorization: For WORK_MANAGER=YES or ROUTER=YES, QUEUE_MANAGER=YES or EXPTIMPT=YES, supervisor state or program key mask (PKM) allowing keys 0-7.

For SERVER_MANAGER=YES, problem state with any PSW key.

Dispatchable unit mode: Task
Cross memory mode: Non-XMEM when input key is a user key or SERVER_MANAGER = YES, otherwise XMEM, any P,S,H.
AMODE: 31-bit
ASC mode: Primary
Interrupt status: Enabled for I/O and external interrupts
Locks: No locks may be held.
Control parameters: Control parameters must be in the primary address space.

Programming requirements

  1. Make sure no EUT FRRs are established.
  2. The macro CVT must be included to use this macro.
  3. The macro IWMYCON must be included to use this macro.
  4. The macro IWMPB must be in the library concatenation, since it is included by IWMYCON.
  5. Note that the high-order halfword of register 0, and the reason code variable when specified, may be non-zero and represents diagnostic data which is NOT part of the external interface. The high-order halfword should thus be excluded from comparison with the reason code values described above. The constant, IWMRSNCODE_MASK_CONST defined in IWMYCON, may be used for this purpose.
  6. All character data, unless otherwise specified, is assumed to be left-justified and padded with blanks on the right, as needed, to occupy the specified number of bytes.

Restrictions

  1. This macro may not be used during task/address space termination.
  2. Only a single connection is allowed to be active for a given address space at any given time.
  3. Specification of both Queue_Manager=Yes, and Server_Manager=Yes requires that Server_Type=Queue. Specification of Server_Type=Routing is rejected.
  4. Specification of both Router=Yes, and Server_Manager=Yes requires that Server_Type=Routing. Specification of Server_Type=Queue is rejected.
  5. If the callers recovery routine should get control as a result of requesting this service, the function cannot be guaranteed to be complete. It is possible that a token has been saved in the parameter list where the connect token would reside upon successful completion. This token may be passed to IWMDISC to prevent the address space from being disabled from future IWMCONN requests, but the token should not be used for other services. IWMDISC in these circumstances may give a warning return code indicating that no connection was established, however.
  6. If the key specified on IWMCONN is a user key (8-F) or SERVER_MANAGER=YES was specified, then the caller must be in non-cross-memory mode (P=S=H).
  7. While not a restriction for IWMCONN, it should be noted that when the key specified is a user key (8-F), the Connect token may only be passed to IWMCLSFY, IWMRPT, or IWMMNTFY services, when the current primary matches primary at the time IWMCONN is invoked.

Input register information

Before issuing the IWMCONN macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code if GR15 return code is non-zero
1
Used as work registers by the system
2-13
Unchanged
14
Used as work registers by the system
15
Return code
When control returns to the caller, the ARs contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as work registers by the system

Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.

Performance implications

None.

Syntax

The syntax of the IWMCONN macro is as follows:

main diagram

Read syntax diagramSkip visual syntax diagramnameIWMCONNWORK_MANAGER=YESparameters-1WORK_MANAGER=NO,ROUTER=NO,QUEUE_MANAGER=NO,QUEUE_MANAGER=YES,QMGR_EXIT@=NO_QMGR_EXIT@,QMGR_EXIT@= qmgr_exit@,ROUTER=YES,SERVER_MANAGER=NO,SERVER_MANAGER=YESparameters-2,EXPTIMPT=NO,EXPTIMPT=YES,SUBSYS= subsys,SUBSYSNM= subsysnm,NODENM=NO_NODENM,NODENM= nodenm,GROUPNM=NO_GROUPNM,GROUPNM= groupnm,GROUPNM_LEN= groupnm_len,CONNTKN= conntkn,RETCODE= retcode,RSNCODE= rsncode,PLISTVER=IMPLIED_VERSION,PLISTVER=MAX,PLISTVER=0,PLISTVER=1,PLISTVER=2,PLISTVER=3,PLISTVER=4,MF=S,MF=(L, list addr,0D, attr),MF=(E, list addr,COMPLETE)

parameters-1

Read syntax diagramSkip visual syntax diagram,TOPOLOGY=NO_TOPOLOGY,TOPOLOGY= topology,NUMBERASCB= numberascb,EWLM=NO,EWLM=YES,CONNTKNKEYP=VALUE,CONNTKNKEY= conntknkey ,CONNTKNKEYP=PSWKEY

parameters-2

Read syntax diagramSkip visual syntax diagram,APPLENV= applenv,DYNAMIC=NO,DYNAMIC=YES,PARALLEL_EU= parallel_eu,SERVER_TYPE=QUEUE,MANAGE_TASKS=NO,MANAGE_TASKS=YES,SERVER_LIMIT=1000,SERVER_LIMIT= server_limit,SERVER_TYPE=ROUTING,SERVER_DATA= server_data ,SRV_MGR_EXIT@= srv_mgr_exit@

Parameters

The parameters are explained as follows:
name
An optional symbol, starting in column 1, that is the name on the IWMCONN macro invocation. The name must conform to the rules for an ordinary assembler language symbol.
,APPLENV=applenv
When SERVER_MANAGER=YES is specified, a required input parameter, which contains the application environment under which work requests are served.

To code: Specify the RS-type address, or address in register (2)-(12), of a 32-character field.

,CONNTKN=conntkn
A required output parameter, which will receive the connect token.

To code: Specify the RS-type address, or address in register (2)-(12), of a 32 bit field.

,CONNTKNKEY=conntknkey
When CONNTKNKEYP=VALUE and WORK_MANAGER=YES are specified, a required input parameter, which contains the key for which the various branch entry services using the CONNTKN returned by IWMCONN must have PSW update authority. These other services include Classify (IWMCLSFY), Report (IWMRPT), Notify (IWMMNTFY). Create (IWMMCREA) is a PC interface and hence is excluded. The low order 4 bits (bits 4-7) contain the key value. The high-order 4 bits (bits 0-3) must be zeros.

Note however that there are other services that use the connect token, for which the CONNTKNKEY does not relate to PSW update authority but instead must be a system key (0-7) rather than a user key (8-15).

To code: Specify the RS-type address, or address in register (2)-(12), of an 8 bit field.

,CONNTKNKEYP=VALUE
,CONNTKNKEYP=PSWKEY
When WORK_MANAGER=YES is specified, a required parameter, which describes how the input key should be obtained.
,CONNTKNKEYP=VALUE
indicates that the key is being passed explicitly via CONNTKNKEY.
,CONNTKNKEYP=PSWKEY
indicates that the current PSW key should be used.
,DYNAMIC=NO
,DYNAMIC=YES
When SERVER_MANAGER=YES is specified, an optional parameter indicating whether the server manager connects to a dynamic or static application environment. The default is DYNAMIC=NO.
,DYNAMIC=NO
The server manager connects to a static application environment. This is the default.
,DYNAMIC=YES
The server manager connects to a dynamic application environment.
,EWLM=NO
,EWLM=YES
When WORK_MANAGER=YES is specified, an optional parameter, which indicates if this work manager intends to participate in cross-platform enterprise workload management (EWLM). The default is EWLM=NO.
,EWLM=NO
The work manager interacts only with WLM and no interaction with EWLM takes place. This is the default.
,EWLM=YES
The work manager participates in cross-platform enterprise workload management and interacts with EWLM.
,EXPTIMPT=NO
,EXPTIMPT=YES
An optional parameter indicating whether the space needs access to the export and import services (IWMEXPT, IWMUEXPT, IWMIMPT, IWMUIMPT). The default is EXPTIMPT=NO.
,EXPTIMPT=NO
The connecting address space will not use the export and import services.
,EXPTIMPT=YES
The connecting address space will use the export and import services.
,GROUPNM=groupnm
,GROUPNM=NO_GROUPNM
An optional input parameter, which contains the name of an application group, for example, a group of similar or cooperating subsystem instances. A group name can be up to 255 characters long. Provision of a data area initialized to all blanks is equivalent to specification of NO_GROUPNM. The default is NO_GROUPNM. This indicates that no group name is passed.

To code: Specify the RS-type address, or address in register (2)-(12), of a character field.

,GROUPNM_LEN=groupnm_len
When GROUPNM=groupnm is specified, a required input parameter, which contains the length of the group name. A group name can be up to 255 characters long.

To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.

,MANAGE_TASKS=NO
,MANAGE_TASKS=YES
When SERVER_TYPE=QUEUE and SERVER_MANAGER=YES are specified, an optional parameter indicating that WLM will manage the server instances (tasks), selecting work from a work queue.

If YES is specified the caller must use service IWMSINF to obtain the number of server instances to start from WLM.

The meaning of PARALLEL_EU changes in this case. PARALLEL_EU is only used to determine the number of tasks to start if the application environment cannot be managed by WLM. Otherwise PARALLEL_EU can be used to limit the number of server tasks to start initially.

The server can define the SERVER_LIMIT parameter to specify a limit for the number of server tasks supported by the application.

,MANAGE_TASKS=NO
The connecting address space starts the number of server instances as provided with PARALLEL_EU.
,MANAGE_TASKS=YES
The connecting address space uses IWMSINF to obtain the number of server instances to start from WLM.
,MF=S
,MF=(L,list addr)
,MF=(L,list addr,attr)
,MF=(L,list addr,0D)
,MF=(E,list addr)
,MF=(E,list addr,COMPLETE)
An optional input parameter that specifies the macro form.

Use MF=S to specify the standard form of the macro, which builds an inline parameter list and generates the macro invocation to transfer control to the service. MF=S is the default.

Use MF=L to specify the list form of the macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. Only the PLISTVER parameter may be coded with the list form of the macro.

Use MF=E to specify the execute form of the macro. Use the execute form together with the list form of the macro for applications that require reentrant code. The execute form of the macro stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.
,list addr
The name of a storage area to contain the parameters. For MF=S and MF=E, this can be an RS-type address or an address in register (1)-(12).
,attr
An optional 1- to 60-character input string that you use to force boundary alignment of the parameter list. Use a value of X'0F' to force the parameter list to a word boundary, or X'0D' to force the parameter list to a doubleword boundary. If you do not code attr, the system provides a value of X'0D'.
,COMPLETE
Specifies that the system is to check for required parameters and supply defaults for omitted optional parameters.
,NODENM=nodenm
,NODENM=NO_NODENM
An optional input parameter, which contains the node name to be used for classifying work requests when Work_Manager=Yes is specified or taken as default. The node name identifies a specific subcomponent of the generic subsystem type.

When Server_Manager=Yes and Server_Type=Queue is specified, the node name should match the node name specified on the corresponding Connect for the Queue_Manager, for example, all servers associated with the Queue_Manager have identical node names.

If a product chooses to use both Work_Manager=Yes and Server_Manager=Yes on a single invocation of IWMCONN for a space, then the rules for Server_Manager apply, for example, the node name refers to the node name of the space playing the role of Queue_Manager.

If the caller connects to the WLM work queueing services, the combination of the subsystem type, node name and the subsystem name must be unique to that MVS™ system. Node name can be omitted. The default is NO_NODENM.

To code: Specify the RS-type address, or address in register (2)-(12), of an 8-character field.

,NUMBERASCB=numberascb
When TOPOLOGY=topology and WORK_MANAGER=YES are specified, a required input parameter, which contains the number of ASCBs in the list passed via xTOPOLOGY. While there is no restriction on the number of entries in the list, the current support will only look at the first 10 entries. The number specified must be positive (hence also non-zero).

To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.

,PARALLEL_EU=parallel_eu
When SERVER_MANAGER=YES is specified, a required input parameter, which contains the maximum number of tasks (TCBs) within the address space which will be used to concurrently process distinct work requests if MANAGE_TASKS=YES is not in effect. When Select (IWMSSEL) is used to obtain a work request, which might then be passed to another task (TCB) for processing under a Begin (IWMSTBGN) environment, this count represents the number of tasks (TCBs) which can be running concurrently against these work requests, i.e. the number of concurrent Begin environments. It is important that this count represent the actual number of tasks (TCBs) which can be utilized, and not merely some approximate upper bound, as this value will influence system algorithms.

If MANAGE_TASKS=YES is in effect, the application environment managed by WLM PARALLEL_EU is not used. In this case the parameter is only used as described above if no procedure name was defined for the application environment.

To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.

,PLISTVER=IMPLIED_VERSION
,PLISTVER=MAX
,PLISTVER=0
,PLISTVER=1,PLISTVER=2
,PLISTVER=3
,PLISTVER=4
An optional input parameter that specifies the version of the macro. PLISTVER determines which parameter list the system generates. PLISTVER is an optional input parameter on all forms of the macro, including the list form. When using PLISTVER, specify it on all macro forms used for a request and with the same value on all of the macro forms. The values are:
  • IMPLIED_VERSION, which is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default.
  • MAX, if you want the parameter list to be the largest size currently possible. This size might grow from release to release and affect the amount of storage that your program needs.

    If you can tolerate the size change, IBM® recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form, when both are assembled with the same level of the system. In this way, MAX ensures that the parameter list does not overwrite nearby storage.

  • 0, which supports all parameters except those specifically referenced in higher versions.
  • 1, which supports the following parameters and those from version 0:
         
    APPLENV QUEUE_MANAGER SERVER_TYPE
    EXPTIMPT ROUTER SRV_MGR_EXIT@
    PARALLEL_EU SERVER_DATA WORK_MANAGER
    QMGR_EXIT@ SERVER_MANAGER  
  • 2, which supports the following parameters and those from version 0 and 1:
         
    MANAGE_TASKS SERVER_LIMIT GROUPNM_LEN
  • 3, which supports the following parameters and those from version 0, 1, and 2:
         
    DYNAMIC NODENM  
  • 4, which supports the following parameters and those from version 0, 1, 2, and 3:
         
    EWLM GROUPNM GROUPNM_LEN
To code: Specify one of the following:
  • IMPLIED_VERSION
  • MAX
  • A decimal value of 0, 1, 2, 3, or 4
,QMGR_EXIT@=qmgr_exit@
,QMGR_EXIT@=NO_QMGR_EXIT@
When QUEUE_MANAGER=YES and ROUTER=NO are specified, an optional input parameter that contains the address of the Queue Manager Connect Exit to be invoked when the system wishes to inform the queue manager of actions it should perform. The exit will be called in enabled, unlocked TCB mode with no FRRs set, but may be called in a cross-memory environment. The mapping of the parameter list for the exit and its invocation environment is given by the list form of the IWMQCXIT macro.

The system may chose to discontinue calling the exit upon repetitive abnormal completions, i.e. where the system recovery routine is percolated to from an error within the exit. The exit must be callable from any address space and remain available after the queue manager disconnects or terminates. The default is NO_QMGR_EXIT@, which indicates that no queue manager exit is provided.

To code: Specify the RS-type address, or address in register (2)-(12), of a pointer field.

,QUEUE_MANAGER=NO
,QUEUE_MANAGER=YES
When ROUTER=NO is specified, an optional parameter indicating that WLM Work Queuing services be available to the connecting address space. For example:
  • Insert (IWMQINS)
  • Delete (IWMQDEL)
If YES is specified, the combination of the subsystem type and the subsystem name must be unique to that MVS system. The default is QUEUE_MANAGER=NO.
,QUEUE_MANAGER=NO
The connecting address space will not use the WLM Work Queuing services.
,QUEUE_MANAGER=YES
The connecting address space will be using the WLM Work Queuing services.
,RETCODE=retcode
An optional output parameter into which the return code is to be copied from GPR 15.

To code: Specify the RS-type address of a fullword field, or register (2)-(12).

,ROUTER=NO
,ROUTER=YES
An optional parameter, which describes whether recommendations for sysplex routing to servers associated with the same subsystem type and name are requested. The default is ROUTER=NO.
,ROUTER=NO
indicates that recommendations for sysplex routing via IWMSRFSV are not required.
,ROUTER=YES
indicates that recommendations for sysplex routing via IWMSRFSV is required. Note that only server spaces which have the same Subsystem type and name AND which specified Server_Type=Routing are considered when IWMSRFSV is invoked.

If YES is specified, the combination of the subsystem type and the subsystem name must be unique to that MVS system.

,RSNCODE=rsncode
An optional output parameter into which the reason code is to be copied from GPR 0.

To code: Specify the RS-type address of a fullword field, or register (2)-(12).

,SERVER_DATA=server_data
When SERVER_TYPE=ROUTING and SERVER_MANAGER=YES are specified, a required input parameter, which contains whatever data is needed to uniquely identify the server when recommended by MVS through use of the IWMSRFSV interface. The structure of this data is undefined to MVS, and will be returned to the program invoking IWMSRFSV when the server is returned.

To code: Specify the RS-type address, or address in register (2)-(12), of a 32-character field.

,SERVER_LIMIT=server_limit
,SERVER_LIMIT=1000
When MANAGE_TASKS=YES, SERVER_TYPE=QUEUE and SERVER_MANAGER=YES are specified, an optional input parameter indicating the architectural limit of the application for the number of server instances which can be supported.

This parameter can be used to tell WLM the upper limit up to which WLM will recommend to start server instances. If the parameter is omitted or is set higher than 1000, WLM will use 1000 as upper limit instead. The default is 1000.

To code: Specify the RS-type address of a fullword field.

,SERVER_MANAGER=NO
,SERVER_MANAGER=YES
An optional parameter indicating whether the space needs access to a family of services specified by SERVER_TYPE. The default is SERVER_MANAGER=NO.
,SERVER_MANAGER=NO
The connecting address space will not use any of the various server related WLM services documented under SERVER_TYPE.
,SERVER_MANAGER=YES
The connecting address space will be acting in the role of a server and needs access to the family of services specified by SERVER_TYPE.

Specification of both Queue_Manager=Yes, and Server_Manager=Yes requires that Server_Type=Queue. Specification of Server_Type=Routing is rejected.

Specification of both Router=Yes, and Server_Manager=Yes requires that Server_Type=Routing. Specification of Server_Type=Queue is rejected.

,SERVER_TYPE=QUEUE
,SERVER_TYPE=ROUTING
When SERVER_MANAGER=YES is specified, an optional parameter, which describes what type of services are used by the server. The default is SERVER_TYPE=QUEUE.
,SERVER_TYPE=QUEUE
indicates that the server selects work from a queue, and thus requests that WLM Work Execution services be available to the connecting address space. For example:
  • Select (IWMSSEL)
  • Begin (IWMSTBGN)
  • End (IWMSTEND)
The server also has the WLM Work Queuing services available to the connecting address space when the corresponding Queue Manager with the same subsystem type and name is active on the same MVS image (see following macros for macro specific restrictions). For example:
  • Insert (IWMQINS)
  • Delete (IWMQDEL)
,SERVER_TYPE=ROUTING
indicates that the server receives work by way of routing, and may be selected by the IWMSRFSV (Find Server) macro interface. Note that the space which invokes the IWMSRFSV service must Connect with Router=Yes.

Termination of the router with the same subsystem type and name on the same MVS image will not cause notification to the server to terminate. This coordination, if required, must be handled through a different protocol than use of Connect.

,SRV_MGR_EXIT@=srv_mgr_exit@
When SERVER_TYPE=ROUTING and SERVER_MANAGER=YES are specified, a required input parameter that is to contain the address of the Server Manager Connect Exit to be invoked when the system wishes to inform the server of actions it should perform. This exit will be called in SRB mode, with a non cross-memory environment, where HASN=SASN=PASN=HASN at the time IWMCONN was invoked. The mapping of the parameter list for the exit and its invocation environment is given by the list form of the IWMSCXIT macro.

Note that it may be possible for the exit to be called before the caller has received control back from IWMCONN. The exit or any program it drives (synchronously or asynchronously) must synchronize with the program issuing IWMCONN to ensure that IWMCONN has returned a connect token prior to issuing IWMDISC (disconnect) or any other services that need the connect token.

The system may cause the space to become ineligible to be recommended by IWMSRFSV upon repetitive errors in calling the exit specified. The exit must be callable from the server address space and remain available after the server manager disconnects or the connecting server TCB terminates. The exit need not persist upon memory termination of the server.

To code: Specify the RS-type address, or address in register (2)-(12), of a pointer field.

,SUBSYS=subsys
A required input parameter, which contains the generic subsystem type (e.g. IMS, CICS®, etc.). When WORK_MANAGER=YES is specified, this is the primary category under which classification rules are grouped.

If the caller connects to the WLM work queueing services by specifying QUEUE_MANAGER=YES, or requests sysplex routing by specifying ROUTER=YES, the combination of the subsystem type and the subsystem name must be unique to that MVS system.

To code: Specify the RS-type address, or address in register (2)-(12), of a 4-character field.

,SUBSYSNM=subsysnm
A required input parameter, which contains the subsystem name to be used for classifying work requests when Work_Manager=Yes is specified or taken as default. The subsystem name identifies a specific instance of the generic subsystem type.

When Server_Manager=Yes and Server_Type=Queue is specified, the subsystem name should match the subsystem name specified on the corresponding Connect for the Queue_Manager, i.e. all servers associated with the Queue_Manager have identical subsystem names.

When Server_Manager=Yes and Server_Type=Routing is specified, the subsystem name should match the subsystem name specified on the corresponding Connect for Router=Yes, i.e. all servers associated with the Router have identical subsystem names.

If a product choses to use both Work_Manager=Yes and Server_Manager=Yes on a single invocation of IWMCONN for a space, then the rules for Server_Manager apply, i.e. the subsystem name refers to the subsystem name of the space playing the role of Queue_Manager or Router.

If the caller connects to the WLM work queueing services, or to sysplex routing services, the combination of the subsystem type and the subsystem name must be unique to that MVS system.

To code: Specify the RS-type address, or address in register (2)-(12), of an 8-character field.

,TOPOLOGY=topology
,TOPOLOGY=NO_TOPOLOGY
When WORK_MANAGER=YES is specified, an optional input parameter, which represents a list of ASCB addresses for the address spaces which comprise the subsystem. This list should ONLY include address spaces which do NOT surface as the current home address space when IWMMINIT or IWMMRELA are used to establish the delay monitoring environments, but that may participate as dispatchable units (TCBs or SRBs) in serving work requests. If the current primary or home space is a space not surfacing in a monitoring environment and its execution can affect the response time of work flowing through the subsystem, then it should appear in the list. Neither current primary nor current home are defaults. While there are no limits on the number of address spaces, this information is less precise than that provided by monitoring environments. The default is NO_TOPOLOGY, which indicates that no topology information was passed.

To code: Specify the RS-type address, or address in register (2)-(12), of a character field.

WORK_MANAGER=YES
WORK_MANAGER=NO
An optional parameter indicating that WLM Work Management services be available to the connecting address space. For example:
  • Classify (IWMCLSFY)
  • Report (IWMRPT)
  • Notify (IWMMNTFY)
  • Enclave Create (IWMECREA)
  • Modify Connect (IWMWMCON)
If NO is specified, the above services cannot be used, except for the form of Notify that does not pass an input connect token. The default is WORK_MANAGER=YES.
WORK_MANAGER=YES
The connecting address space will be using the WLM Work Management services.
WORK_MANAGER=NO
The connecting address space will not use the WLM Work Management services. Specifying this keyword may reduce the use of system resources.

ABEND codes

None.

Return codes and reason codes

When the IWMCONN macro returns control to your program:
  • GPR 15 (and retcode, if you coded RETCODE) contains a return code.
  • When the value in GPR 15 is not zero, GPR 0 (and rsncode, if you coded RSNCODE) contains reason code.

The following table identifies the hexadecimal return and reason codes and the equate symbol associated with each reason code. IBM support personnel may request the entire reason code, including the xxxx value.

Table 1. Return and Reason Codes for the IWMCONN Macro
Return Code Reason Code Equate Symbol, Meaning, and Action
0 Equate Symbol: IwmRetCodeOk

Meaning: Successful completion.

Action: None required.

4 Equate Symbol: IwmRetCodeWarning

Meaning: Successful completion, unusual conditions noted.

8 Equate Symbol: IwmRetCodeInvocError

Meaning: Invalid invocation environment or parameters.

8 xxxx0801 Equate Symbol: IwmRsnCodeSrbMode

Meaning: Caller is in SRB mode.

Action: Avoid requesting this function while in SRB mode.

8 xxxx0802 Equate Symbol: IwmRsnCodeXmemUserKeyTkn

Meaning: Caller is in cross-memory mode while the token was requested in user key.

Action: Avoid requesting this function while in cross-memory mode.

8 xxxx0803 Equate Symbol: IwmRsnCodeDisabled

Meaning: Caller is disabled.

Action: Avoid requesting this function while disabled.

8 xxxx0804 Equate Symbol: IwmRsnCodeLocked

Meaning: Caller is locked.

Action: Avoid requesting this function while locked.

8 xxxx080B Equate Symbol: IwmRsnCodeBadPl

Meaning: Error accessing parameter list.

Action: Check for possible storage overlay. Also check if you call this macro in 64-bit address mode. Refer to the description of reason code xxxx089E for further information.

8 xxxx0810 Equate Symbol: IwmRsnCodeEutFrr

Meaning: Caller has EUT FRR established.

Action: Avoid requesting this function with an EUT FRR set.

8 xxxx0812 Equate Symbol: IwmRsnCodeBadAscb

Meaning: Bad ASCB address passed.

Action: Check for possible storage overlay.

8 xxxx0823 Equate Symbol: IwmRsnCodeDatoff

Meaning: Caller invoked service while DATOFF

Action: Avoid requesting this function in this environment.

8 xxxx0824 Equate Symbol: IwmRsnCodeAmode24

Meaning: Caller invoked service but was in 24 bit addressing mode.

Action: Request this function only when you are in 31 bit addressing mode.

8 xxxx0825 Equate Symbol: IwmRsnCodeAscModeNotPrimary

Meaning: Caller invoked service but was not DAT on Primary ASC mode.

Action: Avoid requesting this function in this environment.

8 xxxx0826 Equate Symbol: IwmRsnCodeTaskTerm

Meaning: Caller invoked service while task termination is in progress for the TCB associated with the owner.

Action: Avoid requesting this function in this environment.

8 xxxx0827 Equate Symbol: IwmRsnCodeRsvdNot0

Meaning: Reserved field in parameter list was non-zero.

Action: Check for possible storage overlay of the parameter list.

8 xxxx0828 Equate Symbol: IwmRsnCodeBadVersion

Meaning: Version number in parameter list is not valid.

Action: Check for possible storage overlay of the parameter list.

8 xxxx0829 Equate Symbol: IwmRsnCodeBadOptions

Meaning: Parameter list omits required parameters or supplies mutually exclusive parameters or provides data associated with options not selected.

Action: Check for possible storage overlay of the parameter list.

8 xxxx082C Equate Symbol: IwmRsnCodeBadNumberAscb

Meaning: NUMBERASCB variable is not a positive value.

Action: Check for possible storage overlay of the parameter list or variable.

8 xxxx082E Equate Symbol: IwmRsnCodeConnectExists

Meaning: Connect has already been established for the current home address space.

Action: Avoid requesting this function when a connection already exists.

8 xxxx0840 Equate Symbol: IwmRsnCodeServiceNotEnabled

Meaning: Requested connection type cannot be established in the current execution environment. This occurs when SERVER_MANAGER=YES is specified and the program is run as a batch job in a WLM-managed job class.

Action: Run the program as a started task.

8 xxxx0841 Equate Symbol: IwmRsnCodeXMemMode

Meaning: Caller is in cross memory mode.

Action: Invoke the function in non-cross memory mode.

8 xxxx0847 Equate Symbol: IwmRsnCodeOtherSpaceConnected

Meaning: Another address space with the same subsystem type and name is connected to WLM on the MVS image and has the role of queue manager or router.

Action: Avoid requesting this function with duplicate values.

8 xxxx0849 Equate Symbol: IwmRsnCodeWLMServBadAPPL

Meaning: The application environment name (APPLENV=) specified is not the same as the one used by WLM to start the server.

Action: Verify that the start parameters for the application environment are coded correctly in the WLM ISPF application, and that those parameters are used by the started JCL procedure.

8 xxxx084A Equate Symbol: IwmRsnCodeWLMServBadSSN

Meaning: The subsystem name (SUBSYSNM=) specified is not the same as the one used by WLM to start the server.

Action: Verify that the start parameters for the application environment are coded correctly in the WLM ISPF application, and that those parameters are used by the started JCL procedure.

8 xxxx084B Equate Symbol: IwmRsnCodeWLMServBadSST

Meaning: The subsystem type (SUBSYS=) specified is not the same as the one used by WLM to start the server.

Action: Verify that the start parameters for the application environment are coded correctly in the WLM ISPF application, and that those parameters are used by the started JCL procedure.

8 xxxx084D Equate Symbol: IwmRsnCodeNotAuthConnect

Meaning: The caller must be supervisor state or have PSW key mask 0-7 authority to connect to the requested WLM services.

Action: Avoid requesting this function in this environment.

8 xxxx084E Equate Symbol: IwmRsnCodeWlmServBadType

Meaning: For WLM started servers, the SERVER_TYPE= is not the one used to start the server.

Action: Specify the correct SERVER_TYPE.

8 xxxx0853 Equate Symbol: IwmRsnCodeWlmQmBadType

Meaning: There is a queue manager or router environment of the specified subsystem name, but of a different type than that specified by the caller.

Action: Verify that the option for queue manager/router is specified correctly on IWMCONN. If the option is correct, then server address spaces for a different Server_Type exist and must terminate before the current space may connect as a queue manager or router.

8 xxxx0855 Equate Symbol: IwmRsnCodeBadNumEUMax

Meaning: PARALLEL_EU variable is greater than the maximum of 1000.

Action: Specify a value between 1 and 1000.

8 xxxx0856 Equate Symbol: IwmRsnCodeBadNumEUMin

Meaning: PARALLEL_EU variable is less than the minimum of 1.

Action: Specify a value between 1 and 1000.

8 xxxx085C Equate Symbol: IwmRsnCodeWrongNumEU

Meaning: Caller invoked service with a PARALLEL_EU value which is different from the PARALLEL_EU of existing servers in the application environment

Action: Ensure that all servers in the application environment specify the same PARALLEL_EU value.

8 xxxx0873 Equate Symbol: IwmRsnCodeWrongSrvLmt

Meaning: Caller invoked service with a SERVER_LIMIT parameter setting which is different from the SERVER_LIMIT of existing servers in the application environment

Action: Ensure that all servers in the application environment specify the same SERVER_LIMIT value.

8 xxxx0874 Equate Symbol: IwmRsnCodeWrongMngTsk

Meaning: Caller invoked service with a MANAGE_TASKS parameter setting which is different from the MANAGE_TASKS of existing servers in the application environment

Action: Ensure that all servers in the application environment specify the same MANAGE_TASKS value.

8 xxxx0878 Equate Symbol: IwmRsnCodeBadNumLimitMax

Meaning: Caller invoked service with a SERVER_LIMIT parameter setting which exceeds the maximum number of tasks which can be started in a server address space.

Action: Correct number or do not specify SERVER_LIMIT parameter in order to use the default.

8 xxxx0879 Equate Symbol: IwmRsnCodeBadNumLimitMin

Meaning: Caller invoked service with a SERVER_LIMIT parameter setting which is less than what has been defined on the PARALLEL_EU parameter.

Action: Ensure that SERVER_LIMIT is always greater or equal to PARALLEL_EU.

8 xxxx087A Equate Symbol: IwmRsnCodeNoQServer

Meaning: The MANAGE_TASKS parameter is not allowed when QUEUE_SERVER=YES has been specified.

Action: Ensure to use the parameters correctly.

8 xxxx088E Equate Symbol: IwmRsnCodeWlmServBadSSND

Meaning: For WLM started servers, the NODENM= is not the one used to start the server.

Action: Specify the correct NODENM.

8 xxxx088F Equate Symbol: IwmRsnCodeApplNotSSN

Meaning: The application environment name is defined for use by a different subsystem node.

Action: Check whether the correct application environment name is being used.

8 xxxx089E Equate Symbol: IwmRsnCodeServiceAModeMismatch

Meaning: The caller is in 64-bit address mode and tried to invoke a service macro that is only enabled for a 31-bit environment.

Action: Use the 64-bit enabled service macro (IWM4CON) or change the address mode of the caller to 31-bit.

C Equate Symbol: IwmRetCodeEnvError

Meaning: Environmental error.

C xxxx0C01 Equate Symbol: IwmRsnCodeNoStg

Meaning: Storage is not available for the request.

Action: There is a storage shortage. The function may work successfully at a later time.

C xxxx0C09 Equate Symbol: IwmRsnCodeNoResmgr

Meaning: Resource manager could not be established.

Action: No action required. This condition may be due to a storage shortage condition.

C xxxx0C14 Equate Symbol: IwmRsnCodeNoWorkShutDown

Meaning: No work selected. Caller is to shutdown.

Action: The server should shut down (terminate).

C xxxx0C19 Equate Symbol: IwmRsnCodeNotSecAuthConnect

Meaning: The caller is not authorized by SAF to connect to WLM with SERVER_MANAGER=YES.

Action: The security administrator must grant access to the appropriate resource.

C xxxx0C1A Equate Symbol: IwmRsnCodeApplNotDefined

Meaning: The application environment name is not defined in the active WLM policy.

Action: Check whether the correct application environment name is being used. If so, a service administrator must define the application environment in the WLM service definition.

C xxxx0C1B Equate Symbol: IwmRsnCodeApplNotSST

Meaning: The application environment name is defined for use by a different subsystem type in the active WLM policy.

Action: Check whether the correct application environment name is being used. If so, a service administrator must change the application environment in the WLM service definition to specify the correct subsystem type.

C xxxx0C1F Equate Symbol: IwmRsnCodeServerExists

Meaning: A server exists for the specified application environment which only allows 1 such server in the sysplex.

Action: Check whether the correct application environment name is being used. If so and the current server is shutting down, a retry may be successful after a delay.

C xxxx0C22 Equate Symbol: IwmRsnCodeApplEnvQuiesced

Meaning: The specified application environment has been quiesced, server cannot be started for the request.

Action: Restart the application environment and then retry the request.

10 Equate Symbol: IwmRetCodeCompError

Meaning: Component error.

Action: No action required. The function may be successful if invoked again.

Example

To connect to workload management specifying: a key value of 8, and a list of 7 address spaces involved in processing work, specify:
IWMCONN  SUBSYS=GENSUB,SUBSYSNM=SUBNAME,
      TOPOLOGY=LISTASCBS,NUMBERASCB=NUMSPACE
      CONNTKN=CTKN,CONNTKNKEYP=VALUE,CONNTKNKEY=KEY,
      RETCODE=RC,RSNCODE=RSN,
Where the following are declared:
GENSUB    DS    CL4          Generic subsystem type
SUBNAME   DS    CL8          Subsystem name
LISTASCBS DS    CL28         List of 7 address spaces
NUMSPACE  DC    F'7'         Number of ASCBs
CTKN      DS    FL4          Connect token
KEY       DS    XL1          Key value