z/OS MVS Programming: Sysplex Services Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Parameter Descriptions

z/OS MVS Programming: Sysplex Services Reference
SA38-0658-00

The parameter descriptions are listed in alphabetical order. Default values are underlined:
,ANSAREA=ansarea
Use this output parameter to identify the storage area to contain the data returned by the REQUEST=QUERYMSG service. The data returned consists of a header record followed by zero or more records appropriate to the type of query. The IXCYMQAA macro defines the mappings for the header record and data records.

The storage area specified by ANSAREA must either be in the caller's primary address space or in an address or data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL) or in a common area data space.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of the output area where IXCMSGC is to return the requested information.

,ANSLEN=anslen
Use this input parameter to specify the length in bytes of the area you provided on the ANSAREA parameter.

The length of the answer area must be large enough to contain a complete header record (mapped by MQAHEADER). If the answer area is not large enough to contain all the available data records, data collection stops. The header record indicates how much storage would have been needed to collect all the data for the request (field MQAHDRTLEN). Note that the amount of storage needed to collect all the data can change by the time a new query is attempted.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a fullword field, or a decimal value, that contains the length in bytes of the answer area.

,DATATYPE=MSGOUT
,DATATYPE=MSGIN
,DATATYPE=DETAIL
Use this input parameter to indicate what type of information is to be collected by the REQUEST=QUERYMSG request.
DATATYPE=MSGOUT
Collect summary information about messages sent by the member through the message-out service (IXCMSGO). The data returned for each message includes:
  • A token that identifies the message
  • User data associated with the message
  • Status of the message.
This data is mapped by the MQAMSGOUTSUMMARY record defined in IXCYMQAA.

Note that a message reported by this query might not exist by the time the member making the query request attempts to use the message token returned in the answer area. For example, a message that was incomplete at the time of the query could complete and be processed by a message notify user routine before the member could use the message token returned from the query.

DATATYPE=MSGIN
Collect summary information about incoming messages that the member saved. Information is collected for messages that were saved by the message user routine or for responses saved by the message notify user routine. The data returned for each message includes:
  • A token that identifies the message
  • User data associated with the message
  • The member token of the member that sent the message.
This data is mapped by the MQAMSGINSUMMARY record defined in IXCYMQAA.
DATATYPE=DETAIL
Collect detail information about the message identified by the TOKEN parameter. The data returned for the message depends on the type of message.
  • For a message-out request, the data returned includes:
    • A token that identifies the message
    • User data associated with the message
    • Number of targets for the message
    • Message control data from the message-out request.
    • Flags to describe the characteristics of the message.
    • A table of response data with an entry for each possible target. The entry describes the result of the send and the associated response collection (if any). The entry also provides status information about the send, including whether it might require the asynchronous access of user storage.

    This data is mapped by the MQAMSGOUTDETAIL record defined in IXCYMQAA.

  • For a message saved by the message user routine or for a response saved by the message notify user routine, the data returned includes:
    • A token that identifies the message
    • User data associated with the message
    • The member token of the member that sent the message
    • Message length
    • Message control data from the sender.

    This data is mapped by the MQAMSGINDETAIL record defined in IXCYMQAA.

,EXITPARMS=ZERO
,EXITPARMS=exitparms
Use this input parameter to specify the storage area that contains user parameters to be passed to the user routine identified either by the NOTIFYEXIT or MSGEXIT parameter of IXCMSGC.
  • For a message user routine, MEPLEXEXITPARMS within the message exit parameter list (mapped by IXCYMEPL) contains a copy of these parameters.
  • For a message notify user routine, MNPLEXITPARMS within the message notification parameter list (mapped by IXCYMNPL) contains a copy of these parameters.

The user can define the content and meaning of the 64-bit area. For example, you could use the area to pass the address and ALET of a storage area containing information that determines how the exit routine should perform its processing.

If the user does not specify EXITPARMS, the default is to set the parameters to X'0'.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of the 64-bit storage area containing the user parameters.

