Introduction to asynchronous processing

Asynchronous processing is a way of distributing the processing of an application between connected systems. In contrast to distributed transaction programming, the processing is asynchronous.

In distributed transaction programming, a session is held by two transactions for the period of a "conversation" between them, and requests and replies (if any) can be directly correlated.

In asynchronous processing, requests and replies are transmitted on different sessions. No processing dependency exists between a request and a reply, and no assumptions are made about the timing of the reply. The differences between synchronous and asynchronous processing are illustrated in Figure 9. The starting of TRAN4 can be time-dependent and can be delayed by scheduling constraints in System B.

Figure 9. Synchronous and asynchronous processing compared
 The picture shows two CICS regions, named System A and System B. Illustrating synchronous processing, Transaction 1 on System A is holding a synchronous conversation with Transaction 2 on System B; data flows back and forth over the session between them. Illustrating asynchronous processing, Transaction 3 on System A initiates Transaction 4 on System B, sends it a request, and terminates. Some time later, Transaction 4 on System B initiates Transaction 5 on System A and sends it a reply to Transaction 3’s request. There is no direct correlation between the executions of Transaction 3 and Transaction 5.

In general, asynchronous processing is applicable to any situation in which it is not necessary or desirable to tie up local resources while a remote request is being processed.

Asynchronous processing is not suitable for applications that require synchronized changes to local and remote resources; for example, it cannot be used to process concurrent logically-related updates to data in different systems.

Note that, in Figure 9, any changes made by the synchronous transactions TRAN1 and TRAN2 can be co-ordinated for recovery purposes; any changes made by the asynchronous transactions TRAN3, TRAN4, and TRAN5 cannot.

Related concepts
Example
Asynchronous processing methods
Asynchronous processing using START/RETRIEVE commands
System programming considerations
Asynchronous processing example (with NOCHECK)
Related reference
CICS product communication support
[[ Contents Previous Page | Next Page Index ]]