CSLSCMSG: send message request

By issuing the CSLSCMSG request, you can send a message to one or more other IMSplex members. The target members are specified by SCITOKEN, member name, or member type.

CSLSCMSG syntax

CSLSCMSG DSECT syntax

Use the DSECT function of a CSLSCMSG request to include equate (EQU) statements in your program for the CSLSCMSG parameter list length, the IMSplex types, and the CSLSCMSG return and reason codes.

Read syntax diagramSkip visual syntax diagramCSLSCMSG FUNC=DSECT

CSLSCMSG SEND MESSAGE syntax

The syntax of the CSLSCMSG FUNC=SEND request is shown below:

Figure 0.
Read syntax diagramSkip visual syntax diagramCSLSCMSGFUNC=SENDSCITOKEN= scitokenPARM= parmMBRPARM= mbrparmlistMBRPCNT= mbrparmcountMBRFUNC= mbrfunctioncodeMBRSFUNC= mbrsubfunctioncodeFUNCTYPE=DESTFUNCTYPE=SENDERLISTLEN= listlengthTOKENLIST= tokenlistNAMELIST= namelistTYPELIST= typelist BTOKEN= scitokenNAME= membernameA RETCODE= returncodeRSNCODE= reasoncodeRETNAME= returnnameRETTOKEN= returntoken
A
Read syntax diagramSkip visual syntax diagramTYPE= membertypecodeTYPE= 'AOP'TYPE= 'BATCH'TYPE= 'CQS'TYPE= 'DBRC'TYPE= 'IMS'TYPE= 'IMSCON'TYPE= 'ODBM'TYPE= 'OM'TYPE= 'OTHER'TYPE= 'RM'TYPE= 'SCI'B
B
Read syntax diagramSkip visual syntax diagramROUTE= ANYROUTE= ALLROUTE= LOCAL

CSLSCMSG parameters

FUNCTYPE=SENDER
FUNCTYPE=DEST
(Optional) - Specifies that the MBRFUNC and MBRSFUNC are defined by the DEST (destination) of this message or the SENDER of the message. This indicator is passed to the recipient of the message in the SCI Input exit parameter list.
LISTLEN=<numeric literal>
LISTLEN=symbol
LISTLEN=(r1-r12)
(Required if NAMELIST, TOKENLIST or TYPELIST is specified) - Specifies the length of the routing list. The routing list consists of a header and one or more list entries, each entry describing a single message destination (NAMELIST and TOKENLIST) or set of destinations (TYPELIST).

If LISTLEN is a numeric literal, all characters must be numbers. If any character is alphabetic, the parameter will be considered a symbol.

MBRFUNC=symbol
MBRFUNC=(r1-r12)
(Required) - Specifies a 4-byte member function code that is passed to the destination of the message in the SCI Input exit parameter list. This function code, along with the MBRSFUNC, identifies the message that is being sent.

If MBRFUNC is a symbol, the symbol points to a 4-byte area of storage that contains the function code.

MBRPARM=symbol
MBRPARM=(r1-r12)
(Required) - Specifies the address of a prebuilt parameter list. This parameter list must be built by the messaging module and consists of sets of pairs. Each pair describes a single parameter in the member parameter list and consists of the following:
parameter length
Four-byte parameter that specifies the length of the member parameter.
parameter address
Four-byte parameter that specifies the address of the member parameter.

The two methods for passing parameters in a parameter list are by address and by value. Both of these methods can be used when passing parameters in a CSLSCMSG request. The pair must be setup so that SCI will handle the parameter properly.

  • By address

    To pass a parameter by address, the address of the parameter must be passed in parameteraddress and the length of the parameter must be passed in parameterlength. SCI will obtain the parameter from parameteraddress.

  • By value

    To pass a parameter by value, the parameter must be passed in parameteraddress and zero must be passed in parameterlength. When the length is zero, SCI will copy the value contained in parameteraddress to the destination.

Member Parameter List: The user parameters specified here are presented to the IMSplex member that receives the message in the member parameter list, the address of which is contained in the Input exit parameter area field INXP_MBRPLPTR. Each parameter is represented by eight bytes, the first four bytes contain parameterlength and the second four bytes contain parameteraddress (if parameteraddress is an address, the second four bytes point to storage in the local address space, not the requesting address space).

