For CICS® environments,
you can specify whether a program runs in segmented (CICS pseudoconversational) or nonsegmented (CICS conversational) mode by setting
the segmented property when you define the
program.
The following diagram illustrates the flow of a program running
in nonsegmented mode. The sample update program, CSUP, converses a
form, displays the customer data that can be updated, accepts data
from a user to update the customer record, and replaces the record
with the changed data. When you use nonsegmented mode, you should
set the
converseVar.commitOnConverse system
variable to 1. This causes a commit point to occur at the
converse,
so that changes to files and databases are committed and locks are
released. The diagram also illustrates saving a copy of the record
for comparison purposes after the
converse to
ensure that no other changes have been made to the record during user
think time.
Figure 1. Update file program running in nonsegmented
mode
The following diagram shows the flow of the same update program
running in segmented mode.
Figure 2. Update file program running
in segmented mode
When a program runs in segmented mode, temporary storage must be
provided to contain the roll out/in data during segmentation. Each
program requires approximately 6000 bytes plus the total size of all
objects accessed by the program (records, variables, and forms). In
addition, because the program must be started after each user input,
you might want to make the program, print services program, and FormGroup
format module resident for segmented programs.