,HOLDTIME=INDEFINITE
,HOLDTIME=CONTINUE
,HOLDTIME=SET
Use this optional keyword input to indicate how long XCF is to keep the saved message. The default is HOLDTIME=INDEFINITE.
,HOLDTIME=INDEFINITE
The message is to be saved until the message is processed by a CALLEXIT, discarded, or the member ends.
,HOLDTIME=CONTINUE
The currently established HOLDTIME for the message is to continue to be in effect. CONTINUE can only be specified if a message has previously been saved.
,HOLDTIME=SET
A finite HOLDTIME specified by the TIME keyword is to be assigned and set by XCF for the message. SET can be used to establish an initial HOLDTIME for a saved message or be used to modify the HOLDTIME for a message.
,TIME=xtime
The name (RS-type), or address in register (2)-(12), of a required halfword input that indicates the number of seconds, starting from the time the SAVEMSG request is processed, XCF is to keep a saved message before discarding the message. The xtime value must in the range 1 - 65535.
MEMTOKEN=memtoken
Use this input parameter to specify the member token that was returned by IXCJOIN and that identifies the member making the IXCMSGC request.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 64-bit field that contains the member token.

,MF=S
,MF=(L,mfctrl)
,MF=(L,mfctrl,mfattr)
,MF=(L,mfctrl,0D)
,MF=(E,mfctrl)
,MF=(E,mfctrl,COMPLETE)
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.

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 can 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 stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.
,mfctrl
Use this output parameter to specify a storage area to contain the parameters.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of the parameter list.

,mfattr
Use this input parameter to specify the name of a 1- to 60-character string that can contain any value that is valid on an assembler DS pseudo-op. You can use this parameter to force boundary alignment of the parameter list. If you do not code mfattr, the system provides a value of 0D, which forces the parameter list to a doubleword boundary.
,COMPLETE
Use this input parameter to require that the system check for required parameters and supply defaults for omitted optional parameters.
Note: In the macro expansion you might see some defaults for optional parameters that are not documented here. The ones that are not documented do not have any effect on the macro. For example, if SMILE=var were an optional parameter and the default is SMILE=NO_SMILE then it would not be documented. However, if the default was SMILE=:-), then it would be documented because a value would be the default.
,MQAALEVEL=0
,MQAALEVEL=mqaalevel
Use this optional keyword to specify the name (RS-type), or address in register (2)-(12), of a byte input variable specifying the level of the various IXCYMQAA record mappings which are to be returned. Valid values are 0 and 1. The IXCYMQAA macro documents the maximum level supported by each DATATYPE. A value of 0 indicates that the base level IXCYMQAA records are to be returned. A value of 1 indicates that the level-1 IXCYMQAA records are to be returned. The default is 0.
,MSGEXIT=msgexit
Use this input parameter to identify the message user routine in the joiner's address space that is to receive control as specified by a REQUEST=CALLEXIT invocation. The user routine need not be the same as the message user routine defined when the member invoked IXCJOIN to join the XCF group.

Note that MSGEXIT is mutually exclusive with NOTIFYEXIT.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of the 31-bit message user routine that is to receive control.

,MSGTAG=NO_CHANGE
,MSGTAG=msgtag
Use this optional keyword to specify the name (RS-type), or address in register (2)-(12), of an optional 64 character variable that contains a user-defined message tag to be associated with the saved message. msgtag persists for a message until it is changed. You can use MSGTAG later as a filter criteria in a Message Control QUERYMSG request. The storage area indicated by MSGTAG must either be in the caller's primary address space or in an address/data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL), or in a common area data space. The default is MSGTAG=NO_CHANGE, which means that the existing message tag is to be left as is.
,MSGTAGFILTER=NO_MSGTAGFILTER
,MSGTAGFILTER=msgtagfilter
Use this optional keyword to specify the name (RS-type), or address in register (2)-(12), of a 64-character variable that contains a user-defined message tag to be used as a search filter criteria when collecting data for the QUERYMSG request. The storage area indicated by MSGTAGFILTER must either be in the caller's primary address space or in an address/data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL), or in a common area data space. The default is MSGTAGFILTER=NO_MSGTAGFILTER, which means that a message tag filter is not to be used.
,MSGTAGMASK=ALL
,MSGTAGMASK=msgtagmask
Use this optional keyword to specify the name (RS-type), or address in register (2)-(12), of a 64- character input that identifies a mask pattern to be applied to MSGTAGFILTER when selecting messages whose data is to be collected.

