With respect to the passing of information from one compile unit (a single source module that has been preprocessed and compiled) to another compile unit, there are essentially two cases to consider:
- In the simpler case, one program (consisting of one or more compile units link-edited together) connects a database session and then transfers control to another program that will use that same session.
- In the more complicated case, one program (consisting of one or more compile units link-edited together) opens a stream (if it uses Preprocessor1), or a cursor (if it uses Preprocessor2), or a request (if it uses CLI) and then passes control to another program that will operate against that same stream, cursor, or request.
The specific requirements for passing context in the above two cases differ for CLIv1, Preprocessor1, CLIv2, and Preprocessor2.
In general, information is passed in the CICS COMMAREA.