An ECI request to call a program on a CICS® server results in a program link call to
attach the CICS mirror transaction
to run the server program.
ECI request program link calls can be synchronous or asynchronous:
- Synchronous
- Synchronous calls are blocking calls. The user application is
suspended until the called server program has finished and a reply
is received from CICS.
The received reply is immediately available.
- Asynchronous
- Asynchronous calls are nonblocking calls. The user application
gets control back without waiting for the called server program to
finish. The reply from CICS can
be retrieved later using one of the reply solicitation calls or a
callback. See Retrieving replies from asynchronous ECI requests. An asynchronous
program link call is outstanding until a reply solicitation call, or
the callback, has retrieved the reply.
Synchronous and asynchronous program link calls can be nonextended
or extended:
- Nonextended
- The CICS server
program, not the user application, controls whether recoverable resources
are committed or backed out. Each program link call corresponds
to one CICS transaction. This is referred to as SYNCONRETURN.
- Extended
- The user application controls
whether recoverable resources are committed or rolled back. Multiple
calls are possible, allowing a logical unit of work (LUW) to be extended
across successive ECI requests to the same CICS server. This is known as an extended
logical unit of work (extended LUW).
CICS user
applications are often concerned with updating recoverable resources.
An LUW is the processing that a CICS server
program performs between sync points. A sync point is the point
at which all changes to recoverable resources that were made by a
task since its last sync point are committed. LUW management
is performed by the user application, using the commit and rollback functions:
- Commit
- Ends the current LUW and any changes made to recoverable resources
are committed.
- Rollback
- Terminates the current LUW and backs out (rolls back) any changes
made to recoverable resources since the previous sync point.
ECI-based communications between the CICS server
and the CICS Transaction Gateway are
known as conversations. A nonextended program link ECI call is one
conversation. A series of extended ECI calls followed by a commit
or rollback is one conversation.
Only one transaction can be active
at a time in a logical unit of work, so if you are using asynchronous
requests with extended LUWs, there is a restriction that the reply
from one ECI call must be retrieved before making a subsequent ECI
call within the same LUW.