The position of each bit in MSGTAGMASK corresponds to the same bit position in MSGTAGFILTER and in the message tag associated with a message. For example, if bit n in MSGTAGMASK is 1, bit n of MSGTAGFILTER is to be compared to bit n of the message tag associated with a message. If bit n in MSGTAGMASK is 0, then the corresponding bit in MSGTAGFILTER is not to be used for comparison. If all bits selected by MSGTAGMASK are equal and the message passes all other filter criteria, data associated with the message is to be collected.

Specifying a MSGTAGMASK where all the bits are zero indicates that the MSGTAGFILTER is always a match, and data for messages that pass all other filter criteria is to be collected. The storage area indicated by MSGTAGMASK must either be in the caller's primary address space or in an address/data space that is addressable through a public entry on the dispatchable unit access list (DU-AL) of the caller, or in a common area data space. The default is MSGTAGFILTER= ALL, which means that all bits in the MSGTAGFILTER need to be compared.

,NOTIFYEXIT=notifyexit
Use this input parameter to identify the message notify user routine in the joiner's address space that is to receive control as specified by a REQUEST=CALLEXIT invocation. The user routine need not be the same as the message notify user routine defined when the member invoked IXCJOIN to join the XCF group nor need it be the one specified on the IXCMSGO invocation to send the message.

Note that NOTIFYEXIT is mutually exclusive with MSGEXIT.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of the 31-bit message notify user routine that is to receive control.

,PLISTVER=IMPLIED_VERSION
,PLISTVER=MAX
,PLISTVER=plistver
Use this input parameter to specify the version of the macro. See Understanding IXCMSGC Version Support for a description of the options available with PLISTVER.
,REQUEST=SAVEMSG
,REQUEST=DISCARDMSG
,REQUEST=QUERYMSG
,REQUEST=COMPLETION
,REQUEST=CALLEXIT
,REQUEST=RELEASEMSG
Use this input parameter to indicate the type of request to be processed.
REQUEST=SAVEMSG
Save the message for later processing. This request is valid only when invoked from a message user routine or a message notify user routine. Use the TOKEN parameter to identify the message that is to be saved. If the user routine neither saves the message with the SAVEMSG service nor receives the message with the IXCMSGI service, the system automatically discards the message when the user routine gives up control.

A message notify user routine can save the entire message-out request including any available responses and can save individual responses as independent messages. A message user routine can save its message.

Once the user routine saves the message, the system invalidates the message token passed through the TOKEN keyword. Thus, the message is no longer available to the user routine because both the IXCMSGI service and the IXCMSGC service will reject requests that attempt to use the invalidated token. You can process a saved message by invoking the IXCMSGC REQUEST=CALLEXIT service.

The system automatically discards saved messages when the member becomes not active. An active member can discard its saved message by invoking the IXCMSGC REQUEST=DISCARDMSG service.

When a message is saved from within a message user routine, only the undelivered portion of the message is saved along with the data required to create a new message exit parameter list (MEPL). Once a member has received message data into the member's buffer area, the message data is considered delivered. The delivered part of the message cannot be redelivered (with REQUEST=CALLEXIT) nor can it be saved. When a partially delivered message is saved, only the undelivered portion of the message is saved for later retrieval by the REQUEST=CALLEXIT service.