Null Parameters: In some cases, the message processing module expects a set number of parameters with a defined order. If a message is to be sent that does not contain all the parameters, null parameters must be sent to ensure the data buffer contains everything that is expected. Null parameters can be sent by specifying zero for parameterlength and parameteraddress. The eight bytes that represent the parameter in the data buffer will contain zeros.

MBRPCNT=symbol
MBRPCNT=(r1-r12)
(Required) - Specifies a 4-byte field that contains the number of member parameters that are included in MBRPARM.
MBRSFUNC=symbol
MBRSFUNC=(r1-r12)
(Optional) - Specifies a 4-byte member subfunction code that is passed to the destination of the message in the SCI Input exit parameter list. This subfunction code, along with the MBRFUNC, identifies the message that is being sent.

If MBRSFUNC is a symbol, the symbol points to a 4-byte area of storage that contains the subfunction code.

NAME=symbol
NAME=(r1-r12)
(Optional) - Specifies the address of an 8-byte member name of the destination of this message. This name can be obtained from the Notify exit (when the member joins the IMSplex) or by issuing a CSLSCQRY message.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.

To route by NAME, the destination member must be authorized. If the member is not authorized, the message is not sent.

NAMELIST=symbol
NAMELIST=(r1-r12)
(Optional) - Specifies the address of a list of member names to which this message is to be routed. This list consists of a header and one or more list entries, each entry defining a single member name. If NAMELIST is specified, LISTLEN must also be specified.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.

The list header DSECT is CSLSMGLH, and the list entry DSECT is CSLSNMLE. These DSECTs are defined in CSLSCMAP.

For a message to be routed to a member using NAMELIST, that member must be an authorized member. If a member name for a non-authorized member is included in NAMELIST, the name will not be found and the message will not be sent to that member.

The NAMELIST is sent to SCI for processing. Then, control is returned to your program. A response of Request completed successfully does not mean that the message was sent to all names in the list; it means that the list was successfully sent to SCI. Errors could occur while the list is processed and the message is sent. Possible errors include:

  • Name not found
  • Name found, but the member terminated before message is sent
  • SCI abended
These errors are not returned to your program.
PARM=symbol
PARM=(r1-r12)
(Required) - Specifies the address of a parameter list used by the message to pass the parameters to SCI. The length of the storage must be at least equal to the value of SMSG_LN. The storage must begin on a word boundary.
RETCODE=symbol
RETCODE=(r1-r12)
(Required) - Specifies the address of a 4-byte field to receive the CSLSCMSG return code. The SCI return codes are defined in CSLSRR.
RETNAME=symbol
RETNAME=(r1-r12)
(Optional) - Specifies the address of an 8-byte field to receive the name of the IMSplex member to which the message was sent. If the message is sent to more than one destination, nothing is returned in this field.
RETTOKEN=symbol
RETTOKEN=(r1-r12)
(Optional) - Specifies the address of an 8-byte field to receive the token of the IMSplex member to which the message was sent. If the message is sent to more than one destination, nothing is returned in this field.
ROUTE=ANY
ROUTE=ALL
ROUTE=LOCAL
(Optional) - Specifies how the message should be routed to the type specified in the TYPE parameter or the types specified in the TYPELIST parameter. This parameter is valid only if TYPE or TYPELIST is specified.
ANY
Routes the message to a single member of the types specified. SCI selects the member that will receive the message. TYPE=ANY is not valid with TYPELIST.
ALL
Routes the message to all members of the specified types.
LOCAL
Routes the message to all members of the specified types that are active on the local z/OS® image.
RSNCODE=symbol
RSNCODE=(r1-r12)
(Required) - Specifies the address of a 4-byte field to receive the CSLSCMSG reason code. The SCI reason codes are defined in CSLSRR.
SCITOKEN=symbol
SCITOKEN=(r1-r12)
(Required) - Specifies the address of a 16-byte field that contains the SCI token of the member making the request. The token was returned on the CSLSCREG request.
TOKEN=symbol
TOKEN=(r1-r12)
(Optional) - Specifies the address of the 16-byte SCI token of the destination of this message. This token can be obtained from the Notify exit (when the member joins the IMSplex) or by issuing a CSLSCQRY message.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.
TOKENLIST=symbol
TOKENLIST=(r1-r12)
(Optional) - Specifies the address of a list of SCI tokens that represent members to which this message is to be routed. This list consists of a header and one or more list entries, each entry defining a single SCI token. If TOKENLIST is specified, LISTLEN must also be specified.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.

