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
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:
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.
The client program calls a CICS region, and passes on the request
from the GUI.
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.
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.
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.
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.
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.
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.
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.
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.
The CICS region
releases the resources that were used for the order-entry request and makes
the application server available for other tasks.
The CICS region
returns an appropriate success message to the user through the client program
and the order-entry GUI.