vData tables (user-maintained)

vCoupling facility data tables

CICS can return all these resources to their status at the beginning of an in-flight unit of work if a task ends abnormally.

Temporary storage (auxiliary)

You can use a temporary storage item to communicate between transactions.

(For this purpose, the temporary storage item needs to be unique to the terminal ID. If the terminal becomes unavailable, the transaction sequence is interrupted until the terminal is again available.) The temporary storage queue-name (DATAID or QUEUE name) can be read and reread, but the application program must delete it when it is no longer needed to communicate between a sequence of transactions.

Transient data queues

Transient data (intrapartition) is similar to temporary storage (auxiliary) for communicating between transactions, the main difference being that you can each record in the queue only once. Transient data must be specified as logically recoverable to achieve backout to the start of any in-flight unit of work.

User files and DL/I and DB2 databases

You can dedicate files or database segments to communicating data between transactions.

Transactions can record the completion of certain functions on the dedicated file or database segment. A progress transaction (whose purpose is to tell the user what updates have and have not been performed) can examine the dedicated file or segment.

In the event of physical damage, user VSAM files, DL/I, and DB2 databases can be forward recovered.

User-maintained data tables

User-maintained data tables (UMTs), which are recoverable after a unit of work failure can be a useful means of passing data between transactions. However, they are not forward recoverable, and not recoverable after a CICS restart.

Coupling facility data tables

Coupling facility data tables updated using the locking model, and which are recoverable after a unit of work failure, can be a useful means of passing data between transactions.

Unlike UMTs, coupling facility data tables are recoverable in the event of a CICS failure, CFDT server failure , or an MVS failure. However, they are not forward recoverable.

Designing to avoid transaction deadlocks

You must design your program to avoid transaction deadlocks. There are a number of techniques that you can use in your program to avoid this situation.

About this task

Consider using the following techniques:

146CICS TS for z/OS 4.1: Recovery and Restart Guide

Page 158
Image 158
IBM SC34-7012-01 manual Designing to avoid transaction deadlocks