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


Processing a request sent by a client

z/OS MVS Programming: Sysplex Services Guide
SA23-1400-00

The primary function of a server is to process client requests. Clients invoke the IXCSEND macro to send requests to the server. The content of the client request message, the processing performed by the server, and the content of the server response (if any) are determined by the needs of the client/server application. The server processes the request and sends a response. Understand that the request might be processed by the server exit routine, or the server exit might arrange for some other agent to process the request, or the request might be processed cooperatively by the server exit and various agents.

Responses are sent to provide the results of the processing by a server. In practice, a client might expect a reply from the server. If a reply is expected, the reply might be a message containing data, or it might be a simple acknowledgment indicating whether the request has been processed.

When a server exit is called to process a request, the function specific parameters mapped by ixcysrvr_tRequest contain copies of most of the keyword values that are specified on the IXCSEND macro used by the client to send the request. The function specific parameters also include a "message descriptor" that identifies the size and location of the content of the request message. The server exit routine uses the SXPL parameters and the message content to determine what it needs to do.

Note that the message descriptor contains a flag (md_ExpectReply) to indicate whether the client is expecting a reply. If a reply is expected, the field md_RespToken contains a token that the server (or its agent) must provide as input when it invokes IXCSEND SENDTO=ORIGINATOR to send the expected response. If the server exit does not send the response before it returns to XCF, a copy of the token must be preserved for later use with IXCSEND. Processing that occurs asynchronously to the server exit routine cannot rely on the content of SXPL to remain intact because XCF might re-use the storage containing the SXPL upon return from the server exit. Thus, before it returns to XCF the server exit needs to preserve a copy of the response token, as well as any other information that might be needed from the SXPL, so that the data is available for use by the asynchronous work unit that is to send the results.

The manner in which the request is processed is up to the provider of the server exit routine. If the client expects a reply, a response will be sent. In most cases, the responder invokes IXCSEND SENDTO=ORIGINATOR to send the reply. The originating client obtains the reply by invoking IXCRECV.

When invoking IXCSEND to send a reply, the responder can specify various keywords to provide different kinds of data to the client. The design of the client/server application determines whether any particular keyword is relevant. Specifically, the following keywords might be of interest:
  • RESPRETCODE and RESPRSNCODE
  • SUPPLIEDLEVEL and SUPPORTSLEVEL
  • MSGCNTL
  • MSGDATA or MSGDESC
For information about sending a response, see Sending a response to a client. For details on all IXCSEND keywords, see z/OS MVS Programming: Sysplex Services Reference.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014