In the target CICS region, EXCI invokes the server program specified by the client using an EXEC CICS LINK operation. The server program runs under the system program dfhzcpmi, which is the top-level program for the system transaction CPMI.
The application server program is a CICS program, and can use most CICS functions. EXCI server programs are restricted to the DPL subset of the CICS API as defined by IBM, though this restriction may not be enforced in all cases. Because the application server program does not run at the top link-level, it cannot use certain other options of some CICS APIs, such as the IMMEDIATE or COMMAREA options of EXEC CICS RETURN. It does not need a PCT entry. If you need to change the PCT attributes for an EXCI server program, you will have to copy the CPMI entry to a user resource group and modify it.
The server program will be called with a CICS commarea containing any application data supplied by the EXCI client program. The size of the commarea (EIBCALEN) will be the larger of the size of the data from the client and the minimum commarea size specified in the EXCI service configuration, unless that is larger than the maximum commarea size specified in the service configuration, or larger than the maximum commarea supported by the system. (The minimum and maximum commarea size attributes for the service are optional: if they are not set, the commarea will be as large as the data sent by the client.) The server program can change the commarea contents in place to create the response message for the client. It cannot change the size of the commarea, or move or reallocate it.
The dfhzcpmi program will intercept any abends not handled by the EXCI application server program, or any abends or errors that occur while trying to execute the server program (for example if the LINK operation fails because the program could not be loaded). It sends information about these errors back to the EXCI client, which makes them available to the client program.