In Chapter 1, you were introduced to the concepts behind transaction processing. But you may still be wondering just what this is. Transaction processing has been around since the mainframe days of computing. You may have heard of, or have even used, products such as CICS, Tuxedo, or TopEnd. These are all examples of transaction processing systems, which provide transaction services to applications that use them. There are a number of attributes that make up transaction processing.
In order to discuss transaction processing, we must first agree on a definition of what a transaction is. A transaction is an atomic unit of work that either fails or succeeds. There is no such thing as a partial completion of a transaction. Since a transaction can be made up of many steps, each step in the transaction must succeed for the transaction to be successful. If any one part of the transaction fails, then the entire transaction fails. When a transaction fails, the system needs to return to the state that it was in before the transaction was started. This is known as rollback. When a transaction fails, then the changes that had been made are said to be "rolled back." In effect, this is acting similar to the way the Undo command works in most word processors. When you select undo, the change that you just may have made is reversed. The transaction processing system is responsible for carrying out this undo.