The transaction processing flow

This topic describes the CICS® transaction processing flow for the order-entry application and associated programs. Figure 1 shows the process flow in the sample application.
Figure 1. CICS process flow for the sample application
CICS process flow for the sample application
To place an order, a user interacts with the order-entry graphical user interface (GUI) on a client machine. This starts the transaction processing flow. The following numbered steps correspond to the numbers that are shown in Figure 1:
  1. The GUI program calls the client program with a request to place an order. The request identifies a transaction to be run and passes appropriate parameters to qualify the request.
  2. The client program calls a CICS region, and passes on the request from the GUI.
  3. The CICS region verifies that the user is authorized to make the request and that the user’s terminal is supported. If not, the user is prevented from using the transaction processing system.
  4. The CICS region assigns a task to process the new instance of the transaction and schedules the task for processing alongside other current tasks. The CICS region processes and monitors the order-entry request throughout the task.
  5. The CICS region starts the task, and gets storage and other operating system resources for it. It runs the first program for the transaction, the main order-entry program. The program runs on an application server that is taken from the server’s pool of such processes.
  6. The main program checks and decrements the entry in the relational database. The CICS region and the RDBMS both lock the database entry to isolate it from update by other transactions. Only this one transaction can update the account. The CICS region logs the change but does not commit it until the shipping and billing operations have succeeded.
  7. The main program adds a shipping request to the central shipping queue. The CICS region logs the change but does not commit it until the billing operation has succeeded.
  8. The main program invokes a local billing program to route a request to the central billing program, which runs as a remote program on a mainframe host. The local billing program runs on a separate application server.
  9. The local billing program sends the billing request through a PPC Gateway server (which uses SNA) to the mainframe host. It waits for the reply (while the main program can be doing other work), then returns the reply to the main order-entry program.
  10. Having successfully accessed the database, queued the shipping request, and processed the billing request, the main order-entry program now issues a syncpoint. The CICS region commits and logs the changes that were made to the database, shipping queue, and billing data. These actions make the changes durable.
  11. The CICS region releases the resources that were used for the order-entry request and makes the application server available for other tasks.
  12. The CICS region returns an appropriate success message to the user through the client program and the order-entry GUI.