When a message with or without its associated responses is saved from within a message notify user routine, the message and its associated responses can be saved as a single entity or each individual response can be saved independently of the message or both.
  • When saved as a single message/response entity, the undelivered portion of the responses is saved along with the data required to create a new message notification parameter list (MNPL). The token, passed by the TOKEN parameter, identifying the message is invalidated, as well as all the message tokens identifying the individual responses, if any, associated with the message (MNPLTRMSGITOKEN). The saved message/response entity can be processed at a later time by a message notify user routine specified on the IXCMSGC REQUEST=CALLEXIT service.
  • When an individual response is saved as an independent message, the undelivered portion of the responses is saved along with the data required to create a new message exit parameter list (MEPL). The message token passed with the TOKEN parameter is invalidated. Note that a saved response is considered an independent message and must be processed as such with a message user routine specified on the IXCMSGC REQUEST=CALLEXIT service.
REQUEST=DISCARDMSG
Discard the message identified by TOKEN or SENDTOKEN. A discarded message is no longer available for processing:
  • Usage with the IXCMSGI(X) and IXCMSGO(X) macros

    A discarded message is no longer available for processing. For example, XCF does not deliver a discarded message to any exit routine and the message is not visible to the message control QUERYMSG service. Any responses that are still associated with a message/response entity are discarded; however, saved responses are not discarded because saving a response causes the response to become disassociated from the message/response entity.

    If an exit routine does not explicitly save a message or if the message is not received by the IXCMSGI(X) macro, XCF automatically discards the message when the exit routine gives up control. Therefore, most members do not need to use REQUEST=DISCARDMSG on the macro from within an exit routine if they do not want to process the message. (Letting XCF discard the message automatically is preferable to discarding from within an exit routine because the automatic discard by XCF has less system processing overhead.)

    If a message is discarded while an exit routine is processing the message, attempts that the exit routine makes to process the message through XCF macros are rejected with a return/reason code. Depending on the timing, the current operation that the exit is performing might be permitted to complete before the message is discarded. In such a case, IXCMSGC REQUEST=DISCARDMSG returns to indicate that the discard of the message is pending.

    You can discard incomplete message-out requests before the message completes. For example, a message queued by XCF because of a lack of signalling resource or a message whose XCF-managed response collection is not complete can be discarded. Such a discard has the effect of cancelling the message-out request. For a broadcast to multiple targets, XCF does not send any remaining messages that have not yet been sent and discards any collected responses. XCF also discards any responses that arrive for the cancelled message, and the system does not call the notification exit for the cancelled message. If XCF has initiated a send to a particular target member before the message cancellation, it delivers any of those messages as usual.

  • Usage with the client/server IXCSEND and IXCRECV macros.

    For XCF IXCSEND messages identified by SENDTOKEN, responses to a discarded message cannot be retrieved using the IXCRECV service. Status information about the message is no longer available. Undelivered responses that arrived before the message was discarded are no longer available. Subsequently arriving responses are discarded. Discarding a message releases a blocking receive initiated for that message. That is, if a unit of work has issued IXCRECV REQTYPE=BLOCKING to receive a message, and another unit of work issues IXCMSGC REQUEST=DISCARDMSG to discard the message, the blocked receiver is resumed and receives a return and reason code indicating that the message was not found. No data will be returned in the answer area for the resumed IXCRECV request.

    Use the XCF message control completion service to force a message-out or client/server request to be stopped in a way that preserves the request for further processing by the member or IXCRECV.

To force a message-out or a client/server request to be stopped in a way that preserves the request for further processing by the member or by IXCRECV, use the IXCMSGC REQUEST=COMPLETION.

REQUEST=QUERYMSG
Return information appropriate for the requested type of query in the storage area specified by ANSAREA. The DATATYPE parameter specifies the type of information requested. The contents of the answer area are mapped by IXCYMQAA. Use the length and offsets provided in the IXCYMQAA records to ensure compatibility with additional data provided in the future.
REQUEST=COMPLETION
Complete the message identified by the TOKEN parameter. You can request COMPLETION for a message-out request that XCF has accepted for delivery, but does not yet consider complete.
A message is considered complete in the following situations:
  • A message-out request is considered complete if it times-out or if the REQUEST=COMPLETION service is used to force its completion.
  • A message with response is considered complete when one or more of the expected responses arrive.
  • A message without response is considered complete as soon as XCF has initiated the send of the message.
  • A message broadcast to multiple targets is considered complete when XCF has initiated the send of the message to every valid target member.

