An example of current program status is the current values for variables. EGL automatically releases all storage, file, and database resources whenever a program requests input from the terminal using a segmented converse or a show statement. The exception is library information, which you may optionally save across a segmented converse by using the enableSaveRestore library property. See enableSaveRestore. When running in nonsegmented mode, EGL does not release these resources.
Before defining programs that run in segmented mode, you must understand the effect of segmenting in the runtime environment. Because segmenting might alter the results of the program, you must consider whether or not to segment programs during the initial design phase.
Segmented mode enables a larger number of terminals to run EGL programs within the same system storage address space for CICS® systems at the same time. Although segmenting programs enables concurrent use by a larger number of terminals, the response time for each terminal is increased by the time required for each transfer of data (roll out or roll in), and the time required by the host subsystem to create a new system task.
Segmented programs do not use address space during user think time. This is because the program address space is saved on external storage when the current system task ends, and the program needs input from the user to continue.
When the user presses Enter, Clear, a PA key, or a function key, a new system task is started. EGL restores the address space for the task with the data retrieved from external storage.