Comparison of WORKING-STORAGE and LOCAL-STORAGE
How data items are allocated and initialized varies depending
on whether the items are in the WORKING-STORAGE SECTION or LOCAL-STORAGE
SECTION.
WORKING-STORAGE for
programs is allocated when the run unit is started.
Any data items that have VALUE clauses are initialized
to the appropriate value at that time. For the duration of the run
unit, WORKING-STORAGE items persist in their last-used
state. Exceptions are:
- A program with
INITIALspecified in thePROGRAM-IDparagraphIn this case,
WORKING-STORAGEdata items are reinitialized each time that the program is entered. - A subprogram that is dynamically called and then canceled
In this case,
WORKING-STORAGEdata items are reinitialized on the first reentry into the program following theCANCEL.
WORKING-STORAGE is deallocated at the termination
of the run unit.
See the Related tasks for information about WORKING-STORAGE in
COBOL class definitions.
A separate copy of LOCAL-STORAGE data is allocated
for each call of a program or invocation of a method, and is freed
on return from the program or method. If you specify a VALUE clause
for a LOCAL-STORAGE item, the item is initialized
to that value on each call or invocation. If a VALUE clause
is not specified, the initial value of the item is undefined.
Threading: Each invocation of a program
that runs simultaneously on multiple threads shares access to a single
copy of WORKING-STORAGE data. Each invocation has
a separate copy of LOCAL-STORAGE data.
Ending and reentering main programs or subprograms
Preparing COBOL programs for multithreading
WORKING-STORAGE SECTION for defining class instance data
WORKING-STORAGE SECTION (Enterprise COBOL for z/OS Language Reference)
LOCAL-STORAGE SECTION (Enterprise COBOL for z/OS Language Reference)