Once completed, processing for the message continues just as if it completed without direct intervention. XCF no longer attempts to send the message to any intended target. XCF discards any responses to the message that subsequently arrive. If notification was to be provided upon completion of the message, the message notify user routine receives control.

Consider the following usage of IXCMSGC requests:
  • For a message-out request: The user notify exit receives control. If not, you can use REQUEST=CALLEXIT to call a user notify exit routine.
  • For an XCF client/server request: Undelivered responses that arrive before the message is forced to complete remain available. Any responses arriving after the message is considered to be complete are discarded. Completing a message releases a blocking initiated for that message; that is, if a unit of work has issued IXCRECV REQTYPE=BLOCKING to receive a message and another unit of work issues IXCMSGC REQUEST=COMPLETION to force that message to completion, the blocked receiver is resumed and receives any responses that have arrived up to that point.

If a unit of work has issued IXCMSGOX with MSGACCESS=SYNCSUSPEND or a client/server request (IXCSEND) and the unit of work is paused by XCF, the service invoker can receive a return and reason code indicating that the request may not have completed sending the message to all intended targets.

Use the REQUEST=DISCARDMSG service to force a message-out or client/server request to be stopped in a way that makes the message unavailable for further processing.

To force a message-out request to be stopped so that the message is not available for further processing, use REQUEST=DISCARDMSG (for example, to prevent the notify exit from getting control even though it was requested on the IXCMSGO macro.)

REQUEST=CALLEXIT
Call a user routine to process the message identified by the TOKEN parameter. The message can be a saved message or a completed message-out request. The type of user routine must be appropriate for the message.
  • Use a message user routine to process messages saved by a message user routine and responses saved by a message notify user routine.
  • Use a message notify user routine to process completed message-out requests and saved message and response entities.

A CALLEXIT request first passes control to a system service routine that sets up the appropriate environment, collects information pertinent to the message, and calls the specified user routine. The user routine receives control synchronously — under the same unit of work as the invoker of the CALLEXIT service. After performing whatever processing is required, the user routine returns to the system service routine, which then releases resources as necessary, restores the environment, and returns control to the invoker of the CALLEXIT service.

Only one user routine is allowed to process a particular message at any one time. The system rejects the CALLEXIT request if a user routine is already processing the message.

REQUEST=RELEASEMSG
Release a client/server blocking receive request (IXCRECV), a client/server send message request (IXCSEND), or a message-out request (IXCMSGOX) issued with the MSGACCESS=SYNCSUSPEND keyword.

If a unit of work has issued IXCRECV REQTYPE=BLOCKING to receive the results of an XCF client/server message, and another unit of work issues IXCMSGC REQUEST=RELEASEMSG, the blocked receiver is resumed, and the receiver receives a return and reason code indicating that the receive request is released. Data is not returned in the answer area or the data area for the released IXCRECV request. The message persists for the HOLDTIME value specified on the IXCSEND macro service, and a subsequent IXCRECV can be issued to receive the message information.

If a unit of work has issued IXCMSGOX with MSGACCESS=SYNCSUSPEND or a client/server request (IXCSEND) and the unit of work is paused by XCF, the service invoker can receive a return and reason code indicating that the request might not complete sending the message to all intended targets. For an IXCMSGOX broadcast or IXCSEND to multiple targets, any remaining unsent messages are not sent. For message-out requests, if notification is to be provided upon completion of the message, the user notify exit receives control; otherwise, the message control CALLEXIT service can be used to call a user notify exit routine.
Note: If XCF initiates a send to a particular target member, the message is delivered. For an IXCSEND request with a HOLDTIME specified, the IXCRECV service macro can be issued to receive the results of the released client/server request.
,RETCODE=retcode
Use this output parameter to specify the location in which the system is to copy the return code from GPR 15.

