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.
CSLSCMSG SEND MESSAGE syntax
The
syntax of the CSLSCMSG FUNC=SEND
request is shown
below:
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
- 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 ofRequest 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
- 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
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).
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. |