The EntireX CICS® ECI RPC Server allows standard RPC clients to communicate with CICS programs running on IBM CICS®. It supports the programming languages COBOL and PL/I and transforms the RPC requests from clients into messages to CICS ECI. This document covers the following topics:
The CICS ECI RPC Server acts on one side as an RPC server and on the other side as a client for CICS ECI. The CICS ECI RPC Server is a Java-based component that can run on a different host to the one where CICS is running. This allows it to operate with a zero footprint of EntireX on the CICS host.
For local extraction, all source files have to be stored locally on the same machine where the EntireX Workbench is running.
For existing CICS COBOL programs, use the Software AG IDL Extractor for COBOL to extract the Software AG IDL File for the RPC clients.
For existing CICS PL/I programs, use the Software AG IDL Extractor for PL/I to extract the Software AG IDL File for the RPC clients.
Remote extraction requires an RPC server running under z/OS with Extractor Service (Batch | IMS).
For COBOL, see Step 2: Select a COBOL Extractor Environment or Create a New One in the IDL Extractor for COBOL documentation.
For PL/I, see Extract Software AG IDL File from a Remote PL/I RPC Environment in the IDL Extractor for PL/I documentation.
RPC requests are worked off inside the RPC server in worker threads.
Every RPC request occupies during its processing a worker thread.
If you are using RPC conversations, each RPC conversation requires its own thread during the lifetime of the conversation.
The CICS ECI RPC Server can adjust the number of worker threads to the number of parallel requests.
Use the properties entirex.server.fixedservers
,
entirex.server.maxservers
and
entirex.server.minservers
to configure this scalability. The CICS ECI RPC Server provides two worker models:
The fixed model creates a fixed number of worker threads. If entirex.server.fixedservers=yes
, the number of worker threads is specified in
entirex.server.minservers
is started and the server can process this number of parallel requests.
SCALE
The scale model creates worker threads depending on the incoming load of RPC requests.
If entirex.server.fixedservers=no
, the number of worker threads balances between what is specified in entirex.server.minservers
and what is specified in entirex.server.maxservers
. This is done by a so-called attach thread.
At startup, the number of worker threads is the number specified in entirex.server.minservers
.
A new worker thread starts if the broker has more requests than there are worker threads waiting.
If more than the number specified in entirex.server.minservers
are waiting for requests, a worker thread stops if its receive call times out.
The timeout period is configured with entirex.server.waitserver
.