To Code: Specify the name of a fullword field (or register 2-12 containing the address of the field) to contain the return code.

,RETMSGTOKEN=retmsgtoken
Use this output parameter to contain a token that the REQUEST=SAVEMSG service returns to identify a saved message.

Pass this token to the DISCARDMSG or CALLEXIT services of IXCMSGC. You can also obtain a token for the message to be passed to these services by invoking the QUERYMSG service of IXCMSGC.

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 16-character storage area to contain the message token.

The storage area must be in the caller's primary address space, in an address space or data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL), or in a common area data space.

,RSNCODE=rsncode
Use this output parameter to specify the location in which the system is to copy the reason code from GPR 0.

To Code: Specify the name of a fullword field (or register 2-12 containing the address of the field) to contain the reason code.

SENDTOKEN=sendtoken
Use this input parameter to specify a token that is associated with an XCF client/server request/response entity. You can obtain the token from the IXCSEND macro by using the RETMSGTOKEN parameter. For a DISCARDMSG request, the token identifies the XCF client/server server request or server response to be discarded. For a COMPLETION request, the token identifies the XCF client/server server request or server response to be completed. For a RELEASEMSG request, the token identifies the XCF client/server IXCRECV or IXCSEND request that is to be released

SENDTOKEN=sendtoken is mutually exclusive with TOKEN=token .

To Code: Specify the RS-type name or address (using a register from 2 to 12) of a 32-byte area containing the message token

,SOURCE=ANY
,SOURCE=source
Use this input parameter to specify a member token. The REQUEST=QUERY service will collect only the incoming messages sent by the specified member.

To Code: Specify the name of a 64-bit field (or register 2-12 containing the address of the field) to contain the member token.

,STATUS=SAVED
,STATUS=COMPLETE
,STATUS=INCOMPLETE
Use this input parameter to specify the status of the message-out requests for which data is to be collected with REQUEST=QUERYMSG.
STATUS=SAVED
Collect information about messages that were saved through use of the REQUEST=SAVEMSG service. These messages are the message and response entities saved by the message notify user routine.
STATUS=COMPLETE
Collect information about messages that are completed. A message is considered complete in the following situations:
  • A message-out request is considered complete if it times-out or if the REQUEST=COMPLETION service is used to force its completion.
  • A message with response is considered complete when the expected response(s) arrive.
  • A message without response is considered complete as soon as XCF has initiated the send of the message.
  • A message broadcast to multiple targets is considered complete when XCF has initiated the send of the message to every valid target member.