The list header DSECT is CSLSMGLH, and the list entry DSECT is CSLSTKLE. These DSECTs are defined in CSLSCMAP.

The TOKENLIST is sent to SCI for processing. Then, control is returned to your program. A response of Request completed successfully does not mean that the message was sent to all SCI tokens in the list; it means that the list was successfully sent to SCI. Errors could occur while the list is processed and the message is sent. Possible errors include:
  • Token not found
  • Token found but member terminated before message is sent
  • SCI abended
These errors are not returned to your program.
TYPE=symbol
TYPE='AOP'
TYPE='BATCH'
TYPE='CQS'
TYPE='DBRC'
TYPE='IMS'
TYPE='IMSCON'
TYPE='ODBM'
TYPE='OM'
TYPE='OTHER'
TYPE='RM'
TYPE='SCI'
(Optional) - TYPE specifies the SCI type of the destination of this message. SCI routes the message to one or more members of the specified type (depending on the value of the route parameters). If there are no members of the specified type, an error is returned.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.

If this parameter is passed as a literal, the literal must be enclosed in single quotation marks. If this parameter is passed as a symbol or register, the symbol or register must contain the member type code. The member type code can be obtained by using the CSLSTPIX macro.

TYPELIST=symbol
TYPELIST=(r1-r12)
(Optional) - Specifies the address of a list of member types to which this message is to be routed. This list consists of a header and one or more list entries, each entry defining a single SCI token. If TYPELIST is specified, LISTLEN must also be specified.
Note: One of the routing parameters (NAME, TOKEN, TYPE, NAMELIST, TOKENLIST or TYPELIST) must be included.

The list header DSECT is CSLSMGLH, and the list entry DSECT is CSLSTPLE. These DSECTs are defined in CSLSCMAP.

The TYPELIST is sent to SCI for processing. Then, control is returned to your program. A response of Request completed successfully does not mean that the message was sent to all types in the list; it means that the list was successfully sent to SCI. Errors could occur while the list is processed and the message is sent. Possible errors include:

  • No members of the specified type are active
  • A member of the specified type was found but terminated before the message is sent
  • SCI abended
These errors are not returned to your program.

CSLSCMSG return and reason codes

The following table lists the return and reason codes that can be returned on a CSLSCMSG macro request. Also included is the meaning of a reason code (that is, what possibly caused it).

Table 1. CSLSCMSG return and reason codes
Return code Reason code Meaning
X'00000000' X'00000000' The request completed successfully.
X'01000008' X'00002004' An invalid function was passed to the SCI interface PC routine.
  X'00002008' The number of parameters passed was either less than or equal to zero, or greater than the maximum allowed.
  X'00002010' An invalid type was passed.
  X'00002018' The SCI token was invalid.
  X'00002024' The PHDR length was invalid.
  X'00002028' The routing data length was invalid.
  X'00002034' The length of the parameters is too large for a non-authorized caller.
  X'00002038' The parameter list version is invalid.
X'01000010' X'00004000' SCI is not active.
  X'0000400C' The destination IMSplex member is not active. The requested member might have been specified by name, token, or type.
  X'0000401C' The calling member is in the process of deregistering from SCI.
  X'00004FFF' The function is not supported.
X'01000014' X'00005000' An SCI internal error occurred.
  X'00005004' An ESTAE add error occurred.
  X'00005024' An error in the SRB routine occurred.
  X'00005028' The routing type was invalid.
  X'0000502C' The member could not be found due to an internal BPE hash table services error.
  X'00005030' An SCI buffer could not be obtained.
  X'00005034' A key 7 buffer in the SCI address space could not be obtained for a copy of PHDR and parameters.
  X'00005038' An IEAMSCHD error occurred; the SRB could not be scheduled to the target address space.
  X'0000504C' The message SRB key 7 parameter area could not be obtained.
  X'00005500' An abend occurred during CSLSCMSG processing.
  X'00005504' An abend occurred when the member parameters were copied to the target address space.