Function shipping-examples

This section gives some examples to illustrate the lifetime of the mirror transaction and the information flowing between the application and its mirror (CSM*). The examples contrast the action of the mirror transaction when accessing protected and unprotected resources on behalf of the application program, over MRO or ISC links, with and without MRO long-running mirror tasks.

Figure 6. ISC function shipping--simple inquiry. Here no resource is being changed; the session is freed and the mirror task is terminated immediately.
 The picture consists of three columns. The left column represents System A, the right System B, and the middle column what flows between the two systems.  An application on System A issues an EXEC CICS READ FILE request. An Attach CSM*, 'READ' request is sent to System B. System B attaches the mirror transaction, which performs the READ and sends a reply to System A. Because no resources are being changed, the mirror frees the session and terminates. System A frees the session and passes B's reply to the application, which continues processing.

Figure 7. MRO function shipping--simple inquiry. Here no resource is being changed. Because long-running mirror tasks are not specified, the session is freed by System B and the mirror task is therefore terminated immediately.
 The picture consists of three columns. The left column represents System A, the right System B, and the middle column what flows between the two systems.  An application on System A issues an EXEC CICS READ FILE request. An Attach CSM*, 'READ' request is sent to System B. System B attaches the mirror transaction, which performs the READ and sends a reply to System A. Because no resources are being changed, and long-running mirror tasks are not specified on System B, the mirror frees the session and terminates. System A frees the session and passes B's reply to the application, which continues processing.

Figure 8. MRO function shipping--simple inquiry. Here no resource is being changed. However, because long-running mirror tasks are specified, the session is held by System B, and the mirror task waits for the next request.
 The picture consists of three columns. The left column represents System A, the right System B, and the middle column what flows between the two systems.  An application on System A issues an EXEC CICS READ FILE request. An Attach CSM*, 'READ' request is sent to System B. System B attaches the mirror transaction, which performs the READ and sends a reply to System A. Because long-running mirror tasks are specified on System B, even though no resources are being changed the mirror does not free the session and terminate but instead waits for the next request. System A passes B's reply to the application, which continues processing.

Figure 9. ISC or MRO function shipping--update. Because the mirror must wait for the REWRITE, it becomes long-running and is not terminated until SYNCPOINT is received. Note that the enqueue on the updated record would not be held beyond the REWRITE command if the file was not recoverable.
 The picture consists of three columns. The left column represents System A, the right System B, and the middle column what flows between the two systems.  An application on System A issues an EXEC CICS READ UPDATE FILE request. An Attach CSM*, 'READ UPDATE' request is sent to System B. System B attaches the mirror transaction, which performs the READ UPDATE and sends a reply to System A. The mirror then waits for the REWRITE, so becoming long-running. System A passes B's reply to the application, which issues an EXEC CICS REWRITE FILE request. The REWRITE request is sent to System B. On System B, the mirror performs the REWRITE, sends a reply to System A, and waits, still holding the enqueue on the updated record. System A passes B's reply to the application, which issues an EXEC CICS SYNCPOINT request which is sent to System B. On System B, the mirror takes the syncpoint, releases the enqueue, frees the session, and terminates.  A positive response is sent to System A, On System A, the syncpoint is completed and the application continues.

Figure 10. ISC or MRO function shipping--update with ABEND
 The picture consists of three columns. The left column represents System A, the right System B, and the middle column what flows between the two systems.  An application on System A issues an EXEC CICS READ UPDATE FILE request. An Attach CSM*, 'READ UPDATE' request is sent to System B. System B attaches the mirror transaction, which performs the READ UPDATE and sends a reply to System A. The mirror then waits for the REWRITE, so becoming long-running. System A passes B's reply to the application, which issues an EXEC CICS REWRITE FILE request. The REWRITE request is sent to System B. On System B, the mirror performs the REWRITE, sends a reply to System A, and waits. System A passes B's reply to the application, which issues an EXEC CICS SYNCPOINT request which is sent to System B. On System B, the mirror attempts to take the syncpoint but an abend occurs. The mirror backs out and terminates. A negative response and an abend message are sent to System A. The session is freed. On System A, the application is backed out and the abend message routed to CSMT.

Figure 10 is similar to Figure 9, except that an abend occurs during syncpoint processing.

Related concepts
Overview of function shipping
Design considerations
The mirror transaction and transformer program
Related tasks
Introduction to CICS intercommunication
Application programming for CICS function shipping
[[ Contents Previous Page | Next Page Index ]]