CSLRMPRI: process initiate

With the CSLRMPRI request, a client can initiate a process across an IMSplex. RM ensures that only one IMSplex-wide process of a type can be in progress at one time. The process initiation fails if any other IMSplex-wide process of the type is in progress.

This request is supported in assembler language.

CSLRMPRI syntax

CSLRMPRI DSECT syntax

Use the DSECT function of a CSLRMPRI request to include equate (EQU) statements in your program for the length of the CSLRMPRI parameter list.

Read syntax diagramSkip visual syntax diagramCSLRMPRI FUNC=DSECT

CSLRMPRI INITIATE syntax

Use the INITIATE function of a CSLRMPRI request to initiate an IMSplex-wide process.

Figure 0.
Read syntax diagramSkip visual syntax diagramCSLRMPRIFUNC=INITIATEPARM= parmPRCNAME= processnamePRCTOKEN= processtokenPRCTYPE= processtypeECB= ecbRETNAME= returnnameRETTOKEN= returntokenRETCODE= returncodeRSNCODE= reasoncodeSCITOKEN= scitokenUOWTOKEN= uowtoken

CSLRMPRI parameters

ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS® ECB used for asynchronous requests. When the request is complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or equivalent) after receiving control from CSLRMPRI before using or examining any data returned by this request (including the RETCODE and RSNCODE fields).
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLRMPRI parameter list. The length of the parameter list must be equal to the parameter list length EQU value defined by RPRI_PARMLN.
PRCNAME=symbol
PRCNAME=(r2-r12)
(Required) - Specifies an 8-byte field containing the process name. The process name is client defined and has no meaning to RM. RM uses the process name and the process type to ensure that only one instance of a process of a particular process type is in progress at one time.
PRCTOKEN=symbol
PRCTOKEN=(r2-r12)
(Required) - Specifies a 16-byte field to receive the process token returned to the caller. The process token uniquely identifies the process instance. The process token returned is zero, if the IMSplex is defined with a resource structure. The process token is non-zero, if the IMSplex is not defined with a resource structure. The process token must be specified as input on any subsequent CSLRMPRS, CSLRMPRR, or CSLRMPRT request.
PRCTYPE=symbol
PRCTYPE=(r2-r12)
(Required) - Specifies a 1-byte client-defined process type. Only one process of a particular type can be in progress at any one time. The process type can be 1 through 255.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. RM return codes are defined in CSLRRR. SCI return codes are defined in CSLSRR. Possible return codes are described in the following table.
RETNAME=symbol
RETNAME=(r2-r12)
(Optional) - Specifies an 8-byte field to receive the RM name returned to the caller. This is the CSL member name of the target RM address space to which SCI sent the request.
RETTOKEN=symbol
RETTOKEN=(r2-r12)
(Optional) - Specifies a 16-byte field to receive RM's SCI token returned to the caller. This is the SCI token for the target RM address space to which SCI sent the request.
RSNCODE=symbol
RSNCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. RM reason codes are defined in CSLRRR. SCI reason codes are defined in CSLSRR. Possible reason codes are described in the following table.
SCITOKEN=symbol
SCITOKEN=(r2-r12)
(Required) - Specifies a 16-byte field containing the SCI token. This token uniquely identifies this connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.
UOWTOKEN=symbol
UOWTOKEN=(r2-r12)
(Required) - specifies a 16-byte field containing the unit of work token. The UOW token uniquely identifies an instance of this process and ties all of the process steps together. The UOW token must be specified on the RM process step request, CSLRMPRS. The UOW token is client-defined and has no meaning to RM.

CSLRMPRI return and reason codes

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

Table 1. CSLRMPRI return and reason codes
Return code Reason code Meaning
X'00000000' X'00000000' The request completed successfully.
X'03000008' X'00002000' The client is not registered.
  X'00002208' The process type is invalid.
  X'00002310' The UOW token is invalid.
X'03000010' X'00004000' The CQS address space is unavailable. Retry the request to attempt routing the request to another RM with an available CQS.
  X'00004100'

The requested version is not supported. The client compiled with a version of CSLRMPRI that is not supported by RM. All RMs must be migrated to a new release before IMS is migrated to a new release that uses a new CSLRMPRI function.

  X'00004120' A process of the same type is already in progress. This process initiation request is rejected. Try the process again later.
  X'0000412C' A different process of the same type is already in progress. This process initiation request is rejected. Try the process again later.
X'03000014' X'00005114' The process block allocation failed.
  X'00005200' The CQS request resulted in unexpected error.
  X'00005204' The CQS request failed because RM incorrectly built the request input.
  X'00005208' The resource structure is not available.
  X'0000520C' The resource structure is full.
  X'00005210' RM is unable to add the process block to hash table.
  X'00005218' RM is unable to scan the process block in hash table.
  X'00005220' RM is unable to get the process latch.