CICS ONC RPC control flow
Stabilized feature: CICS® support for Open Network Computing Remote Procedure Call (ONC RPC) is
stabilized. Consider exposing and orchestrating applications as API services by using z/OS Connect Enterprise Edition or CICS
web services, or by writing web applications in Java or Node.js. See also Stabilization notices and discontinued functions.
This shows the components involved in processing a typical client ONC RPC request.

Client requests are processed in the following steps:
- A request from a client arrives in z/OS® Communications Server.
- The server controller monitors the z/OS Communications Server interface for incoming client requests, and the client request is passed to it. (From the 4-tuple for the request, the server controller can find the corresponding XDR routine and converter to call.)
- The server controller invokes the inbound XDR routine.
- The server controller calls the converter, requesting the Decode function, if it is required for the 4-tuple. If Decode is not required, the server controller allocates storage for the CICS program communication area.
- The server controller then starts an alias to deal with all further processing of the request within CICS.
- The server controller returns to monitor the z/OS Communications Server interface for client requests.
- The alias optionally calls a user-written resource checker.
- The alias issues an EXEC CICS LINK to the CICS program for the 4-tuple. The communication area set up by Decode is passed in the LINK command.
- The CICS program processes the request and returns its output to the alias program in the communication area.
- The alias calls the Encode function, if it is required for the 4-tuple.
- The alias invokes the outbound XDR routine.
- The alias returns the reply to z/OS Communications Server, and ends.
- The reply is sent back to the client.
How the server updates recoverable resources
After Decode processing, the server controller uses EXEC CICS SYNCPOINT to commit any changes to recoverable resources that Decode might have made.
If the CICS
program makes updates to recoverable resources, whether the changes are committed or backed out
depends on the location of the CICS program, and on whether it uses the EXEC CICS
SYNCPOINT command.
- If the CICS program is in a CICS region different from the one in which CICS ONC RPC is operating, the updates are committed when the CICS program returns control to the alias.
- If the CICS program is in the same CICS region as CICS ONC RPC, and it uses EXEC CICS SYNCPOINT, the updates are committed when the syncpoint is processed.
- If the CICS program is in the same CICS region as CICS ONC RPC, but it does not use EXEC CICS SYNCPOINT, the updates are committed when the alias transaction ends normally, or are backed out when the alias transaction abends.