STATUS=INCOMPLETE
Collect information about messages that have not yet completed. For example, the message might have been queued due to an XCF signalling buffer shortage, or in the case of a response-required signal, a response to the message might not have arrived and the message has either not yet timed-out or been forced to completion with IXCMSGC REQUEST=COMPLETION.
,TOKEN=token
Use this input parameter to identify the message to which the IXCMSGC request refers. The token used to identify a message can vary. Two different tokens might identify the same message. Do not expect to compare tokens to determine if they identify the same message. For example, a token presented to a user routine and a token obtained by other means (such as with the RETMSGOTOKEN parameter of IXCMSGO or the token obtained from the IXCMSGC SAVEMSG or the IXCMSGC QUERYMSG service) could be different and yet represent the same message. The tokens obtained by the other means described above will be the same for the same message, at least for a particular member.
A description of how to obtain a token suitable for each of the IXCMSGC services follows:
  • For a SAVEMSG request, the token identifies the message to be saved. The system invalidates this token once the message is saved.
    • Obtain the token when running in a message user routine from the message token (MEPLMSGITOKEN) passed in the message exit parameter list, mapped by IXCYMEPL.
    • Obtain the token when running in a message notify user routine from the message token (MNPLMSGOTOKEN) passed in the message notification parameter list, mapped by IXCYMNPL. This token identifies the message and its associated responses (if any) as a single entity. For an individual response, obtain the token from the message token (MNPLTRMSGITOKEN) passed in the MNPL.
  • For a DISCARDMSG request, the token identifies the message to be discarded.
    • Obtain the token for an incoming message from one of these sources:
      • The SAVEMSG service with the RETMSGTOKEN parameter
      • The QUERYMSG service with the DATATYPE=MSGIN
      • The MEPL (MEPLMSGITOKEN) or the MNPL (MNPLTRMSGITOKEN) if the user routine has not finished processing the message. Note that the tokens from these parameter lists are invalidated if the user routine saves the message, discards the message, receives all the message data, or gives up control. The MNPLTRMSGITOKEN also is invalidated if the message notify user routine finishes processing the message/response entity. Note also that the token is valid only under the user routine unit of work.
    • Obtain the token for a message/response entity from one of these sources:
      • The IXCMSGO(X) service with the RETMSGOTOKEN parameter
      • The SAVEMSG service with the RETMSGTOKEN parameter
      • The QUERYMSG service with DATATYPE=MSGOUT
      • The MNPL (MNPLMSGOTOKEN) if the message notify user routine has not finished processing the message/response entity. Note that this token is invalidated if the user routine saves the message, discards the message, or gives up control.

      Each of the tokens described is invalidated if any other unit of work discards the message.

      TOKEN=token is mutually exclusive with SENDTOKEN=sendtoken .

  • For a QUERYMSG request, the token identifies the message for which the system is to collect DETAIL information.
    • Obtain the token to identify the message from one of these sources:
      • The SAVEMSG service with the RETMSGTOKEN parameter
      • The IXCMSGO(X) service with the RETMSGOTOKEN parameter
      • The IXCMSGC QUERYMSG service with DATATYPE=MSGIN or MSGOUT.
  • For a COMPLETION request, the token identifies the message to be completed.
    • Obtain the token to identify the message from one of these sources:
      • The IXCMSGO(X) service with the RETMSGOTOKEN parameter
      • The IXCMSGC QUERYMSG service with DATATYPE=MSGOUT and STATUS=INCOMPLETE.
  • For a CALLEXIT request, the token identifies the message to be processed by the user routine.
    • Obtain the token for a message user routine from one of these sources:
      • The IXCMSGC QUERYMSG service with DATATYPE=MSGIN
      • The IXCMSGC SAVEMSG service with RETMSGTOKEN parameter when the message was saved by a message user routine or a response was saved by a message notify user routine.
    • Obtain the token for a message notify user routine from one of these sources:
      • The IXCMSGO(X) service with the RETMSGOTOKEN parameter
      • The IXCMSGC QUERYMSG service with DATATYPE=MSGOUT and STATUS=SAVED or COMPLETE
      • The IXCMSGC SAVEMSG service with the RETMSGTOKEN parameter when the message/response entity was saved by a message notify user routine.
,TYPE=FORCE
Use this input parameter to specify that the message is to be immediately considered as complete when invoking the IXCMSGC REQUEST=COMPLETION service. This type of completion is comparable to forcing a message time-out value to expire immediately.
,USERDATA=NO_CHANGE
,USERDATA=userdata
Use this input parameter to specify a storage area that contains user data to be associated with a saved or completed message. The system presents the user data to a user routine.
  • For a saved message, the following fields are used to pass the user data:
    • The field MEPLEXUSERDATA contains the user data passed to a message user routine.
    • The field MNPLMSGOUSERDATA contains the user data passed to a message notify user routine.
  • For a completed message, the field MNPLMSGOUSERDATA contains the user data passed to a message notify user routine. Note that the current user data associated with the message is replaced by this user data only if the invocation of the IXCMSGC COMPLETION service causes the message to be considered complete.

To Code: Specify the RS-name or address (using a register from 2 to 12) of the 8-character field that contains the user data to be associated with the message.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014