Transaction processing

Transaction processing is a style of computing, typically performed by large server computers, that supports interactive applications. In transaction processing, work is divided into individual, indivisible operations, called transactions. By contrast, batch processing is a style of computing in which one or more programs processes a series of records (a batch) with little or no action from the user or operator.

A transaction processing system allows application programmers to concentrate on writing code that supports the business, by shielding application programs from the details of transaction management:
  • It manages the concurrent processing of transactions.
  • It enables the sharing of data.
  • It ensures the integrity of data.
  • It manages the prioritization of transaction execution.

When a transaction starts processing, CICS runs a program that is associated with the transaction. That program can transfer control to other programs in the course of the transaction, making it possible to assemble modular applications consisting of many CICS programs.

At any time, in a CICS system, many instances of a transaction can run at the same time. A single instance of a running transaction is known as a task.

During the time that a task is running, it has exclusive use of (or holds a lock for) each data resource that it changes, ensuring the isolation property of the transaction. Other tasks that require access to the resources must wait until the lock is released. To ensure overall responsiveness of the transaction processing system, you design your CICS application programs so that they hold locks for the shortest possible time. For example, you can design your transactions to be short-lived because CICS releases locks when a task ends.